feat: follow-up for IS export templates in Exported filter options#85885
Conversation
…ation custom templates in filter options
…and exclude in-app templates
There was a problem hiding this comment.
Pull request overview
Adds Integration Server (IS) export templates to the Search → Advanced Filters → Exported to options so users can filter results by the specific export template name (while excluding in-app/OldDot CSV layouts that can’t be reliably identified by this filter).
Changes:
- Updated exported-to option building to include integration custom templates and exclude in-app export templates.
- Adjusted exported-to picker item values to use standard template labels and integration template display names.
- Updated unit tests to cover inclusion/exclusion behavior by export template type.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
src/hooks/useExportedToFilterOptions.ts |
Builds exported-to autocomplete/options from connected integrations + integration templates; filters out in-app templates and dedupes options. |
src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersExportedToPage.tsx |
Updates the RHP picker list to include integration custom templates and exclude in-app templates. |
tests/unit/hooks/useExportedToFilterOptions.test.ts |
Updates/adds unit coverage for integration vs in-app export template handling. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 46230cf951
ℹ️ 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".
🔍 PR ReviewSummary: This PR adds Integration Server (IS) custom export templates to the "Exported to" search filter options. Previously, only standard templates (report-level/expense-level exports) appeared; now IS custom templates are also shown, while classic in-app (CSV) templates remain excluded. CI StatusAll meaningful checks pass (tests, lint, typecheck, prettier, etc.). The only failing check is Code ReviewOverall: This is a clean, well-structured change. The approach is sound — using the Positives:
Minor observations (non-blocking):
No issues found with:
LGTM ✅ — the changes correctly implement the feature described in the linked issue. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safaridemo.mov |
|
@JS00001 please take a look. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product
|
@JS00001 All your 🙌 |
|
@aimane-chnaif would you mind doing a quick re-review of this one? |
| const selectedExportedToValues = searchAdvancedFiltersForm?.exportedTo ?? []; | ||
| const connectedIntegrationNames = getConnectedIntegrationNamesForPolicies(policies, policyIDs.length > 0 ? policyIDs : undefined); | ||
|
|
||
| const getPickerItemValueKey = (value: SearchMultipleSelectionPickerItem['value']): string => (typeof value === 'string' ? value : (value.at(0) ?? '')); |
There was a problem hiding this comment.
Move this to top of the file as not dependent on component lifecycle
There was a problem hiding this comment.
Thanks for the review @aimane-chnaif, Please take another look.
|
@aimane-chnaif is this one good to go? |
yes retested |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @JS00001 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! 🧪🧪
|
|
@JS00001 @aimane-chnaif @samranahm Can you please help with this |
|
@m-natarajan please provide the email and tag |
|
@trjExpensify could you help with this please? |
|
@trjExpensify @twisterdotcom Can you please help to set the IS export template to the following accounts |
|
|
Ah, miskey. i fixed the domain. |
|
All done. All three accounts have an export called |
|
Thanks, Ted! |
|
Nice! Can't share the customer screenie here, but I can see this is working! |
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.3.43-3 🚀
|
Explanation of Change
Fixed Issues
$ #80005
PROPOSAL:
Tests
Offline tests
QA Steps
Same as test
// TODO: These must be filled out, or the issue title must include "[No QA]."
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.macOS.chrome.mp4
Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari