Repository navigation
[CFI] Attendee anchored dropdown - #105345
puneetlath merged 4 commits into
Conversation
|
@ikevin127 @thelullabyy One of you needs to 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 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. |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@Expensify/design I'd love to hear your thoughts on the design of the new attendee popover Screen.Recording.2026-10-29.at.15.15.56.movScreen.Recording.2026-10-29.at.15.17.09.mov |
|
@ikevin127 It’s ready for your review. I’ll add videos later, in case the design team wants to change anything |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 95d9be1229
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
Looking pretty good to me—seems like it's following the Categories and Tags popovers which is what I would expect. |
Reviewer Checklist
Screenshots/VideosiOS: NativeScreen.Recording.iPhone.18.Pro.10-29-2026.at.14.49.53.mp4MacOS: Chrome / SafariScreen.Recording.2026-10-29.at.14.36.24.mov |
|
Running a build. |
|
🚧 trjExpensify has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
ikevin127
left a comment
There was a problem hiding this comment.
I found 3 issues.
Follows the Category / Tag / Tax pattern well: the dropdown mounts lazily, compares with deepEqual before writing, and blocks Enter on an empty selection. Design (dannymcclain) is fine with the look.
95d9be1, so I skipped them: shortcuts still firing while the picker is hidden, the subscription to the whole draft (PERF-11), and the missing module header 👈 these Codex comments should be addressed as well.
trjExpensify
left a comment
There was a problem hiding this comment.
LGTM on the adhoc! 👍
|
@ikevin127 All resolved |
ikevin127
left a comment
There was a problem hiding this comment.
🟢 LGTM - All previous comments are addressed
@DylanDylann 🟠 QA step 2 is cut off ("open a workspace chat on a workspace that"). QA runs these verbatim, and none of them cover Apply, dismissing without Apply, or the empty-selection error.
Suggested steps:
1. Override the `anchoredFieldDropdowns` beta to true.
2. Open a workspace chat on a workspace that has attendee tracking enabled.
3. Start a manual expense and continue to the confirmation page.
4. Click the Attendees row. Verify a pop-over opens on wide screens and a bottom sheet on narrow screens, with a "Search for someone" input and an Apply button.
5. Add an attendee and press Apply. Verify the list closes and the row shows the new attendee.
6. Reopen, tick another attendee, then dismiss with Esc or an outside click. Reopen and verify the attendee you dismissed is no longer ticked.
7. Untick everyone. Verify the error shows and Apply is disabled.
8. Submit the expense. Verify it has the applied attendees.|
🚧 puneetlath has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/puneetlath in version: 9.5.27-0 🚀
|
|
No help site update needed. The new anchored Attendees dropdown only appears when the |
|
Deploy Blocker #105562 was identified to be related to this PR. |
|
🚀 Deployed to production by https://github.com/blimpich in version: 9.5.27-2 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Fixed Issues
$ #101573
PROPOSAL:
Tests
Same QA steps
Offline tests
Same QA steps
QA Steps
anchoredFieldDropdownsbeta to true.PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))CategoryPickerModalis shared with the Search table's inline category edit and needs re-verifying there.Designlabel and/or tagged@Expensify/designso the design team can review the changes.tests/unit/components/ExpenseFieldDropdown.test.tsxcovers lazy mounting, opening in place vs. navigating, the row-width/below-the-row geometry, the flip above the row, dismissing by pressing the row again, and the full-page fallback.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: HybridApp
Screen.Recording.2026-10-30.at.11.00.51.mov
Android: mWeb Chrome
Screen.Recording.2026-10-30.at.10.55.50.mov
iOS: HybridApp
Screen.Recording.2026-10-30.at.11.00.20.mov
iOS: mWeb Safari
Screen.Recording.2026-10-30.at.10.56.08.mov
MacOS: Chrome / Safari
Screen.Recording.2026-10-30.at.10.52.49.mov