Introduce transactions updates into the optimistic report name formula#68737
Conversation
|
Reassure tests fails but this is from |
Reviewer Checklist
Screenshots/VideosMacOS: Chrome / Safari68737-web.mp4MacOS: Desktop68737-desktop.mp4 |
neil-marcellini
left a comment
There was a problem hiding this comment.
Ran out of time so here's a partial review. Tomorrow I should be able to look over the tests as well.
I wonder if our system will break if there is a mergeCollection update in the optimistic updates. Do we do that anywhere in the app already? If not we can maybe ignore it, or add some kind of warning log for that case and fix it later if needed.
neil-marcellini
left a comment
There was a problem hiding this comment.
I'm happy with it, thanks for adding this! Theres a few outstanding NABs so let's please take care of these with a follow up PR.
neil-marcellini
left a comment
There was a problem hiding this comment.
I'm happy with it, thanks for adding this! Theres a few outstanding NABs so let's please take care of these with a follow up PR.
|
🚀 Deployed to staging by https://github.com/neil-marcellini in version: 9.1.98-0 🚀
|
This PR combines the functionality from three previously reverted PRs: - Expensify#65862: Initial optimistic Custom Report Names implementation - Expensify#68726: Fix for reassure performance tests - Expensify#68737: Extended transaction support for report name computation ### Key Features: - Real-time, formula-based report titles that update as expense data changes - Support for report fields: type, startdate, total, currency, policyname, created - Functions: frontpart, substr, domain for string manipulation - Optimistic updates work offline and provide visible changes without network - Transaction updates trigger report name recalculation - Performance optimized with caching and targeted updates - Beta flag controlled: authAutoReportTitle ### Implementation Details: - Formula.ts: Formula parsing and computation engine - OptimisticReportNames.ts: Main logic for report name updates - OptimisticReportNamesConnectionManager.ts: Onyx data context manager - Enhanced API middleware to process optimistic data - Performance and unit tests included 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.1.98-12 🚀
|




computation
Explanation of Change
This PR extends optimistic report name computation introduced here #65862. We add transactions' updates to the scope of report name computation.
Fixed Issues
$ #59689
PROPOSAL:
Tests
SSetNameValuePair('useCustomReportNamesNewExpensify', 'true');Report from {report:startdate}a. first with date
2025-08-16b. second with date
2025-08-17Report from 2025-08-16Force offlineoption2025-08-14Report from 2025-08-142025-08-17Report from 2025-08-162025-08-05Report from 2025-08-05Offline tests
See QA steps
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Report from {report:startdate}a. first with date
2025-08-16b. second with date
2025-08-17Report from 2025-08-16Force offlineoption2025-08-14Report from 2025-08-142025-08-17Report from 2025-08-162025-08-05Report from 2025-08-05PR 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))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
Android: mWeb Chrome
iOS: Native
Nagranie.z.ekranu.2025-08-11.o.15.24.45.mov
iOS: mWeb Safari
MacOS: Chrome / Safari
Nagranie.z.ekranu.2025-08-11.o.15.08.40.mov
MacOS: Desktop
Nagranie.z.ekranu.2025-08-11.o.15.19.39.mov