Repository navigation
feat: migrate options, selects, menus and member lists to Item - #42818
Conversation
|
Looks like this PR is not ready to merge, because of the following issues:
Please fix the issues and try again If you have any trouble, please check the PR guidelines |
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters: 29
📒 Files selected for processing: 94
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
96f5ade to
24ca06a
Compare
🦋 Changeset detectedLatest commit: dd25fc2 The changes in this PR will be included in the next version bump. This PR includes changesets to release 22 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
24ca06a to
505f830
Compare
Option, Options, Select and Menu to Item componentsItem
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #42818 +/- ##
===========================================
+ Coverage 70.51% 70.52% +0.01%
===========================================
Files 5413 5414 +1
Lines 229634 229754 +120
Branches 41800 41860 +60
===========================================
+ Hits 161934 162044 +110
- Misses 62350 62371 +21
+ Partials 5350 5339 -11
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
🖥️ UI previewRemoved from |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…by labelled `ItemIcon` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… `Item` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…technology Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…` as `ItemMedia` and `ItemIcon` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…emContent`, `ItemTitle` and `ItemDescription` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Header` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…`Item` group parts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st-axe and snapshots Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and group headers Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The `CheckOption` checkbox is hidden from assistive technology, and `MenuItemContent` wraps its text in an `ItemTitle`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Avatars use `ITEM_MEDIA_SIZE`, and option icons that convey a state are named with `iconLabel`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he chat access modal The members panel groups "In call" and "Not in the call" as named `ItemGroup` lists instead of dividers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member groups use an `ItemGroupHeader` instead of `MembersListDivider`, and row menus mount through `useDeferredMenuMount`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
505f830 to
dd25fc2
Compare
Proposed changes (including videos or screenshots)
ARCH-2496
Migrates
Option,Options,SelectandMenuto theItemcomponents, and applies the result across Rocket.Chat in the same PR, so every list built on them changes together.Fuselage
Renders
Option,Options,SelectandMenuwith theItemfamily from RocketChat/fuselage#2281. Rows share one layout and one set of states, and the publicrcx-optionclasses stay in place.Item
role="menuitem*") are named by theirItemTitleand described by a labelledItemIcon, as anItemLinkis.focusVisibleprop shows the focus ring for focus moved by a script, such as a menu's. The browser's:focus-visiblealso matches on hover there.Menu
MenuItem, submenu triggers andMenuSectionrender asItem,ItemGroupHeaderandItemGroup.Option, Options and Select
Optionrenders as anItemrow. TheOption*parts, and theirMenuItem*aliases, render as the matchingItempart:ItemMedia,ItemIcon,ItemContent,ItemTitle,ItemDescriptionandItemActions.OptionHeaderandOptionTitlerender asItemGroupHeader.Optionsdividers render asItemDivider, andSelectsections asItemGroupHeaderandItemGroup.iconLabelprop onOptionnames what itsiconconveys. Without it, the icon stays decorative.Fixes
Optionsscrolls to the keyboard cursor whenrenderItemrenders anItem.CheckOptioncheckbox is hidden from assistive technology and made inert, so selection is announced once, througharia-selected.OptionSkeletonplaceholder rows are hidden from assistive technology.Optionsempty state is a disabled option, so the listbox only contains options.Rocket.Chat
Itemparts. Avatars useITEM_MEDIA_SIZE, and status or room-type icons are named withiconLabel.Itemrows. Member groups use anItemGroupHeaderinstead ofMembersListDivider, and row menus mount throughuseDeferredMenuMount.Itemrows. The members panel groups "In call" and "Not in the call" as named lists.GenericMenuItem.Issue(s)
Replaces RocketChat/fuselage#2310, and takes over the options, selects, menus and member-list parts of #42520.
Steps to test or reproduce
yarn workspace @rocket.chat/fuselage storybook: theMenu,Option,OptionsandSelectstories.Further comments
Part of the
Itemmigration, split by area (fuselage change + its application together, so each area looks finished when it merges):Item#42819: sidebar and side panelItemand addItemMetatruncate#42820: composer popups andItemMeta truncate(stacked on this PR)Itemin room files, omnichannel, Outlook and ongoing call lists #42832: lists that only useItem(independent)Bottom commits from other PRs, dropped on rebase once they land: #42829 (hidden-actions gap fix), #42831 (
useDeferredMenuMountin ui-client), #42830 (ITEM_MEDIA_SIZE).Commit order: fuselage commits first (replayed from the Fuselage PR), then
test: adapt app tests…with the adaptations the fuselage change forces on its own (theCheckOptioncheckbox is hidden from assistive technology;MenuItemContentwraps its text in anItemTitle), then the app commits.Why Options and Menu are in one PR: the public
MenuItem*parts re-export theOption*parts, so migrating one without the other breaks every menu.Jest snapshots and the visual-regression baselines (arm64 image) were regenerated here.
fuselage.api.mdisn't part of this repository, so those commits were dropped.🤖 Generated with Claude Code