Repository navigation
Add insight-switcher dropdown to the chart slot in Home - #96625
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
…ot enough data from the options
|
Nice that feels good 👍 |
WojtekBoman
left a comment
There was a problem hiding this comment.
LGTM 🎸 I left a few small comments, but overall the code looks solid 💪
…stedSearchesVisibility
…ove redundant check
This matches the behavior in the Spend tab. We show the "Chart unavailable" empty state when the insight is available to select, but happens to have 0 data points. But each insight also has its own visibility rules, which if are not met, then we hide that insight both in the Spend tab and on Home (based on the user/workspace settings, not search results) |
|
Okay then |
|
🚧 shawnborton has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
Did a quick test and it's working pretty well for me! Didn't run into any glaring issues. |
|
Yup same on my end 👍 |
|
Same. Works nicely 👍 |
JmillsExpensify
left a comment
There was a problem hiding this comment.
Agree with the discussion above. LGTM
|
@grgia on to you! |
|
🚧 mountiny 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/mountiny in version: 9.4.52-0 🚀
|
|
Help site review — changes required. This PR turns the Home "Spend over time" chart into a switchable insights section (a title dropdown to pick between Spend over time, Top categories, Top merchants, and Top spenders) and changes its availability so the section now appears even without enough data, showing a Chart unavailable empty state instead of disappearing. That contradicts the current help doc, which documents a fixed Spend over time section that only appears when the workspace has "expenses across at least two time periods." I opened a draft help site PR updating What changed in the doc
Feature/label names were verified against @mhawryluk, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
@mhawryluk This PR is failing because of a regression issue #98331 The issue is reproducible in: iOS Bug7230985_1786456192428.Crash_Test_Insight.mp4 |
|
@mitarachim |
|
Hello @ZhenjaHorbach tester already unavailable to provide crash report. ScreenRecording_08-11-2026.23-43-58_1.MP4 |
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.4.52-11 🚀
Bundle Size Analysis (Sentry): |


Explanation of Change
Adds the ability to switch the Insight chart shown on the home page, where previously we would always show Spend Over Time, via a dropdown.
SpendOverTimeSectionis renamed toInsightsSection.Fixed Issues
$ #96464
PROPOSAL: N/A
Tests
Verify that an insight is available to choose from whenever it is not hidden in Spend, regardless of whether it has data, and that a chart renders with at least 1 data point (not 2 like before). An insight with no data shows the "Chart unavailable" empty state instead of being removed.
Verify that Top spenders is hidden for a track-intent user whose workspaces all have Workflows disabled, both in Spend and in the Home Insights dropdown.
Offline tests
QA Steps
Same as tests.
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
Nagranie.z.ekranu.2026-07-23.o.17.31.52.mov
Android: mWeb Chrome
iOS: Native
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-08-03.at.11.32.32.mov
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-08-03.at.11.33.15.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
Nagranie.z.ekranu.2026-07-23.o.15.06.16.mov
Nagranie.z.ekranu.2026-08-5.o.12.13.16.mov