Update Search select all behavior to use dropdown#91201
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 |
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.
|
|
@dubielzyk-expensify @DylanDylann 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] |
trjExpensify
left a comment
There was a problem hiding this comment.
product team had visibility on this product change. 👍
|
LGTM 👍 |
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! ℹ️ 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". |
|
@DylanDylann conflicts resolved, thanks |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-05-26.at.21.38.24.movAndroid: mWeb ChromeScreen.Recording.2026-05-26.at.21.36.41.moviOS: HybridAppScreen.Recording.2026-05-26.at.21.36.22.moviOS: mWeb SafariScreen.Recording.2026-05-26.at.21.35.26.movMacOS: Chrome / SafariScreen.Recording.2026-05-26.at.21.37.14.mov |
|
@emkhalid On mobile view, when clicking the select all option, the bulk button displays "50 selected" Screen.Recording.2026-05-26.at.18.04.27.mov |
|
@DylanDylann addressed, thanks. The narrow/mobile bulk action button now uses the same
Also, the failing checks don’t seem related to these changes. I don’t see any issue on my side after the latest update. Could you please rerun the failing actions when you get a chance? all-selected-fix.mov |
🦜 Polyglot Parrot! 🦜Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues: View the translation diffdiff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 7c18980fb34..5ffcbd2b50f 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -7974,11 +7974,7 @@ ${reportName}
description: 'おっと、アイテムがたくさんありますね!まとめて整理して、間もなくConciergeからファイルをお送りします。',
},
exportedTo: 'エクスポート先',
- exportAll: {
- selectAllMatchingItems: '一致する項目をすべて選択',
- allMatchingItemsSelected: '一致する項目をすべて選択済み',
- selectAllOnThisPage: 'このページのすべてを選択',
- },
+ exportAll: {selectAllMatchingItems: '一致する項目をすべて選択', allMatchingItemsSelected: '一致する項目をすべて選択済み', selectAllOnThisPage: 'このページのすべてを選択'},
errors: {
pleaseSelectDatesForBothFromAndTo: '開始日と終了日の両方を選択してください',
},
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 51e350a9cd4..f594c7d7f31 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -8037,7 +8037,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
exportAll: {
selectAllMatchingItems: 'Selecteer alle overeenkomende items',
allMatchingItemsSelected: 'Alle overeenkomende items geselecteerd',
- selectAllOnThisPage: 'Alles op deze pagina selecteren',
+ selectAllOnThisPage: 'Selecteer alles op deze pagina',
},
errors: {
pleaseSelectDatesForBothFromAndTo: 'Selecteer datums voor Van en Tot',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 958894da8fd..d5613ea0901 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -7833,11 +7833,7 @@ ${reportName}
description: '哇,项目真不少!我们会把它们打包好,Concierge 很快就会给你发送一个文件。',
},
exportedTo: '已导出到',
- exportAll: {
- selectAllMatchingItems: '选择所有匹配的项目',
- allMatchingItemsSelected: '已选择所有匹配的项目',
- selectAllOnThisPage: '选择此页面上的所有项目',
- },
+ exportAll: {selectAllMatchingItems: '选择所有匹配的项目', allMatchingItemsSelected: '已选择所有匹配的项目', selectAllOnThisPage: '选择本页全部内容'},
errors: {
pleaseSelectDatesForBothFromAndTo: '请选择起始和结束日期',
},
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
@emkhalid Please apply the translation diff above |
Explanation of Change
Added a
SearchSelectAllMenufor the Search list header checkbox so users can choose between selecting only the current page and selecting all matching results when more results are available. Removed the old bulk-actions “Select all matching items” link and the now-unused context flag. Also updated the Search footer total calculation so all-matching selection uses search metadata instead of only loaded selected rows.Fixed Issues
$ #88013
PROPOSAL: #88013 (comment)
Tests
Select all on this pageandSelect all.Select all on this page.Select all.All matching items selected.Offline tests
Same as 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-native-select-fix.mov
Android: mWeb Chrome
android-web-select-fix.mov
iOS: Native
ios-native-select-fix.mov
iOS: mWeb Safari
ios-web-select-fix.mov
MacOS: Chrome / Safari
macos-select-fix.mov