Export and duplicated deleted expenses#88192
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c2559e7316
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
@jnowakow spell check is failing |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f3f5899c84
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| if (allSelectedAreDeleted) { | ||
| const deletedTransactionOptions: Array<DropdownOption<SearchHeaderOptionValue>> = [ |
There was a problem hiding this comment.
Restore undelete for all-matching deleted selections
This new deleted-only branch is placed after the areAllMatchingItemsSelected early return, so it is never reached when users choose “Select all matching items.” In that flow, deleted-expense selections now only get the export menu and lose the undelete/duplicate actions, which regresses bulk recovery for deleted expenses compared to the previous logic that still surfaced undelete for deleted selections.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Considering this discussion, it is expected behaviour
|
@luacmartins cspell is fixed |
Reviewer Checklist
Screenshots/VideosAndroid: HybridApp88192-android-hybrid-001.mp4Android: mWeb Chrome88192-mweb-chrome-001.mp4iOS: HybridApp88192-ios-hybrid-001.mp4iOS: mWeb Safari88192-mweb-safari-001.mp4MacOS: Chrome / Safari88192-web-chrome-001.mp4 |
rojiphil
left a comment
There was a problem hiding this comment.
Thanks @jnowakow for the updated PR.
@luacmartins LGTM too.
Over to you. Thanks.
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @luacmartins 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! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/luacmartins in version: 9.3.61-0 🚀
Bundle Size Analysis (Sentry): |
|
I reviewed the changes in this PR and checked the help site articles under Change needed: The How to Duplicate an Expense article lists the statuses where duplication is available as "Unreported, Draft, Processing, Approved, and Paid" — but does not include "Deleted." Since this PR enables duplicating (and exporting) deleted expenses, the article needs to be updated. No other articles require changes. The Expense and Report Actions article already says duplicate is available "On non-card expenses in any state," which is broad enough. The export articles don't list status restrictions. Draft PR created: #88411 The draft PR adds "Deleted" to the status list in the duplicate expense article. I was unable to add it to project 196 due to permissions — a maintainer will need to add it manually. |
|
Deploy Blocker #88418 was identified to be related to this PR. |
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.3.61-4 🚀
|
@rojiphil @luacmartins
Explanation of Change
Update
useSearchBulkActionsto allow duplicate and export deleted expenses.Fixed Issues
$ #88088
PROPOSAL: N/A
Tests
→ Undelete, Export, Duplicate options are shown.
→ Export, Duplicate options are shown..
Offline tests
→ Undelete, Export, Duplicate options are shown.
→ Export, Duplicate options are shown..
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
→ Undelete, Export, Duplicate options are shown.
→ Export, Duplicate options are shown..
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
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
bulk-actions.mov