Conversation
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx bun ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
…endor-search-filter-column
|
I could not review this diff, so I did not approve the workflow runs. An Expensify employee will review it and approve them manually. |
…endor-search-filter-column
…endor-search-filter-column
|
I could not review this diff, so I did not approve the workflow runs. An Expensify employee will review it and approve them manually. |
…endor-search-filter-column
|
I could not review this diff, so I did not approve the workflow runs. An Expensify employee will review it and approve them manually. |
Explanation of Change
Adds Vendor to expense Search as an advanced filter, the filter half of the Release 5 item of the vendor matching design doc. The Vendor column ships separately in #101410, which this branch builds on, so this PR's diff includes the column commit until that PR merges.
OpenSearchVendorFiltersPagecommand intopolicyVendors_, plus a "No vendor" value. Auth matches the stored vendor name the same way it matchescategory, so identical names across workspaces match together.hasVendorFeature(policy, isBetaEnabled(vendorMatching))across the user's workspaces, the same gate as the expense Vendor field. Since connection config only reaches admins, non-admin members never see it.The
noVendorandnoSupplierstrings were added to every locale because the locale files are typed againsten.tsand this PR comes from a fork, so the translation workflow does not run on it. They can be regenerated after merge.Backend: https://github.com/Expensify/Auth/pull/24565 and https://github.com/Expensify/Web-Expensify/pull/56224 must deploy first, otherwise the filter returns
402 Filter translator not found for: vendorand the picker stays empty.Fixed Issues
$ https://github.com/Expensify/Expensify/issues/681919
Tests
vendor:<name>in the search input and verify the same results as step 4.vendorMatchingbeta) and verify the filter and its chips read "Supplier" and the empty option reads "No supplier".npm test -- tests/unit/PolicyUtilsTest.ts tests/unit/hooks/useAdvancedSearchFilters.test.ts tests/unit/Search/SearchQueryUtilsTest.ts tests/unit/Search/SearchUIUtilsTest.tsand verify all suites pass.Offline tests
QA Steps
Same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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