Repository navigation
Reorganize the Search Filters page into clearer sections and add a filter search - #104668
Krishna2323 wants to merge 18 commits into
Conversation
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
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 |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
…mpty state Signed-off-by: krishna2323 <belivethatkg@gmail.com>
…ers empty state Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
Assigning @daledah to help with prompt review of the PR when it's ready. |
…ilter after clearing Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@gijoe0295 @JS00001 One of you needs to 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] |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@gijoe0295 sorry for the bump, @daledah will review this one. |
|
@JmillsExpensify @JS00001 could you please help to run Generate static translations GitHub workflow here? |
|
@Krishna2323 Native: the first tap on a filter row only closes the keyboard bug.mov |
This was my first gut reaction as well - move the little search/find input to the very top above all of the filter rows. |
This is what I thought when I saw that as well, I think it makes sense to move the search bar up |
|
Totally agree with moving the search bar up. |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
Cool. @Krishna2323 are you ready for another round of reviews? |
|
@JmillsExpensify checking again now |
|
@Krishna2323 Could you please update the translations based on this comment and take a look at my comment here? |
…reorganize-filters # Conflicts: # src/hooks/useAdvancedSearchFilters.ts
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
|
@Expensify/design @JmillsExpensify Updated based on the feedback:
One question: "Describe your search" is currently pinned along with the search input, so the rest of the filters scroll under it (same as on main today). Since it's now just another filter option, should it scroll with the list instead, leaving only the "Search filters" input pinned? I'd lean towards scrolling. @daledah translations are updated, and the native issue where the first tap on a filter row only closed the keyboard is fixed. web_chrome.mp4 |
This is where I lean towards too, just have it act as a filter like the others. |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Yeah same - down to let it scroll with the rest. |
|
Updated: Monosnap.screencast.2026-10-27.18-22-23.mp4 |
|
Looks good 👍 |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@Expensify/design @JmillsExpensify One more thing I noticed while testing: keyboard navigation in the filters popover is pretty rough today. The arrow keys don't move through the filter list, and while you're typing in "Search filters" they can end up moving the selection inside the right pane instead. I prototyped a fix locally (video below) with this behavior:
Does this feel right to you? If so, I'd suggest we handle it in a separate issue/PR. Doing it properly touches the shared filter content components (to keep focus in sync between the two panes). Monosnap.screencast.2026-10-27.18-52-16.mp4 |
|
Love thinking about this. That feels right to me, though we can also hash it out in another PR. I've created a separate issue for it here: #105134 |
|
Everything else looks good to me, including the recent changes. @Krishna2323 are you ready for another round of reviews? |
|
Yes, it's ready for review. |
|
🚧 JmillsExpensify 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! 🧪🧪
|
JmillsExpensify
left a comment
There was a problem hiding this comment.
Tests really well on my end
Explanation of Change
Reorganizes the Search
Filterslist forExpense,Expense report,Invoice, andTripinto seven sections: Core, Details, Card transactions, Report fields, Report actions, Exports, and Withdrawals.Keywordup to the Core section.Invoicedate filter toCreated date.Search filtersinput on both the web popover and mobile page.No results foundwhen there are no matches.Fixed Issues
$ #104330
PROPOSAL: N/A
Tests
Filters.Keywordis the last row in the Core section, right afterWorkspaceif it is shown.WorkspaceandKeywordAmount,Currency,Date, etc.Card,Feed,Posted, etc.Report ID,Report field,Custom field 1,Custom field 2Submitted,Rejected,Held,Approved,Any approval,Paid,Paid byExported,Exported toTypetoInvoice. Verify:Created date.Total,Title, andReport IDno longer appear with the report action dates.paidin the search input. Verify onlyPaidandPaid byappear, each in its own section.xyz. VerifyNo results foundappears and the right pane is empty (web only).Filters, typepaid, openPaid, then go back. Verifypaidremains in the search input.Offline Tests
QA Steps
Repeat the tests above.
Verify that no errors appear in the JS console
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))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_native.mp4
Android: mWeb Chrome
android_chrome.mp4
iOS: Native
ios_mWeb.mp4
iOS: mWeb Safari
ios_native.mp4
MacOS: Chrome / Safari
web_chrome.mp4