Add quick filter search bar for workspace merchant rules#85295
Add quick filter search bar for workspace merchant rules#85295JS00001 merged 1 commit intoExpensify:mainfrom
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 ts-node ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
|
@cristipaval Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
All contributors have signed the CLA ✍️ ✅ |
|
I have read the CLA Document and I hereby sign the CLA |
|
recheck |
|
@ReaperOAK you haven't added platform videos yet, please add that and ping me once done.
|
|
@Krishna2323 I have added the screenshots |
|
@ReaperOAK you'll need to add recordings for all platforms, screenshot doesn't work for this cas since it's not a simple UI change. You need to follow the test steps and record video. |
|
@Krishna2323 I have added the screen recordings (except for ios & android natives) |
@ReaperOAK Any reason for that? Are you not able to run them locally or facing any issues? Let me know and I’ll see if I can help. |
|
@Krishna2323 I'm having trouble setting up adb for Android, as for ios, i don't have xcode as it's only available in mac. Since it's a simple fix, it should definitely run in both without any problems. |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product
|
@ReaperOAK the spacing doesn't seems to be correct, can you please check the attachment in the OP. Other similar components uses
|
|
@Expensify/design Would you like to test this on an AdHoc build? |
|
@Krishna2323 Krishna2323 Fixed the spacing issue. Added styles.mt6 to the SearchBar component style to match the pattern used by similar components. Commit: |
|
Sure, I can spin up some builds. |
|
🚧 @shawnborton has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid_native.mp4Android: mWeb Chromeandroid_chrome.mp4iOS: HybridAppios_native.mp4iOS: mWeb Safariios_safari.mp4MacOS: Chrome / Safariweb_chrome.mp4 |
|
@ReaperOAK please merge main and let me know once you have added the translations. I'll approve once both are done. |
|
@ReaperOAK it looks like your commits are not signed |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@JS00001 @Krishna2323 I'll have to force push to sign the commits, should I go ahead? |
|
@ReaperOAK checks are still failing and there are conflicts also. |
|
@Krishna2323 Conflicts resolved... merged main in commit 65740a9. Translations were already added in commit 9852414. |
|
@JS00001 could you please the comment above? I'm not sure how to handle this. Thanks! |
|
@ReaperOAK you'll probably need to force push to fix this |
65740a9 to
eb4ed17
Compare
|
@Krishna2323 @JS00001 Done... force pushed a single signed commit (eb4ed17). All 11 commits squashed into one. CI should be green now. |
|
@JS00001 I think you forgot to merge this 👀 |
|
Oops sorry! |
|
@Krishna2323 if you reviewed, can you please approve? |
Krishna2323
left a comment
There was a problem hiding this comment.
LGTM!
Sorry, I forgot to approve too 🤣
|
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
Hey @Krishna2323, this was my first time contributing to Expensify. Could you kindly let me know what the next steps are? |
|
🚧 @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! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/JS00001 in version: 9.3.54-0 🚀
Bundle Size Analysis (Sentry): |
|
I reviewed the changes in this PR against the existing help site article at No help site changes are required. The "Find merchant rule" search bar is a self-explanatory UI filter that appears automatically when a workspace has more than 3 merchant rules. The existing article focuses on creating, understanding, and using merchant rules — not on navigating the rules list. Adding documentation for a standard search/filter input would over-document a discoverable UI element and go against the Help Authoring Guidelines principle of keeping articles focused on one primary workflow. |
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.3.54-7 🚀
|

Explanation of Change
Adds a quick filter search bar for workspace merchant rules, following the same pattern as approval workflows. The filter appears when there are more than 3 rules and uses tokenized contains matching against the merchant match text (
rule.filters?.right).Fixed Issues
$ #84496
PROPOSAL: #84496 (comment)
Tests
filters.rightand verify matching rules remain visible.Offline tests
QA Steps
Same as Tests.
// 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.Screenshots/Videos
Android: Native
Android: mWeb Chrome
Android.mWeb.Chrome.mp4
iOS: Native
iOS: mWeb Safari
iOS.mWeb.Safari.mp4
MacOS: Chrome / Safari
MacOS.Chrome.Safari.mp4