Fix - When filtering in Domain page, blank space is shown if no users are found#85219
Conversation
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! ℹ️ 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". |
|
@ZhenjaHorbach 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] |
|
test fail unrelated |
|
Do we have an empty state for this case? I would expect that to be part of the fix. |
|
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 |
|
updated PR to reflect changes from the slack discussion. |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
Video above looks good to me 👍 |
Reviewer Checklist
Screenshots/VideosAndroid: HybridApp2026-03-13.17.45.15.movAndroid: mWeb Chrome2026-03-13.17.43.48.moviOS: HybridApp2026-03-13.17.45.15.moviOS: mWeb Safari2026-03-13.17.43.48.movMacOS: Chrome / Safari2026-03-13.17.39.38.mov |
|
Looks like on native apps, the layout is a little broken 2026-03-13.17.46.33.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/de.ts b/src/languages/de.ts
index ac5090cf..d447648d 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -8687,6 +8687,7 @@ Hier ist ein *Testbeleg*, um dir zu zeigen, wie es funktioniert:`,
`Bist du sicher? Dadurch wird das Konto von <strong>${email}</strong> gesperrt. <br /><br /> Unser Team wird das Konto anschließend überprüfen und unbefugten Zugriff entfernen. Um den Zugriff wiederherzustellen, muss die Person mit Concierge zusammenarbeiten.`,
reportSuspiciousActivityConfirmationPrompt: 'Wir überprüfen das Konto, um sicherzustellen, dass es sicher entsperrt werden kann, und melden uns bei Fragen über Concierge.',
cannotSetVacationDelegateForMember: (email: string) => `Du kannst keine Urlaubsvertretung für ${email} festlegen, weil sie derzeit die Vertretung für folgende Mitglieder sind:`,
+ emptyMembers: {title: 'Keine Mitglieder in dieser Gruppe', subtitle: 'Fügen Sie ein Mitglied hinzu oder versuchen Sie, den Filter oben zu ändern.'},
},
common: {
settings: 'Einstellungen',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 3a34c0c1..40ccf902 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -8710,6 +8710,7 @@ Voici un *reçu test* pour vous montrer comment ça fonctionne :`,
`Voulez-vous continuer ? Cela va verrouiller le compte de <strong>${email}</strong>. <br /><br /> Notre équipe examinera ensuite le compte et supprimera tout accès non autorisé. Pour retrouver l’accès, il faudra collaborer avec Concierge.`,
reportSuspiciousActivityConfirmationPrompt:
'Nous examinerons le compte pour vérifier qu’il est sûr de le déverrouiller et nous vous contacterons via Concierge si nous avons des questions.',
+ emptyMembers: {title: 'Aucun membre dans ce groupe', subtitle: 'Ajoutez un membre ou essayez de modifier le filtre ci-dessus.'},
},
common: {
settings: 'Paramètres',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index e65e7db2..ff35f2a1 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -8674,6 +8674,7 @@ Ecco una *ricevuta di prova* per mostrarti come funziona:`,
reportSuspiciousActivityPrompt: (email: string) =>
`Sei sicuro? Questo bloccherà l’account di <strong>${email}</strong>. <br /><br /> Il nostro team esaminerà quindi l’account e rimuoverà qualsiasi accesso non autorizzato. Per riottenere l’accesso, dovranno collaborare con Concierge.`,
reportSuspiciousActivityConfirmationPrompt: 'Esamineremo l’account per verificare che sia sicuro sbloccarlo e ti contatteremo tramite Concierge per qualsiasi domanda.',
+ emptyMembers: {title: 'Nessun membro in questo gruppo', subtitle: 'Aggiungi un membro o prova a cambiare il filtro qui sopra.'},
},
common: {
settings: 'Impostazioni',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 9ab90d2d..bb9744e0 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -8576,6 +8576,7 @@ ${reportName}
reportSuspiciousActivityPrompt: (email: string) =>
`本当によろしいですか?これにより、<strong>${email}</strong> さんのアカウントがロックされます。<br /><br />その後、当社のチームがアカウントを確認し、不正アクセスを削除します。アクセスを回復するには、Concierge と連携して対応してもらう必要があります。`,
reportSuspiciousActivityConfirmationPrompt: 'アカウントが安全にロック解除できることを確認するために審査し、質問がある場合はConciergeを通じてご連絡します。',
+ emptyMembers: {title: 'このグループにはメンバーがいません', subtitle: 'メンバーを追加するか、上のフィルターを変更してみてください。'},
},
common: {
settings: '設定',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 1ade218c..ae35c3d2 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -8651,6 +8651,7 @@ Hier is een *proefbon* om je te laten zien hoe het werkt:`,
`Weet je het zeker? Hiermee wordt het account van <strong>${email}</strong> vergrendeld. <br /><br /> Ons team zal het account vervolgens beoordelen en ongeautoriseerde toegang verwijderen. Om weer toegang te krijgen, moeten ze samenwerken met Concierge.`,
reportSuspiciousActivityConfirmationPrompt:
'We beoordelen de account om te verifiëren dat het veilig is om deze te ontgrendelen en nemen via Concierge contact op als we vragen hebben.',
+ emptyMembers: {title: 'Geen leden in deze groep', subtitle: 'Voeg een lid toe of probeer het filter hierboven te wijzigen.'},
},
common: {
settings: 'Instellingen',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index dea6dcd3..e827c2eb 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -8635,6 +8635,7 @@ Oto *paragon testowy*, żeby pokazać Ci, jak to działa:`,
reportSuspiciousActivityPrompt: (email: string) =>
`Czy na pewno? To zablokuje konto użytkownika <strong>${email}</strong>. <br /><br /> Nasz zespół następnie przejrzy konto i usunie wszelki nieautoryzowany dostęp. Aby odzyskać dostęp, będą musieli współpracować z Concierge.`,
reportSuspiciousActivityConfirmationPrompt: 'Przejrzymy konto, aby potwierdzić, że bezpiecznie je odblokować, i skontaktujemy się przez Concierge w razie pytań.',
+ emptyMembers: {title: 'Brak członków w tej grupie', subtitle: 'Dodaj członka lub spróbuj zmienić filtr powyżej.'},
},
common: {
settings: 'Ustawienia',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index be11c98a..93d622b5 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -8640,6 +8640,7 @@ Aqui está um *comprovante de teste* para mostrar como funciona:`,
reportSuspiciousActivityPrompt: (email: string) =>
`Tem certeza? Isso irá bloquear a conta de <strong>${email}</strong>. <br /><br /> Nossa equipe irá então analisar a conta e remover qualquer acesso não autorizado. Para recuperar o acesso, será necessário que trabalhem com a Concierge.`,
reportSuspiciousActivityConfirmationPrompt: 'Vamos revisar a conta para verificar se é seguro desbloqueá-la e entraremos em contato via Concierge caso haja dúvidas.',
+ emptyMembers: {title: 'Nenhum membro neste grupo', subtitle: 'Adicione um membro ou tente mudar o filtro acima.'},
},
common: {
settings: 'Configurações',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index f87e2bac..c5e7861d 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -8431,6 +8431,7 @@ ${reportName}
reportSuspiciousActivityPrompt: (email: string) =>
`你确定要这样做吗?这将锁定 <strong>${email}</strong> 的账户。<br /><br />我们的团队随后会审核该账户并移除任何未经授权的访问。若要重新获得访问权限,他们需要与 Concierge 配合处理。`,
reportSuspiciousActivityConfirmationPrompt: '我们会审核账户以确认解锁是否安全,如有任何问题将通过 Concierge 与您联系。',
+ emptyMembers: {title: '此群组中没有成员', subtitle: '添加成员或尝试更改上方的筛选条件。'},
},
common: {
settings: '设置',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
luacmartins
left a comment
There was a problem hiding this comment.
@jmusial we need to add the transaction for the other languages too #85219 (comment)
looking into it |
JmillsExpensify
left a comment
There was a problem hiding this comment.
Looks good for product.
|
@ZhenjaHorbach fixed IOS issue & updated translations IOS nativeScreen.Recording.2026-03-16.at.13.40.18.movAndroid nativeScreen.Recording.2026-03-16.at.14.24.06.mov |
|
@jmusial |
|
But changes work good! |
|
@mountiny all yours |
|
🚧 @mountiny 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! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.3.39-0 🚀
|
|
🚀 Deployed to production by https://github.com/cristipaval in version: 9.3.39-3 🚀
|
Explanation of Change
The empty state ("no results") message was previously delegated to
SearchBar, which only accounted for text search. This didn't handle the case where results are empty due to an accessory filter (e.g. filtering by member role) with no search input.The message is now rendered explicitly below the search bar with correct logic: show "No results found matching " when there's a search term, or "No results found" when filtered results are empty for any other reason
Fixed Issues
$ #85168
PROPOSAL:
Tests
Precondition :
Offline tests
Same as tests
QA Steps
Same as tests
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
MacOS: Chrome / Safari
Screen.Recording.2026-03-13.at.17.00.35.mov