Create SpendOverTime widget for the Home page#85417
Create SpendOverTime widget for the Home page#85417puneetlath merged 32 commits intoExpensify:mainfrom
Conversation
mateuuszzzzz
left a comment
There was a problem hiding this comment.
Great work! I only left a couple of NABs
borys3kk
left a comment
There was a problem hiding this comment.
Overall changes looks great! 🚀
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.
|
|
cc: @shawnborton
Nagranie.z.ekranu.2026-03-17.o.11.35.04.mov
|
|
Great PR. Let's see how it goes!! |
|
🚧 @puneetlath 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. |
|
@mhawryluk @truph01 why is the label vertical when there's clearly space for it to be horizontal?
I was checking out: https://85417.pr-testing.expensify.com/ |
|
Also, not sure if this is confined to this PR, but OpenApp took a super long time. I was waiting minimally 45 secs to a minute. |
|
What about for a n00b account? |
I've also found this bug while testing paragraphAPI, I will fix it in my pr |
|
🚀 Deployed to staging by https://github.com/puneetlath in version: 9.3.44-0 🚀
Bundle Size Analysis (Sentry): |
|
Deploy Blocker ##86340 was identified to be related to this PR. |
|
🚀 Deployed to staging by https://github.com/puneetlath in version: 9.3.47-0 🚀
Bundle Size Analysis (Sentry): |
|
This PR failing because of the issue #86392 in offline mode |
|
Deploy Blocker #86392 was identified to be related to this PR. |
|
@trjExpensify FYI, @mhawryluk is on a business trip currently. He will be able to look into the blocker on Monday |
|
Thanks for the heads up! @mateuuszzzzz @puneetlath is this just another flavour of #86336 which we decided to handle as a follow-up? |
|
🚀 Deployed to production by https://github.com/grgia in version: 9.3.48-2 🚀
|






Explanation of Change
Adds a new
SpendOverTimewidget to the Home page that displays a line chart for eligible users, with a "View" button that navigates to the full Search chart view. Refactors chart components to be composable by extracting the ChartHeader, container styling, and scroll handling out of the chart content components, making them reusable in both the Search page and the new Home page widget.The insight still uses the "Year to date" date preset. It will be updated to "Last 12 months" in a separate PR.
Fixed Issues
$ #85349
PROPOSAL: N/A
Tests
Offline tests
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
Nagranie.z.ekranu.2026-03-17.o.11.50.01.mov
Android: mWeb Chrome
Nagranie.z.ekranu.2026-03-17.o.11.48.39.mov
iOS: Native
Simulator.Screen.Recording.-.iPhone.16.Pro.Max.-.2026-03-24.at.11.34.24.mp4
iOS: mWeb Safari
Simulator.Screen.Recording.-.iPhone.16.Pro.Max.-.2026-03-17.at.11.47.01.mp4
MacOS: Chrome / Safari
Nagranie.z.ekranu.2026-03-17.o.11.24.21.mov
Nagranie.z.ekranu.2026-03-17.o.11.26.41.mov