Update the agents table to the new style#94995
Conversation
This comment has been minimized.
This comment has been minimized.
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.
|
Introduces a shared Table-based component with sortable rows, search support, and row navigation to the edit agent RHP.
Replaces the FlatList and per-row action buttons with compact table rows that open the edit RHP on tap for both web and mobile.
Adds localized search placeholder copy used when the agents list exceeds the standard list item limit.
Use a type guard when building agent row data and mock table dependencies in unit tests so TableRow does not require ScreenWrapper context.
Avoids invalid type predicate narrowing when filtering out agents without personal details.
4fa4018 to
b5d46a2
Compare
🦜 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 4f8a0ec10a4..09d46cf4456 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -2869,7 +2869,7 @@ ${amount} für ${merchant} – ${date}`,
agentsPage: {
title: 'Agenten',
subtitle: `<muted-text>Agents übernehmen Ihre Workflows für Sie, sodass Sie täglich Stunden zurückgewinnen. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">Mehr erfahren</a>.</muted-text>`,
- findAgent: 'Agent suchen',
+ findAgent: 'Agent finden',
copilot: 'Co-Pilot',
newAgent: 'Neue:r Agent:in',
emptyAgents: {
diff --git a/src/languages/es.ts b/src/languages/es.ts
index f8c6344d972..1b9eb5998d9 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -2734,7 +2734,7 @@ ${amount} para ${merchant} - ${date}`,
title: 'Agentes',
subtitle: `<muted-text>Los agentes gestionan tus flujos de trabajo por ti, para que recuperes horas en tu día. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">Más información</a>.</muted-text>`,
findAgent: 'Buscar agente',
- copilot: 'Co-piloto',
+ copilot: 'Copiloto',
newAgent: 'Nuevo agente',
emptyAgents: {
title: 'No se han creado agentes.',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index fbd4a9ef6a5..f7005e775bd 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -2877,7 +2877,7 @@ ${amount} pour ${merchant} - ${date}`,
title: 'Agents',
subtitle: `<muted-text>Les agents gèrent vos workflows pour vous, afin que vous gagniez des heures dans votre journée. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">En savoir plus</a>.</muted-text>`,
findAgent: 'Trouver un agent',
- copilot: 'Co-pilot',
+ copilot: 'Copilote',
newAgent: 'Nouvel agent',
emptyAgents: {
title: 'Aucun agent créé',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index b331b0a211f..b3c1dc739ae 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -2865,7 +2865,7 @@ ${amount} per ${merchant} - ${date}`,
title: 'Agenti',
subtitle: `<muted-text>Gli agenti gestiscono i tuoi flussi di lavoro al posto tuo, così ti ritrovi ore in più nella tua giornata. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">Scopri di più</a>.</muted-text>`,
findAgent: 'Trova agente',
- copilot: 'Co-pilot',
+ copilot: 'Copilota',
newAgent: 'Nuovo agente',
emptyAgents: {
title: 'Nessun agente creato',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 2c1d642896e..3fdf7b378c7 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -2833,8 +2833,8 @@ ${date} の ${merchant} への ${amount}`,
agentsPage: {
title: '担当者',
subtitle: `<muted-text>エージェントがワークフローを代わりに処理するので、毎日の時間を数時間取り戻せます。<a href="${CONST.CUSTOM_AGENTS_HELP_URL}">詳しく見る</a>。</muted-text>`,
- findAgent: '担当者を探す',
- copilot: 'Co-pilot',
+ findAgent: 'エージェントを検索',
+ copilot: 'コパイロット',
newAgent: '新しいエージェント',
emptyAgents: {
title: 'エージェントは作成されていません',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index aacba6361cf..d287edef14b 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -2863,7 +2863,7 @@ ${amount} voor ${merchant} - ${date}`,
title: 'Agenten',
subtitle: `<muted-text>Agents verwerken je workflows voor je, zodat je uren per dag terugkrijgt. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">Meer informatie</a>.</muted-text>`,
findAgent: 'Agent zoeken',
- copilot: 'Co-pilot',
+ copilot: 'Co-piloot',
newAgent: 'Nieuwe medewerker',
emptyAgents: {
title: 'Geen agents aangemaakt',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index f96330d6e18..b9d7bcdf23f 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -2850,7 +2850,7 @@ ${amount} dla ${merchant} - ${date}`,
title: 'Agenci',
subtitle: `<muted-text>Agenci obsługują za ciebie twoje procesy, dzięki czemu odzyskujesz godziny w ciągu dnia. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">Dowiedz się więcej</a>.</muted-text>`,
findAgent: 'Znajdź agenta',
- copilot: 'Co-pilot',
+ copilot: 'Współpilot',
newAgent: 'Nowy agent',
emptyAgents: {
title: 'Nie utworzono agentów',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 200c8a53233..1007826a2f9 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -2853,7 +2853,7 @@ ${amount} para ${merchant} - ${date}`,
title: 'Agentes',
subtitle: `<muted-text>Agentes cuidam dos seus fluxos de trabalho para você, para que você ganhe horas de volta no seu dia. <a href="${CONST.CUSTOM_AGENTS_HELP_URL}">Saiba mais</a>.</muted-text>`,
findAgent: 'Encontrar agente',
- copilot: 'Co-pilot',
+ copilot: 'Copiloto',
newAgent: 'Novo agente',
emptyAgents: {
title: 'Nenhum agente criado',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 9f1952b61da..3a36fe53e9f 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -2766,7 +2766,7 @@ ${amount},商户:${merchant} - 日期:${date}`,
title: '代理人',
subtitle: `<muted-text>智能代理为你处理工作流程,让你每天多出数小时。<a href="${CONST.CUSTOM_AGENTS_HELP_URL}">了解详情</a>。</muted-text>`,
findAgent: '查找代理',
- copilot: 'Co-pilot',
+ copilot: '副驾驶',
newAgent: '新代理人',
emptyAgents: {
title: '尚未创建代理',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
Invoke PressableWithFeedback render props in the mock and stub table row dependencies so action buttons render in tests.
|
@shawnborton @Krishna2323 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] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: af0cdb1569
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
Krishna2323
left a comment
There was a problem hiding this comment.
Code-wise, it looks good to me. It just needs a few minor fixes. I'll complete the checklist once those are done.
|
@luacmartins jest is failing |
|
@JS00001 updated |
|
@luacmartins is this ready for review? |
|
No, not yet |
|
@Krishna2323 fixed |
|
🚧 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: mWeb Chromeandroid_mWe.mp4iOS: HybridAppios_native.mp4iOS: mWeb Safariios_mWeb.mp4MacOS: Chrome / Safariweb_chrome.mp4 |
|
Feels pretty good to me 👍 |
|
🚧 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.4.33-0 🚀
|
📝 Help site review — changes requiredThis PR migrates the Agents page to the shared The existing help article Draft help site PR: #95846 What changed in the docs and whyVerified all labels against the merged code (
The Edit agent RHP menu items are exactly: Chat with agent, Copilot into account, Delete agent, plus Agent name and Write custom instructions. @luacmartins, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
Deploy Blocker #95860 was identified to be related to this PR. |
|
This PR failing because of the issue #95860 |




Explanation of Change
Migrate the Agents page to the shared
Tablecomponent.Row taps on both web and mobile now open the edit agent RHP (which includes chat, copilot, and edit actions), replacing the inline action buttons on wide screens.
Fixed Issues
$ #94972
Tests
Offline tests
N/A
QA Steps
Same as tests