-
Notifications
You must be signed in to change notification settings - Fork 0
[CLEAN] Synthetic Benchmark PR #68929 - Update Reports page tabs (Expenses, Reports, Chats) to work without optimistic transaction thread reports #37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: base_pr_68929_20251204_8996
Are you sure you want to change the base?
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||
User description
Benchmark PR Expensify#68929
Type: Clean (correct implementation)
Original PR Title: Update Reports page tabs (Expenses, Reports, Chats) to work without optimistic transaction thread reports
Original PR Description:
Explanation of Change
Update Reports page tabs (Expenses, Reports, Chats) to work without optimistic transaction thread reports
Fixed Issues
$ Expensify#67890
PROPOSAL: N/A
Tests
Steps to repeat before every tests block:
noOptimisticTransactionThreadsbeta.Block transaction thread report creationtoggle (you can also turn it on in the troubleshoot modal CMD + D)Expenses tab:
ViewbuttonMove expenseto the empty report.Reports tab:
Viewbutton in the headerViewbutton in the headerViewbutton in the expense rowMove expenseto the empty report.Chats tab:
Regressions to check:
Expensify#67622
Offline tests
Same, as in the Tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Same, as in the Tests
PR 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.mp4
Android: mWeb Chrome
android-web.mp4
iOS: Native
ios.mp4
iOS: mWeb Safari
ios_web.mp4
MacOS: Chrome / Safari
web-chats-tab.mp4
web-reports-tab-move.mp4
web-reports-tab.mp4
web-expenses-tab.mp4
MacOS: Desktop
desktop-report-chat-tabs.mp4
desktop-expenses-tab.mp4
Original PR URL: Expensify#68929
PR Type
Enhancement
Description
Add support for creating transaction thread reports dynamically when opening transactions without existing threads
Extract transaction thread creation logic into reusable
createAndOpenSearchTransactionThreadfunctionUpdate Search and TransactionGroupListItem components to handle missing transaction threads
Add
isOneTransactionReportproperty to TransactionGroupListItemType for better transaction identificationImplement automatic thread creation in SearchMoneyRequestReportPage for single-transaction reports
Diagram Walkthrough
flowchart LR A["User opens transaction"] --> B{"Has transaction thread?"} B -->|No| C["createAndOpenSearchTransactionThread"] B -->|Yes| D["Navigate to report"] C --> E["Create thread report"] E --> F["Update search results"] F --> DFile Walkthrough
types.ts
Add isOneTransactionReport property to transaction group typesrc/components/SelectionList/types.ts
isOneTransactionReportoptional boolean property toTransactionGroupListItemTypeSearchUIUtils.ts
Add transaction thread creation utility functionsrc/libs/SearchUIUtils.ts
createTransactionThreadReport,openReportfrom Report actionsand
updateSearchResultsWithTransactionThreadReportIDfrom Searchactions
createAndOpenSearchTransactionThreadfunction that createstransaction thread reports and navigates to them
index.tsx
Integrate dynamic thread creation in Search componentsrc/components/Search/index.tsx
updateSearchResultsWithTransactionThreadReportIDfromSearch actions
createTransactionThreadReportfrom Report actionscreateAndOpenSearchTransactionThreadutility functiononSelectRowto detect transactions without thread reportsand create them
before other navigation logic
TransactionGroupListItem.tsx
Add thread creation handling in transaction group itemsrc/components/SelectionList/Search/TransactionGroupListItem.tsx
getReportActionfrom ReportActionsUtils andcreateAndOpenSearchTransactionThreadfrom SearchUIUtilscurrentSearchHashfrom search contextthreads
createAndOpenSearchTransactionThreadwhen transaction thread ismissing
SearchMoneyRequestReportPage.tsx
Add automatic thread creation for money request reportssrc/pages/Search/SearchMoneyRequestReportPage.tsx
and transactions
transaction thread IDs
createTransactionThreadReportfrom Report actionssingle-transaction reports
creation
SearchUIUtilsTest.ts
Add tests for transaction thread creation functiontests/unit/Search/SearchUIUtilsTest.ts
createAndOpenSearchTransactionThreadfunction
scenarios