Repository navigation
Fix: Category list opens instead of pop-over - #103153
puneetlath merged 4 commits into
Conversation
|
@ikevin127 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] |
Reviewer Checklist
Screenshots/VideosMacOS: Chrome / SafariScreen.Recording.2026-10-06.at.16.18.08.mov |
|
@DylanDylann The first issue fix tests well, the second issue is not fixed yet - checkout the (7) code-comments above and let me know once the issues are addressed, tag me and I'll recheck 🙌 |
|
@ikevin127 I addressed all your comments. Please check again |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@DylanDylann Thanks for addressing the initial review comments. I did another pass and found some new ones 👇 Ready after these 3 items: the effect gate at line 125 matching the row's condition and the stale The 🟢 item is a nit. The draft test switch to Tag me once these are addressed 🙌 |
|
@ikevin127 All updated |
| const {translate} = useLocalize(); | ||
| const icons = useMemoizedLazyExpensifyIcons(['Sparkles']); | ||
| const dropdownRef = useRef<ExpenseFieldDropdownHandle>(null); | ||
| const isFocused = useIsFocused(); |
There was a problem hiding this comment.
🟡 src/components/MoneyRequestConfirmationList/sections/CategoryField.tsx:74 useIsFocused() is back, which is what I asked to remove in round 1, so CategoryField re-renders on every focus and blur of the confirmation screen again.
The state machine only needs the blur edge, not a render. A listener gives the same edge with no re-render, and it is the established pattern here (useCloseOnScreenBlur.ts, MapView.tsx, VideoPlayerPreview):
const navigation = useNavigation();
useEffect(
() =>
navigation.addListener('blur', () => {
if (workspaceStepRef.current === 'departing') {
workspaceStepRef.current = 'away';
} else if (workspaceStepRef.current === 'returned') {
workspaceStepRef.current = 'idle';
}
}),
[navigation],
);
ikevin127
left a comment
There was a problem hiding this comment.
🟢 LGTM - All 4 of my round-2 threads are resolved. The code is approvable as it stands. The useIsFocused swap is worth doing in the same push since it undoes a round-1 improvement - I won't block on it though 🙌
|
🚧 puneetlath has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 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.7-0 🚀
|
|
No help site update is needed: every user-facing change in this PR (the Category pop-over opening after you create or pick a workspace) only applies when the Details
|
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.5.7-3 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Fixed Issues
$ #103124
$ #103125
PROPOSAL:
Tests
Offline tests
QA Steps
Precondition:
Test 1:
Test 2:
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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
Screen.Recording.2026-10-06.at.16.48.34.mov
Android: mWeb Chrome
Screen.Recording.2026-10-06.at.16.46.06.mov
iOS: Native
Screen.Recording.2026-10-06.at.16.47.00.mov
iOS: mWeb Safari
Screen.Recording.2026-10-06.at.16.47.34.mov
MacOS: Chrome / Safari
Screen.Recording.2026-10-06.at.16.00.24.mov
Screen.Recording.2026-10-07.at.14.56.50.mov