Repository navigation
Offer the bulk action bar on the remaining workspace tables - #105229
Krishna2323 wants to merge 5 commits into
Conversation
Roll the floating bulk action bar out to every full-page table that already had bulk actions, following the pattern the members table set. Each table takes a bulkActionOptions prop and renders Table.BulkActionBar, and each page keeps its own header buttons in the wide layout now that the actions live in the bar. Tables in the RHP are left alone, as are the tables that have row selection but no bulk actions yet. Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Escape is itself what makes the focused element match , and the browser applies that before the bar's handler runs, so asking the element whether it already had a ring always answered yes and the suppression never fired. Go by how the focus arrived instead, which Escape leaves untouched. Fixes Expensify#104680 Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Both tables already had bulk actions, so this is the same migration as the rest: the floating bar takes them in the wide layout, and the header keeps its own buttons. Company cards builds its actions from inside the table rather than on the page, so they move to a hook the bar and the narrow layout's dropdown share. The selection they are built from is derived once in the table, so the two cannot drift apart. The filter bar now stays visible while rows are selected, since the floating bar no longer takes its place. Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Search and the report view both drop the selection as soon as an export begins, and both say so where they do it. The two card tables kept theirs, which the header dropdown hid but the floating bar makes plain. Bring them into line. Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@shubham1206agra Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@codex review |
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
A page in the RHP is not a small screen, so a header gated on isSmallScreenWidth kept its dropdown there while the bar, gated on shouldUseNarrowLayout, stayed hidden. Narrowing those gates took the dropdown away and left nothing in its place. FieldsListValuesPage only ever renders in the RHP, so it goes back to how it was. WorkspaceCategoriesPage renders in both, and now keeps the bar on the full page and the dropdown in the RHP. Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@Krishna2323 Conflicts |
Explanation of Change
Rolls out the floating bulk action bar to every full-page table that already supports bulk actions, following the pattern established by the Workspace Members table.
Each table accepts a
bulkActionOptionsprop and rendersTable.BulkActionBar. Each page keeps its own header buttons visible in the wide layout, even when rows are selected.Tables in the RHP are left unchanged, as are tables that support row selection but don't yet have bulk actions.
This is the third and final PR in the three-way split agreed on the issue:
Table.BulkActionBarto the Table component and implemented it on the Workspace Members table.Opting a table in requires two changes, following
WorkspaceMembersTable:On the page side, the header's "Selected" dropdown is now limited to
shouldUseNarrowLayout && isMobileSelectionModeEnabled, and the same options are passed to the table. This keeps page-level buttons such as Add rate and More visible in the wide layout, regardless of the selection state, as agreed in the report view design thread.Surfaces migrated:
Three pages needed more than a simple condition change because their options were created inside the same branch that rendered the dropdown.
FieldsListValuesPage,WorkspaceCategoriesPage, andWorkspaceTagsPagenow each have agetBulkActionOptions()function shared by the narrow dropdown and floating bar.WorkspaceVendorsPageneeded a similar change:VendorBulkActionswas split into auseVendorBulkActionOptionshook and a thin component, allowing the page to access the options without rendering the button.Not included:
RoomMembersTableandDomainMembersTable, so please flag it if those should be included after all.DomainMembersTableandWorkspaceCompanyCardsTablesupport row selection but don't currently have bulk actions. Adding actions would introduce new product scope, so they remain unchanged.Three existing tests covered the wide-layout header dropdown being removed by this PR. They've been updated to open the floating bar instead, using the same
openBulkActionshelper as the Workspace Members test.Fixed Issues
$ #98651
$ #101899
$ #104680
Proposal: N/A
Tests
The same flow applies to every surface, so follow these steps for each page in the table below.
Regression checks
requiresTagorrequiresCategoryis enabled. Press Disable and verify the "You cannot disable all tags/categories" modal still appears.Offline tests
QA Steps
Repeat the tests above.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
web_chrome.mp4