Add collapsible Spend sidebar#91974
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
d814ac4 to
da13d13
Compare
|
@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] |
|
🚧 @dubielzyk-expensify 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 is a wonderful start and work quite well. Great job on this so far. There's a jump in the table that happens when we collapse. Can you help get rid of this? CleanShot.2026-05-29.at.12.12.57.mp4 |
|
There's also a question if we should store some sort of NVP to keep your choice of collapsing persistent across sessions. I think it'd be nice, but not sure if it's crucial. Curious if @trjExpensify or @Expensify/design has any opinions here |
|
I think that would be nice, as it doesn't survive a page refresh which is a bit annoying. |
|
When I try to interact with the button to expand/collapse, I feel like I'm chasing it because on hover the side pane moves. I wonder if we should have that hover area over the icon remain static? Might be a terrible idea... but here's me on the chase: 2026-05-29_03-27-44.mp4 |
|
I get this feeling. I had it during prototype. It's the nature of the peeking functionality. Do you mean that we shouldn't collapse it until you hover out of the sidebar? Or do you mean that there's an invisible button that allows you to click the same spot to expand it? I think the reality is that people aren't gonna turn it off and on all the time, but I still feel you on this feedback cause it does feel a bit off. Another solution could be that when it's in the collapsed state and you peek, then it only collapses again on a tiny bit of a delay. That way if you hover over the edge and back again it doesn't instantly go away. |
|
Re: the chasing feeling, I think I agree, and one idea could be to move the icon to the left of the word Spend? This way the icon never actually moves. That might not look as good though, but it would solve the problem. |
@dubielzyk-expensify @trjExpensify implimented this in ef2bce6 . Let me know if that works Screen.Recording.2026-05-29.at.2.43.22.PM.mp4 |
Yes, it was the bug and got fixed in a5772ce |
@shawnborton Are you referring to this? If so, it looks like @dubielzyk-expensify was referring to the same thing, and I am currently working on it. 1780036973917602.mp4 |
|
Yes exactly, sorry for the double comment - I need to get better at reading! |
@trjExpensify While validating this fix, I noticed another behavior around saved searches: when a saved search has the same underlying query/hash as a built-in tab like Expenses, navigating from that saved search back to Expenses can keep the saved search visually active. It looks like the active sidebar state is being determined by query hash only, so a saved search and built-in tab with the same query become visually indistinguishable. Is this expected behavior, or should this be treated as a bug? If it’s a bug, should we raise a separate issue where I can get assigned and work on it? Screen.Recording.2026-05-29.at.2.52.11.PM.mp4 |
Following up on this. 1780054306014666.mp4 |
Following up on this. I have prepared a solution (prototype) inspired by this, as I also feel stable toggle-position approach addresses the chasing issue. However, the question now is: does it compromise the visual appearance? Looking for opinions. cc: @dubielzyk-expensify @trjExpensify @shawnborton Screen.Recording.2026-05-29.at.6.17.42.PM.mp4
P.S. - I didn't quite get the point about how this will help solve the chasing issue. @dubielzyk-expensify could you please elaborate on this? Once I understand better, I can prepare a prototype so we have a few options to choose from. Thanks. |
|
Yeah, it definitely doesn't feel as nice as we had it before. I'm definitely not sold on this as a requirement, again let's see what Jon prefers here and follow suit. |
Totally agree 🤝 |
I am also on the same boat 👀 |





Explanation of Change
Adds the desktop Spend sidebar collapse/expand behavior behind the Spend search page. The sidebar now starts expanded, can be collapsed to a 76px icon rail, temporarily peeks open on hover over the collapsed rail, keeps section accordions available when expanded, and shifts the main Spend content only for the persisted expanded/collapsed state.
Fixed Issues
$ #91553
PROPOSAL: #91553 (comment)
Tests
Offline tests
N/A. This is a desktop layout-only change for the Spend sidebar and does not add or change 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.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
N/A - desktop-only Spend sidebar behavior.
Android: mWeb Chrome
N/A - desktop-only Spend sidebar behavior.
iOS: Native
N/A - desktop-only Spend sidebar behavior.
iOS: mWeb Safari
N/A - desktop-only Spend sidebar behavior.
MacOS: Chrome / Safari
Screen.Recording.2026-05-29.at.3.08.50.AM.mov