Skip to content

Commit 5b98546

Browse files
authored
Merge pull request Expensify#89802 from Expensify/feat/89355-edit-agent
feat: edit agent functionality
2 parents 40445d7 + bd7bd27 commit 5b98546

42 files changed

Lines changed: 1688 additions & 43 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/ONYXKEYS.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,10 @@ const ONYXKEYS = {
11261126
ADD_AGENT_FORM_DRAFT: 'addAgentFormDraft',
11271127
CREATE_DOMAIN_GROUP_FORM: 'createDomainGroupForm',
11281128
CREATE_DOMAIN_GROUP_FORM_DRAFT: 'createDomainGroupFormDraft',
1129+
EDIT_AGENT_NAME_FORM: 'editAgentNameForm',
1130+
EDIT_AGENT_NAME_FORM_DRAFT: 'editAgentNameFormDraft',
1131+
EDIT_AGENT_PROMPT_FORM: 'editAgentPromptForm',
1132+
EDIT_AGENT_PROMPT_FORM_DRAFT: 'editAgentPromptFormDraft',
11291133
},
11301134
DERIVED: {
11311135
REPORT_ATTRIBUTES: 'reportAttributes',
@@ -1273,6 +1277,8 @@ type OnyxFormValuesMapping = {
12731277
[ONYXKEYS.FORMS.EDIT_DOMAIN_GROUP_NAME_FORM]: FormTypes.DomainGroupEditNameForm;
12741278
[ONYXKEYS.FORMS.ADD_AGENT_FORM]: FormTypes.AddAgentForm;
12751279
[ONYXKEYS.FORMS.CREATE_DOMAIN_GROUP_FORM]: FormTypes.DomainGroupCreateForm;
1280+
[ONYXKEYS.FORMS.EDIT_AGENT_NAME_FORM]: FormTypes.EditAgentNameForm;
1281+
[ONYXKEYS.FORMS.EDIT_AGENT_PROMPT_FORM]: FormTypes.EditAgentPromptForm;
12761282
};
12771283

12781284
type OnyxFormDraftValuesMapping = {

src/ROUTES.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,6 +1061,18 @@ const ROUTES = {
10611061
SETTINGS_WALLET_TRAVEL_CVV_VERIFY_ACCOUNT: `settings/wallet/travel-cvv/${VERIFY_ACCOUNT}`,
10621062
SETTINGS_AGENTS: 'settings/agents',
10631063
SETTINGS_AGENTS_ADD: 'settings/agents/new',
1064+
SETTINGS_AGENTS_EDIT: {
1065+
route: 'settings/agents/:accountID/edit',
1066+
getRoute: (accountID: number) => `settings/agents/${accountID}/edit` as const,
1067+
},
1068+
SETTINGS_AGENTS_EDIT_NAME: {
1069+
route: 'settings/agents/:accountID/edit/name',
1070+
getRoute: (accountID: number) => `settings/agents/${accountID}/edit/name` as const,
1071+
},
1072+
SETTINGS_AGENTS_EDIT_PROMPT: {
1073+
route: 'settings/agents/:accountID/edit/prompt',
1074+
getRoute: (accountID: number) => `settings/agents/${accountID}/edit/prompt` as const,
1075+
},
10641076
SETTINGS_RULES: 'settings/rules',
10651077
SETTINGS_RULES_ADD: {
10661078
route: 'settings/rules/new/:field?/:index?',

src/SCREENS.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,9 @@ const SCREENS = {
177177
AGENTS: {
178178
ROOT: 'Settings_Agents',
179179
ADD: 'Settings_Agents_Add',
180+
EDIT: 'Settings_Agents_Edit',
181+
EDIT_NAME: 'Settings_Agents_Edit_Name',
182+
EDIT_PROMPT: 'Settings_Agents_Edit_Prompt',
180183
},
181184

182185
RULES: {

src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const WIDE_LAYOUT_INACTIVE_SCREENS: string[] = [
1212
SCREENS.SETTINGS.PREFERENCES.ROOT,
1313
SCREENS.SETTINGS.SECURITY,
1414
SCREENS.SETTINGS.WALLET.ROOT,
15+
SCREENS.SETTINGS.AGENTS.ROOT,
1516
SCREENS.SETTINGS.RULES.ROOT,
1617
SCREENS.SETTINGS.HELP,
1718
SCREENS.SETTINGS.ABOUT,

src/components/MenuItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1134,7 +1134,7 @@ function MenuItem({
11341134
</View>
11351135
)}
11361136
{!!brickRoadIndicator && (
1137-
<View style={[styles.alignItemsCenter, styles.justifyContentCenter, styles.ml1, styles.mr2]}>
1137+
<View style={[styles.alignItemsCenter, styles.justifyContentCenter, styles.ml1, badgeText ? undefined : styles.mr2]}>
11381138
<Icon
11391139
src={icons.DotIndicator}
11401140
fill={brickRoadIndicator === CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR ? theme.danger : theme.success}

src/languages/de.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2742,6 +2742,9 @@ ${amount} für ${merchant} – ${date}`,
27422742
emptyAgents: {title: 'Keine Agenten erstellt', subtitle: 'Hör auf, Dinge manuell zu erledigen. Weise stattdessen eine:n Agent:in an und spare dir eine Menge Zeit.'},
27432743
error: {
27442744
genericAdd: 'Beim Hinzufügen dieses Agenten ist ein Problem aufgetreten',
2745+
genericUpdate: 'Beim Aktualisieren dieses Agents ist ein Problem aufgetreten',
2746+
updateName: 'Beim Aktualisieren des Namens dieses Agents ist ein Problem aufgetreten',
2747+
updatePrompt: 'Beim Aktualisieren der Anweisungen dieses Agenten ist ein Problem aufgetreten',
27452748
},
27462749
},
27472750
addAgentPage: {
@@ -2754,6 +2757,16 @@ ${amount} für ${merchant} – ${date}`,
27542757
defaultPrompt:
27552758
'Lehne Ausgaben ab, die für Glücksspiele, Kinobesuche oder andere offensichtlich nicht geschäftliche Zwecke sind.\n\nErinnere den:die Nutzer:in daran, immer ein Belegfoto beizufügen, auf dem das Trinkgeld klar erkennbar ist.\n\nGenehmige den Bericht, wenn er früheren Berichten derselben Person sehr ähnlich ist.\n\nLehne Berichte mit mehr als 500 $ an Reisekosten ab.',
27562759
},
2760+
editAgentPage: {
2761+
title: 'Agent bearbeiten',
2762+
agentName: 'Agentenname',
2763+
instructions: 'Eigene Anweisungen schreiben',
2764+
deleteAgent: 'Agent löschen',
2765+
deleteAgentTitle: 'Agent löschen?',
2766+
deleteAgentMessage: 'Sind Sie sicher, dass Sie diese Ansprechperson löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
2767+
},
2768+
editAgentNamePage: {title: 'Agentenname'},
2769+
editAgentPromptPage: {title: 'Eigene Anweisungen schreiben', error: {emptyPrompt: 'Bitte gib Anweisungen für deine Agentin/deinen Agenten ein.'}},
27572770
expenseRulesPage: {
27582771
title: 'Ausgabenregeln',
27592772
findRule: 'Regel finden',

src/languages/en.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2798,6 +2798,9 @@ const translations = {
27982798
},
27992799
error: {
28002800
genericAdd: 'There was a problem adding this agent',
2801+
genericUpdate: 'There was a problem updating this agent',
2802+
updateName: "There was a problem updating this agent's name",
2803+
updatePrompt: "There was a problem updating this agent's instructions",
28012804
},
28022805
},
28032806
addAgentPage: {
@@ -2810,6 +2813,23 @@ const translations = {
28102813
defaultPrompt:
28112814
"Reject expenses that are for gambling, movies, or other obvious non-business reasons.\n\nRemind the user to always include a receipt image that makes the tip clear.\n\nApprove the report if it's very similar to previous reports from the same user.\n\nReject reports with more than $500 in travel expenses.",
28122815
},
2816+
editAgentPage: {
2817+
title: 'Edit agent',
2818+
agentName: 'Agent name',
2819+
instructions: 'Write custom instructions',
2820+
deleteAgent: 'Delete agent',
2821+
deleteAgentTitle: 'Delete agent?',
2822+
deleteAgentMessage: 'Are you sure you want to delete this agent? This action cannot be undone.',
2823+
},
2824+
editAgentNamePage: {
2825+
title: 'Agent name',
2826+
},
2827+
editAgentPromptPage: {
2828+
title: 'Write custom instructions',
2829+
error: {
2830+
emptyPrompt: 'Please enter instructions for your agent.',
2831+
},
2832+
},
28132833
expenseRulesPage: {
28142834
title: 'Expense rules',
28152835
subtitle: 'These rules will apply to your expenses.',

src/languages/es.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2627,6 +2627,9 @@ ${amount} para ${merchant} - ${date}`,
26272627
},
26282628
error: {
26292629
genericAdd: 'Hubo un problema al agregar este agente',
2630+
genericUpdate: 'Hubo un problema al actualizar este agente',
2631+
updateName: 'Hubo un problema al actualizar el nombre de este agente',
2632+
updatePrompt: 'Hubo un problema al actualizar las instrucciones de este agente',
26302633
},
26312634
},
26322635
addAgentPage: {
@@ -2639,6 +2642,23 @@ ${amount} para ${merchant} - ${date}`,
26392642
defaultPrompt:
26402643
'Rechazar gastos por juegos de azar, películas u otras razones claramente no comerciales.\n\nRecordar al usuario que siempre incluya una imagen del recibo que muestre claramente la propina.\n\nAprobar el informe si es muy similar a informes anteriores del mismo usuario.\n\nRechazar informes con más de $500 en gastos de viaje.',
26412644
},
2645+
editAgentPage: {
2646+
title: 'Editar agente',
2647+
agentName: 'Nombre del agente',
2648+
instructions: 'Escribe instrucciones personalizadas',
2649+
deleteAgent: 'Eliminar agente',
2650+
deleteAgentTitle: '¿Eliminar agente?',
2651+
deleteAgentMessage: '¿Estás seguro de que quieres eliminar este agente? Esta acción no se puede deshacer.',
2652+
},
2653+
editAgentNamePage: {
2654+
title: 'Nombre del agente',
2655+
},
2656+
editAgentPromptPage: {
2657+
title: 'Escribe instrucciones personalizadas',
2658+
error: {
2659+
emptyPrompt: 'Por favor, introduce instrucciones para tu agente.',
2660+
},
2661+
},
26422662
expenseRulesPage: {
26432663
title: 'Reglas de gastos',
26442664
subtitle: 'Estas reglas se aplicarán a tus gastos.',

src/languages/fr.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2748,6 +2748,9 @@ ${amount} pour ${merchant} - ${date}`,
27482748
emptyAgents: {title: 'Aucun agent créé', subtitle: 'Arrêtez de faire les choses manuellement. Donnez plutôt des instructions à un agent et gagnez beaucoup de temps.'},
27492749
error: {
27502750
genericAdd: "Un problème est survenu lors de l'ajout de cet agent",
2751+
genericUpdate: 'Un problème est survenu lors de la mise à jour de cet agent',
2752+
updateName: 'Un problème est survenu lors de la mise à jour du nom de cet agent',
2753+
updatePrompt: 'Un problème est survenu lors de la mise à jour des instructions de cet agent',
27512754
},
27522755
},
27532756
addAgentPage: {
@@ -2760,6 +2763,16 @@ ${amount} pour ${merchant} - ${date}`,
27602763
defaultPrompt:
27612764
'Rejeter les dépenses liées aux jeux d’argent, aux films ou à d’autres motifs manifestement non professionnels.\n\nRappeler à l’utilisateur d’inclure systématiquement une image du reçu où le pourboire est clairement visible.\n\nApprouver le rapport s’il est très similaire aux rapports précédents du même utilisateur.\n\nRejeter les rapports contenant plus de 500 $ de frais de déplacement.',
27622765
},
2766+
editAgentPage: {
2767+
title: "Modifier l'agent",
2768+
agentName: "Nom de l'agent",
2769+
instructions: 'Rédiger des instructions personnalisées',
2770+
deleteAgent: "Supprimer l'agent",
2771+
deleteAgentTitle: "Supprimer l'agent ?",
2772+
deleteAgentMessage: 'Voulez-vous vraiment supprimer cet agent ? Cette action est irréversible.',
2773+
},
2774+
editAgentNamePage: {title: "Nom de l'agent"},
2775+
editAgentPromptPage: {title: 'Rédiger des instructions personnalisées', error: {emptyPrompt: 'Veuillez saisir les instructions pour votre agent.'}},
27632776
expenseRulesPage: {
27642777
title: 'Règles de dépenses',
27652778
findRule: 'Rechercher une règle',

src/languages/it.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2738,6 +2738,9 @@ ${amount} per ${merchant} - ${date}`,
27382738
emptyAgents: {title: 'Nessun agente creato', subtitle: 'Smetti di fare le cose manualmente. Dai istruzioni a un agente e risparmia un sacco di tempo.'},
27392739
error: {
27402740
genericAdd: "Si è verificato un problema durante l'aggiunta di questo agente",
2741+
genericUpdate: "Si è verificato un problema durante l'aggiornamento di questo agente",
2742+
updateName: "Si è verificato un problema durante l'aggiornamento del nome di questo agente",
2743+
updatePrompt: "Si è verificato un problema nell'aggiornare le istruzioni di questo agente",
27412744
},
27422745
},
27432746
addAgentPage: {
@@ -2750,6 +2753,16 @@ ${amount} per ${merchant} - ${date}`,
27502753
defaultPrompt:
27512754
"Rifiuta le spese relative a gioco d'azzardo, cinema o altri motivi chiaramente non legati all'attività.\n\nRicorda all'utente di includere sempre un'immagine della ricevuta in cui la mancia sia ben visibile.\n\nApprova il report se è molto simile ai report precedenti dello stesso utente.\n\nRifiuta i report con più di 500 $ di spese di viaggio.",
27522755
},
2756+
editAgentPage: {
2757+
title: 'Modifica agente',
2758+
agentName: 'Nome agente',
2759+
instructions: 'Scrivi istruzioni personalizzate',
2760+
deleteAgent: 'Elimina agente',
2761+
deleteAgentTitle: 'Eliminare agente?',
2762+
deleteAgentMessage: 'Sei sicuro di voler eliminare questo agente? Questa azione non può essere annullata.',
2763+
},
2764+
editAgentNamePage: {title: 'Nome agente'},
2765+
editAgentPromptPage: {title: 'Scrivi istruzioni personalizzate', error: {emptyPrompt: 'Inserisci le istruzioni per il tuo agente.'}},
27532766
expenseRulesPage: {
27542767
title: 'Regole spese',
27552768
findRule: 'Trova regola',

0 commit comments

Comments
 (0)