Fix: Cannot navigate duplicated expenses via arrow keys#80224
Conversation
…d useDeepCompareRef, update active transaction IDs based on focused route
src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx
Outdated
Show resolved
Hide resolved
src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx
Show resolved
Hide resolved
…declaration into useEffect for better clarity
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
| return groupedTransactions.flatMap((group) => group.transactions.filter((transaction) => !isTransactionPendingDelete(transaction)).map((transaction) => transaction.transactionID)); | ||
| }, [groupedTransactions, sortedTransactions, shouldShowGroupedTransactions]); | ||
|
|
||
| const visualOrderTransactionIDsDeepCompare = useDeepCompareRef(visualOrderTransactionIDs); |
There was a problem hiding this comment.
On mobile web, useEffect is still triggered while the component is in the process of unmounting. To address the regression on mobile web, we have to use useDeepCompareRef.
|
@jjcoffee Any chance you could review this new PR? |
|
@cretadn22 Sorry I'm off sick at the moment. Are you able to sort out the coverage in the meantime? |
…ReportTransactionListActiveTransactionIDsTest
|
@jjcoffee I added tests |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid-app-2026-02-02_14.21.30.mp4Android: mWeb Chromeandroid-chrome-2026-02-02_14.24.46.mp4iOS: HybridAppios-app-2026-02-02_13.57.36.mp4iOS: mWeb Safariios-safari-2026-02-02_14.00.16.mp4MacOS: Chrome / Safaridesktop-chrome-2026-02-02_13.45.51.mp4 |
jjcoffee
left a comment
There was a problem hiding this comment.
LGTM! Sorry for the delay 🙇
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/JS00001 in version: 9.3.11-19 🚀
|
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.3.12-1 🚀
|
Explanation of Change
Fixed Issues
$ #77286
PROPOSAL: #77286 (comment)
Tests
The first bug
The regression bug
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
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
Screen.Recording.2026-01-06.at.18.58.14.mov
Screen.Recording.2026-01-22.at.20.50.14.mov
Android: mWeb Chrome
Screen.Recording.2026-01-22.at.20.51.39.mov
Screen.Recording.2026-01-22.at.20.51.12.mov
iOS: Native
Screen.Recording.2026-01-22.at.20.47.39.mov
Screen.Recording.2026-01-22.at.20.47.12.mov
iOS: mWeb Safari
Screen.Recording.2026-01-06.at.18.54.26.mov
Screen.Recording.2026-01-22.at.20.49.04.mov
MacOS: Chrome / Safari
Screen.Recording.2026-01-22.at.20.45.56.mov
Screen.Recording.2026-01-22.at.20.46.14.mov