fix:(search) update optimistic transactions pending action in search snapshot#71199
Conversation
|
@eVoloshchak 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] |
|
Bug 1:
Screen.Recording.2025-09-29.at.00.36.48.mov |
@eVoloshchak, thank you for the review! This issue doesn’t seem to be related to the changes in my PR—it also occurs on the latest main. Would you prefer that I address it here, or should I open a follow-up PR instead? |
Yeah, this was discussed here and we decided to go with the following option:
|
|
@eVoloshchak Good catch—my mistake. I’ll fix it too. thanks |
|
I will make this PR ready for review tomorrow. Thanks for your patience |
@eVoloshchak Thanks for your patience. covered this and added new test records. |
|
@marufsharifi, this bug is still reproducible for me, could you double-check please? Screen.Recording.2025-10-06.at.14.33.52.mov |
|
@eVoloshchak, yes, it only happens for bulk actions. I will fix it today. thanks |
|
@eVoloshchak, thanks for your patience. The pr is ready for review, please review it when you get a chance |
|
I will do more tests tomorrow, and then it will be ready to review again because it had code conflicts. |
|
@eVoloshchak, the pr is ready for your review. Thanks for your patience |
|
@marufsharifi conflicts. @eVoloshchak let's get this reviewed when you're online please! |
|
conflicts resolved. |
| const {optimisticData: loadingOptimisticData, finallyData} = getOnyxLoadingData(hash); | ||
| const optimisticData: OnyxUpdate[] = [...loadingOptimisticData]; | ||
| const failureData: OnyxUpdate[] = []; | ||
|
|
There was a problem hiding this comment.
Can we just generate/subsribe to allSnapshotKeys here? That would mean we don't have to pass it from each file separately and don't have to create it on each page
There was a problem hiding this comment.
@eVoloshchak Do you mean creating a helper function that generates allSnapshotKeys, so I only need to pass allSnapshots to it instead of generating allSnapshotKeys in each file and passing it down to this function?
|
@eVoloshchak, thanks for the review. I have applied your feedback. Please take another look when you get a chance. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-11-20.at.19.56.42.movAndroid: mWeb ChromeScreen.Recording.2025-11-20.at.19.58.35.moviOS: HybridAppScreen.Recording.2025-11-20.at.20.03.01.moviOS: mWeb SafariScreen.Recording.2025-11-20.at.20.07.27.movMacOS: Chrome / SafariScreen.Recording.2025-11-20.at.19.53.56.movMacOS: DesktopScreen.Recording.2025-11-20.at.20.14.01.mov |
|
✋ 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/luacmartins in version: 9.2.62-0 🚀
|
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.2.62-5 🚀
|
Explanation of Change
Fixed Issues
$ #69559
PROPOSAL: (comment #69559)
Tests
Offline tests
Same as Tests
QA Steps
Same as Tests
// 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.1404-07-03.at.10.34.19.AM.mov
Screen.Recording.1404-07-11.at.7.31.02.PM.mov
Android: mWeb Chrome
Screen.Recording.1404-07-03.at.10.49.09.AM.mov
Screen.Recording.1404-07-11.at.7.33.56.PM.mp4
iOS: Native
Screen.Recording.1404-07-03.at.10.55.59.AM.mov
Screen.Recording.1404-07-11.at.6.51.14.PM.mp4
iOS: mWeb Safari
Screen.Recording.1404-07-03.at.10.59.03.AM.mov
Screen.Recording.1404-07-11.at.7.22.45.PM.mov
MacOS: Chrome / Safari
Screen.Recording.1404-07-03.at.10.22.45.AM.mov
Screen.Recording.1404-07-11.at.6.42.46.PM.mov
MacOS: Desktop
Screen.Recording.1404-07-03.at.10.51.14.AM.mov
Screen.Recording.1404-07-11.at.7.39.32.PM.mp4