Fix stuck Spend sidebar after deleting saved search#92832
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@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] |
trjExpensify
left a comment
There was a problem hiding this comment.
Minor bug fix for the new collapsable sidebar 👍
|
@eVoloshchak Kind ping here. Thanks! |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari1.mov |
Screen.Recording.2026-06-09.at.14.44.18.mov |
|
@eVoloshchak pushed a follow-up for the rename case. The sidebar now waits for the modal close animation before auto-ending hover peek, so the RHP close and sidebar collapse should not overlap. ezyZip.27.mp4 |
|
@eVoloshchak Kind ping here. Thanks! |
|
@KJ21-ENG, now both "Delete" and "Rename" animations are choppy Screen.Recording.2026-06-12.at.12.42.31.mov |
|
Found another bug
Screen.Recording.2026-06-12.at.12.46.58.mov |
Yep, already working on it.
Interesting, NW i will look into it as well. 👍 |
@eVoloshchak I replaced the previous modal/RHP-coupled workaround with a sidebar-owned approach. The RHP is back to baseline, and the sidebar now manages peek cleanup based on pointer/click state. The skeleton change follows the existing |
@eVoloshchak For the collapsed-sidebar skeleton case, there are two possible UX directions here:
I went with option 1 as the minimal fix for now as creating a new collapsed loading state feels more like a design decision. I think it would be good to get input from design (maybe from @dubielzyk-expensify @shawnborton) on whether the collapsed sidebar should show a compact skeleton at all, and if so, what that should look like. cc: @eVoloshchak @trjExpensify @dubielzyk-expensify @shawnborton |
|
@dubielzyk-expensify Does this looks good to you ? 👀 ezyZip.43.mp4
|
@shawnborton Can you please share an image agian, as i am not able to understand concept from this 😅. Thanks! |
|
@shawnborton Does this look good to you ? Screen.Recording.2026-06-16.at.2.43.50.AM.mov
|
|
That's looking great 👍 |
|
Yup, agree! |
|
@eVoloshchak Looking for your feedback here. Thanks! |
blimpich
left a comment
There was a problem hiding this comment.
Nice job! This looks really slick!
|
🚧 @blimpich 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! 🧪🧪
|
|
✋ 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/blimpich in version: 9.4.15-0 🚀
|
|
🤖 No help site changes required. I reviewed the changes in this PR against the help-site articles under The changes are limited to internal hover/peek state management and skeleton rendering:
No user-facing copy, feature names, tab names, settings labels, buttons, or documented workflows changed. The collapse/peek hover behavior of the Spend sidebar isn't described in any help article, so there's nothing to add or correct. No draft PR was created. @KJ21-ENG, please confirm you agree no help-site updates are needed here. If you believe a documented flow is affected, let me know which article and I'll open a draft PR. |
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.4.15-3 🚀
|






Explanation of Change
This PR prevents the collapsed Spend search sidebar from staying expanded after a saved search is deleted from the peeked sidebar.
When the sidebar is collapsed and temporarily expanded by hover, opening the saved-search overflow menu and delete-confirmation modal can prevent the sidebar's normal hover-out path from firing. The peek state can then remain active even after the modal closes and the pointer is no longer over the sidebar.
To keep the existing hover behavior intact while handling modal flows, this change:
Fixed Issues
$ #92816
PROPOSAL: #92816 (comment)
Tests
Offline tests
Same as Tests. This change only affects local pointer/hover state for the sidebar and does not introduce any network-dependent behavior.
QA Steps
Same as Tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand 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.mainwas not merged into this PR after review.Screenshots/Videos
Android: Native
N/A - the reported deploy blocker is MacOS Chrome/Safari hover behavior.
Android: mWeb Chrome
N/A - the reported deploy blocker is MacOS Chrome/Safari hover behavior.
iOS: Native
N/A - the reported deploy blocker is MacOS Chrome/Safari hover behavior.
iOS: mWeb Safari
N/A - the reported deploy blocker is MacOS Chrome/Safari hover behavior.
MacOS: Chrome / Safari
ezyZip.13.mp4