From 0b5a95ad5e3126731fb3ce9afd0c7129e78187f4 Mon Sep 17 00:00:00 2001 From: daledah Date: Tue, 21 Oct 2025 03:30:12 +0700 Subject: [PATCH 1/5] feat: Better detect third party card connection issues --- src/languages/de.ts | 10 +++++- src/languages/en.ts | 10 +++++- src/languages/es.ts | 10 +++++- src/languages/fr.ts | 10 +++++- src/languages/it.ts | 10 +++++- src/languages/ja.ts | 10 +++++- src/languages/nl.ts | 10 +++++- src/languages/params.ts | 6 ++++ src/languages/pl.ts | 10 +++++- src/languages/pt-BR.ts | 10 +++++- src/languages/zh-hans.ts | 9 ++++- .../companyCards/addNew/AddNewCardPage.tsx | 34 ++++++++++++++----- .../addNew/PlaidConnectionStep.tsx | 7 ++-- .../assignCard/CardSelectionStep.tsx | 26 ++++++++++---- 14 files changed, 146 insertions(+), 26 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index a17d04169b0a..2750d9a6d877 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4512,6 +4513,12 @@ ${amount} für ${merchant} - ${date}`, pleaseSelectCountry: 'Bitte wählen Sie ein Land aus, bevor Sie fortfahren.', pleaseSelectFeedType: 'Bitte wählen Sie einen Feed-Typ aus, bevor Sie fortfahren.', }, + exitModal: { + title: 'Funktioniert etwas nicht?', + prompt: 'Wir haben bemerkt, dass Sie das Hinzufügen Ihrer Karten nicht abgeschlossen haben. Wenn Sie ein Problem gefunden haben, lassen Sie es uns wissen, damit wir helfen können, alles wieder in Ordnung zu bringen.', + confirmText: 'Problem melden', + cancelText: 'Überspringen', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Letzter Tag des Monats', @@ -4526,7 +4533,8 @@ ${amount} für ${merchant} - ${date}`, directFeed: 'Direkt-Feed', whoNeedsCardAssigned: 'Wer benötigt eine zugewiesene Karte?', chooseCard: 'Wählen Sie eine Karte', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Wählen Sie eine Karte für ${assignee} aus dem ${feed} Karten-Feed.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Wählen Sie eine Karte für ${assignee}. Können Sie die gesuchte Karte nicht finden? Teilen Sie es uns mit.`, noActiveCards: 'Keine aktiven Karten in diesem Feed', somethingMightBeBroken: 'Oder es ist etwas kaputt. Wie auch immer, wenn Sie Fragen haben, wenden Sie sich an Concierge.', diff --git a/src/languages/en.ts b/src/languages/en.ts index 404d94543e7f..b85507f7389d 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -58,6 +58,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4479,6 +4480,12 @@ const translations = { pleaseSelectCountry: 'Please select a country before continuing', pleaseSelectFeedType: 'Please select a feed type before continuing', }, + exitModal: { + title: 'Something not working?', + prompt: "We noticed you didn't finish adding your cards. If you found an issue, let us know so we can help get things back on track.", + confirmText: 'Report issue', + cancelText: 'Skip', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Last day of the month', @@ -4493,7 +4500,8 @@ const translations = { directFeed: 'Direct feed', whoNeedsCardAssigned: 'Who needs a card assigned?', chooseCard: 'Choose a card', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Choose a card for ${assignee} from the ${feed} cards feed.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Choose a card for ${assignee}. Can't find the card you're looking for? Let us know.`, noActiveCards: 'No active cards on this feed', somethingMightBeBroken: 'Or something might be broken. Either way, if you have any questions, just contact Concierge.', diff --git a/src/languages/es.ts b/src/languages/es.ts index 3ebbe1e6f47b..f168cce0b268 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -56,6 +56,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4493,6 +4494,12 @@ ${amount} para ${merchant} - ${date}`, pleaseSelectCountry: 'Seleccione un país antes de continuar', pleaseSelectFeedType: 'Seleccione un tipo de pienso antes de continuar', }, + exitModal: { + title: '¿Algo no funciona?', + prompt: 'Notamos que no terminaste de añadir tus tarjetas. Si encontraste un problema, háznoslo saber para que podamos ayudarte a solucionarlo.', + confirmText: 'Informar problema', + cancelText: 'Saltar', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Último día del mes', @@ -4507,7 +4514,8 @@ ${amount} para ${merchant} - ${date}`, directFeed: 'Fuente directa', whoNeedsCardAssigned: '¿Quién necesita una tarjeta?', chooseCard: 'Elige una tarjeta', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Elige una tarjeta para ${assignee} del feed de tarjetas ${feed}.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Elige una tarjeta para ${assignee}. ¿No encuentras la tarjeta que buscas? Avísanos.`, noActiveCards: 'No hay tarjetas activas en este feed', somethingMightBeBroken: 'O algo podría estar roto. De cualquier manera, si tienes alguna pregunta, contacta a Concierge.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 9f314c227370..2cfdfc4ca145 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4518,6 +4519,12 @@ ${amount} pour ${merchant} - ${date}`, pleaseSelectCountry: 'Veuillez sélectionner un pays avant de continuer', pleaseSelectFeedType: 'Veuillez sélectionner un type de flux avant de continuer', }, + exitModal: { + title: 'Un problème est survenu ?', + prompt: "Nous avons remarqué que vous n'avez pas terminé d'ajouter vos cartes. Si vous avez rencontré un problème, faites-le nous savoir afin que nous puissions vous aider à le résoudre.", + confirmText: 'Signaler un problème', + cancelText: 'Ignorer', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Dernier jour du mois', @@ -4532,7 +4539,8 @@ ${amount} pour ${merchant} - ${date}`, directFeed: 'Flux direct', whoNeedsCardAssigned: "Qui a besoin d'une carte assignée ?", chooseCard: 'Choisissez une carte', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Choisissez une carte pour ${assignee} à partir du flux de cartes ${feed}.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Choisissez une carte pour ${assignee}. Vous ne trouvez pas la carte que vous cherchez ? Faites-le nous savoir.`, noActiveCards: 'Aucune carte active dans ce flux', somethingMightBeBroken: "Ou quelque chose pourrait être cassé. Dans tous les cas, si vous avez des questions, n'hésitez pas à contacter le Concierge.", diff --git a/src/languages/it.ts b/src/languages/it.ts index f80e508ade5f..b173e680a159 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4523,6 +4524,12 @@ ${amount} per ${merchant} - ${date}`, pleaseSelectCountry: 'Si prega di selezionare un paese prima di continuare', pleaseSelectFeedType: 'Si prega di selezionare un tipo di feed prima di continuare', }, + exitModal: { + title: 'Qualcosa non funziona?', + prompt: 'Abbiamo notato che non hai terminato di aggiungere le tue carte. Se hai riscontrato un problema, faccelo sapere così possiamo aiutarti a risolverlo.', + confirmText: 'Segnala un problema', + cancelText: 'Salta', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Ultimo giorno del mese', @@ -4537,7 +4544,8 @@ ${amount} per ${merchant} - ${date}`, directFeed: 'Feed diretto', whoNeedsCardAssigned: 'Chi ha bisogno di una carta assegnata?', chooseCard: 'Scegli una carta', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Scegli una carta per ${assignee} dal feed delle carte ${feed}.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Scegli una carta per ${assignee}. Non riesci a trovare la carta che stai cercando? Facci sapere.`, noActiveCards: 'Nessuna carta attiva in questo feed', somethingMightBeBroken: 'Oppure potrebbe esserci qualcosa di rotto. In ogni caso, se avete domande, contattate il Concierge.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index b50651fd8367..773b8006b642 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4485,6 +4486,12 @@ ${date} - ${merchant}に${amount}`, pleaseSelectCountry: '続行する前に国を選択してください', pleaseSelectFeedType: '続行する前にフィードタイプを選択してください', }, + exitModal: { + title: 'うまく動作していませんか?', + prompt: 'カードの追加を完了していないようです。問題が発生した場合はお知らせください。解決のお手伝いをいたします。', + confirmText: '問題を報告する', + cancelText: 'スキップ', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: '月の最終日', @@ -4499,7 +4506,8 @@ ${date} - ${merchant}に${amount}`, directFeed: 'ダイレクトフィード', whoNeedsCardAssigned: '誰にカードを割り当てる必要がありますか?', chooseCard: 'カードを選んでください', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `${feed}カードフィードから${assignee}のためにカードを選択してください。`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `${assignee}のカードを選択してください。お探しのカードが見つかりませんか?お知らせください。`, noActiveCards: 'このフィードにはアクティブなカードがありません', somethingMightBeBroken: 'あるいは、何かが壊れているかもしれません。いずれにせよ、ご不明な点があれば、Concierge までお問い合わせください。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 9684ac899f0c..137ef0eee806 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4521,6 +4522,12 @@ ${amount} voor ${merchant} - ${date}`, pleaseSelectCountry: 'Selecteer alstublieft een land voordat u doorgaat', pleaseSelectFeedType: 'Selecteer een feedtype voordat u doorgaat.', }, + exitModal: { + title: 'Werkt er iets niet?', + prompt: 'We hebben gemerkt dat je het toevoegen van je kaarten niet hebt voltooid. Als je een probleem bent tegengekomen, laat het ons weten zodat we kunnen helpen dit op te lossen.', + confirmText: 'Probleem melden', + cancelText: 'Overslaan', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Laatste dag van de maand', @@ -4535,7 +4542,8 @@ ${amount} voor ${merchant} - ${date}`, directFeed: 'Direct feed', whoNeedsCardAssigned: 'Wie heeft een kaart toegewezen nodig?', chooseCard: 'Kies een kaart', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Kies een kaart voor ${assignee} uit de ${feed} kaartenfeed.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Kies een kaart voor ${assignee}. Kun je de kaart die je zoekt niet vinden? Laat het ons weten.`, noActiveCards: 'Geen actieve kaarten in deze feed', somethingMightBeBroken: 'Of er is misschien iets kapot. Hoe dan ook, als u vragen heeft, neem dan contact op met Concierge.', diff --git a/src/languages/params.ts b/src/languages/params.ts index 4f55f0bbd690..c7d805c4e64f 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -608,6 +608,11 @@ type AssignCardParams = { feed: string; }; +type ChooseCardForParams = { + assignee: string; + letUsKnowLink: string; +}; + type SpreadSheetColumnParams = { name: string; }; @@ -1256,4 +1261,5 @@ export type { ErrorODIntegrationParams, DisconnectYourBankAccountParams, MergeAccountIntoParams, + ChooseCardForParams, }; diff --git a/src/languages/pl.ts b/src/languages/pl.ts index e195936bb690..5229f7baebc4 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4508,6 +4509,12 @@ ${amount} dla ${merchant} - ${date}`, pleaseSelectCountry: 'Proszę wybrać kraj przed kontynuowaniem', pleaseSelectFeedType: 'Proszę wybrać typ kanału przed kontynuowaniem.', }, + exitModal: { + title: 'Coś nie działa?', + prompt: 'Zauważyliśmy, że nie ukończyłeś dodawania swoich kart. Jeśli napotkałeś problem, daj nam znać, abyśmy mogli pomóc go rozwiązać.', + confirmText: 'Zgłoś problem', + cancelText: 'Pomiń', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Ostatni dzień miesiąca', @@ -4522,7 +4529,8 @@ ${amount} dla ${merchant} - ${date}`, directFeed: 'Bezpośredni kanał', whoNeedsCardAssigned: 'Kto potrzebuje przypisanej karty?', chooseCard: 'Wybierz kartę', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Wybierz kartę dla ${assignee} z kanału kart ${feed}.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Wybierz kartę dla ${assignee}. Nie możesz znaleźć karty, której szukasz? Daj nam znać.`, noActiveCards: 'Brak aktywnych kart w tym kanale', somethingMightBeBroken: 'Albo coś może być zepsute. W każdym razie, jeśli masz jakieś pytania, skontaktuj się z Concierge.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 4e0bf66c4950..b1185bfea6be 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4509,6 +4510,12 @@ ${amount} para ${merchant} - ${date}`, pleaseSelectCountry: 'Por favor, selecione um país antes de continuar.', pleaseSelectFeedType: 'Por favor, selecione um tipo de feed antes de continuar.', }, + exitModal: { + title: 'Algo não está funcionando?', + prompt: 'Percebemos que você não terminou de adicionar seus cartões. Se encontrou um problema, avise-nos para que possamos ajudar a resolver.', + confirmText: 'Reportar problema', + cancelText: 'Pular', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: 'Último dia do mês', @@ -4523,7 +4530,8 @@ ${amount} para ${merchant} - ${date}`, directFeed: 'Feed direto', whoNeedsCardAssigned: 'Quem precisa de um cartão atribuído?', chooseCard: 'Escolha um cartão', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `Escolha um cartão para ${assignee} do feed de cartões ${feed}.`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => + `Escolha um cartão para ${assignee}. Não consegue encontrar o cartão que procura? Avise-nos.`, noActiveCards: 'Nenhum cartão ativo neste feed', somethingMightBeBroken: 'Ou algo pode estar quebrado. De qualquer forma, se você tiver alguma dúvida, entre em contato com a Concierge.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 2b8ea87414af..1c716d163eb2 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -69,6 +69,7 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, + ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4432,6 +4433,12 @@ ${merchant}的${amount} - ${date}`, pleaseSelectCountry: '请在继续之前选择一个国家', pleaseSelectFeedType: '请在继续之前选择一个订阅类型', }, + exitModal: { + title: '出现问题了吗?', + prompt: '我们注意到您尚未完成添加卡片。如果遇到问题,请告诉我们,我们会帮您解决。', + confirmText: '报告问题', + cancelText: '跳过', + }, }, statementCloseDate: { [CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH]: '本月最后一天', @@ -4446,7 +4453,7 @@ ${merchant}的${amount} - ${date}`, directFeed: '直接馈送', whoNeedsCardAssigned: '谁需要分配卡片?', chooseCard: '选择一张卡片', - chooseCardFor: ({assignee, feed}: AssignCardParams) => `从${feed}卡片源中为${assignee}选择一张卡片。`, + chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => `为${assignee}选择一张卡。找不到您要找的卡吗?告诉我们。`, noActiveCards: '此信息流中没有活跃的卡片', somethingMightBeBroken: '或者有什么东西坏了。无论如何,如果您有任何问题,请联系 Concierge', diff --git a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx index 23693ce3b325..ce425c7a97f6 100644 --- a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx +++ b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx @@ -1,9 +1,11 @@ import {isActingAsDelegateSelector} from '@selectors/Account'; -import React, {useEffect} from 'react'; +import React, {useEffect, useState} from 'react'; import {View} from 'react-native'; +import ConfirmModal from '@components/ConfirmModal'; import DelegateNoAccessWrapper from '@components/DelegateNoAccessWrapper'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import ScreenWrapper from '@components/ScreenWrapper'; +import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import usePermissions from '@hooks/usePermissions'; import useThemeStyles from '@hooks/useThemeStyles'; @@ -34,6 +36,8 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) { const [addNewCardFeed, addNewCardFeedMetadata] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD, {canBeMissing: false}); const {currentStep} = addNewCardFeed ?? {}; const {isBetaEnabled} = usePermissions(); + const [isModalVisible, setIsModalVisible] = useState(false); + const {translate} = useLocalize(); const [isActingAsDelegate] = useOnyx(ONYXKEYS.ACCOUNT, {selector: isActingAsDelegateSelector, canBeMissing: false}); @@ -98,7 +102,7 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) { CurrentStep = ; break; case CONST.COMPANY_CARDS.STEP.PLAID_CONNECTION: - CurrentStep = ; + CurrentStep = setIsModalVisible(true)} />; break; case CONST.COMPANY_CARDS.STEP.SELECT_STATEMENT_CLOSE_DATE: CurrentStep = ; @@ -112,12 +116,26 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) { } return ( - - {CurrentStep} - + <> + + {CurrentStep} + + setIsModalVisible(false)} + onConfirm={() => { + setIsModalVisible(false); + }} + /> + ); } diff --git a/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx b/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx index 38ed852a0426..a025a80bfa90 100644 --- a/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx +++ b/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx @@ -25,7 +25,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type {CompanyCardFeed} from '@src/types/onyx'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -function PlaidConnectionStep({feed, policyID}: {feed?: CompanyCardFeed; policyID?: string}) { +function PlaidConnectionStep({feed, policyID, onExit}: {feed?: CompanyCardFeed; policyID?: string; onExit?: () => void}) { const {translate} = useLocalize(); const styles = useThemeStyles(); const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD, {canBeMissing: true}); @@ -178,7 +178,10 @@ function PlaidConnectionStep({feed, policyID}: {feed?: CompanyCardFeed; policyID }} // User prematurely exited the Plaid flow // eslint-disable-next-line react/jsx-props-no-multi-spaces - onExit={handleBackButtonPress} + onExit={() => { + onExit?.(); + handleBackButtonPress(); + }} /> ); } diff --git a/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx b/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx index 6777a066d6fc..19c9ace786f1 100644 --- a/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx +++ b/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx @@ -13,6 +13,7 @@ import Text from '@components/Text'; import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddingStyle'; import useCardFeeds from '@hooks/useCardFeeds'; import useCardsList from '@hooks/useCardsList'; +import useEnvironment from '@hooks/useEnvironment'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import useThemeIllustrations from '@hooks/useThemeIllustrations'; @@ -25,6 +26,7 @@ import tokenizedSearch from '@libs/tokenizedSearch'; import variables from '@styles/variables'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; +import ROUTES from '@src/ROUTES'; import type {CompanyCardFeed} from '@src/types/onyx'; type CardSelectionStepProps = { @@ -119,6 +121,16 @@ function CardSelectionStep({feed, policyID}: CardSelectionStepProps) { const safeAreaPaddingBottomStyle = useBottomSafeSafeAreaPaddingStyle(); + const {environmentURL} = useEnvironment(); + const [conciergeReportID] = useOnyx(ONYXKEYS.CONCIERGE_REPORT_ID, {canBeMissing: true}); + + const conciergeLink = useMemo(() => { + if (!conciergeReportID) { + return ''; + } + return `${environmentURL}/${ROUTES.REPORT_WITH_ID.getRoute(conciergeReportID, undefined, undefined, Navigation.getActiveRoute())}`; + }, [conciergeReportID, environmentURL]); + return ( {translate('workspace.companyCards.chooseCard')} - - {translate('workspace.companyCards.chooseCardFor', { - assignee: assigneeDisplayName, - feed: plaidUrl && formattedFeedName ? formattedFeedName : getBankName(feed), - })} - + + + } shouldShowTextInputAfterHeader From 9190d4b73b9ac15090630001212ebf689a3cf449 Mon Sep 17 00:00:00 2001 From: daledah Date: Tue, 21 Oct 2025 03:54:22 +0700 Subject: [PATCH 2/5] fix: lint --- .../workspace/companyCards/assignCard/CardSelectionStep.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx b/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx index 19c9ace786f1..6b4f8194e5ff 100644 --- a/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx +++ b/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx @@ -19,7 +19,7 @@ import useOnyx from '@hooks/useOnyx'; import useThemeIllustrations from '@hooks/useThemeIllustrations'; import useThemeStyles from '@hooks/useThemeStyles'; import {setAssignCardStepAndData} from '@libs/actions/CompanyCards'; -import {getBankName, getCardFeedIcon, getCustomOrFormattedFeedName, getFilteredCardList, getPlaidInstitutionIconUrl, lastFourNumbersFromCardName, maskCardNumber} from '@libs/CardUtils'; +import {getCardFeedIcon, getFilteredCardList, getPlaidInstitutionIconUrl, lastFourNumbersFromCardName, maskCardNumber} from '@libs/CardUtils'; import Navigation from '@libs/Navigation/Navigation'; import {getPersonalDetailByEmail} from '@libs/PersonalDetailsUtils'; import tokenizedSearch from '@libs/tokenizedSearch'; @@ -47,7 +47,6 @@ function CardSelectionStep({feed, policyID}: CardSelectionStepProps) { const [workspaceCardFeeds] = useOnyx(ONYXKEYS.COLLECTION.WORKSPACE_CARDS_LIST, {canBeMissing: false}); const [cardFeeds] = useCardFeeds(policyID); const plaidUrl = getPlaidInstitutionIconUrl(feed); - const formattedFeedName = getCustomOrFormattedFeedName(feed, cardFeeds?.settings?.companyCardNicknames); const isEditing = assignCard?.isEditing; const assigneeDisplayName = getPersonalDetailByEmail(assignCard?.data?.email ?? '')?.displayName ?? ''; From d6a9199848d00173e2a13532cbee7d51e2c6f2f5 Mon Sep 17 00:00:00 2001 From: daledah Date: Tue, 21 Oct 2025 14:59:24 +0700 Subject: [PATCH 3/5] fix: lint --- src/languages/de.ts | 1 - src/languages/en.ts | 1 - src/languages/es.ts | 1 - src/languages/fr.ts | 1 - src/languages/it.ts | 1 - src/languages/ja.ts | 1 - src/languages/nl.ts | 1 - src/languages/params.ts | 6 ------ src/languages/pl.ts | 1 - src/languages/pt-BR.ts | 1 - src/languages/zh-hans.ts | 1 - 11 files changed, 16 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 2b30fa469cab..e029b42764f7 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/en.ts b/src/languages/en.ts index 02a4627ac7c9..aa2d0eafcd64 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -17,7 +17,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/es.ts b/src/languages/es.ts index 5122851e2c09..8ae5432ec3ee 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -15,7 +15,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 5ea6c02b00d0..192076281e6f 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/it.ts b/src/languages/it.ts index f6a92a407cc4..a4046e946438 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/ja.ts b/src/languages/ja.ts index f6795378e4b9..e36e7a183f04 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/nl.ts b/src/languages/nl.ts index cb31fd820a3d..23656db5149d 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/params.ts b/src/languages/params.ts index c07d0fb4f8e9..31b130d649d4 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -601,11 +601,6 @@ type SubmittedToVacationDelegateParams = {submittedToName: string; vacationDeleg type RoleNamesParams = {role: string}; -type AssignCardParams = { - assignee: string; - feed: string; -}; - type ChooseCardForParams = { assignee: string; letUsKnowLink: string; @@ -1163,7 +1158,6 @@ export type { DisconnectTitleParams, CharacterLengthLimitParams, OptionalParam, - AssignCardParams, ImportedTypesParams, WorkspaceYouMayJoin, WorkspaceMemberList, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index ffd861300933..3291ada8da71 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 511794ecde77..5eb3947b6468 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index e411f70f0df2..55871935d81b 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -28,7 +28,6 @@ import type { AlreadySignedInParams, ApprovalWorkflowErrorParams, ApprovedAmountParams, - AssignCardParams, AssignedCardParams, AssigneeParams, AuthenticationErrorParams, From 661a6faece7d686e6df6d7c0972f40e67ba472f1 Mon Sep 17 00:00:00 2001 From: daledah Date: Wed, 22 Oct 2025 15:16:14 +0700 Subject: [PATCH 4/5] fix: reuse existing logic for Concierge navigation --- src/languages/de.ts | 5 ++--- src/languages/en.ts | 5 ++--- src/languages/es.ts | 5 ++--- src/languages/fr.ts | 5 ++--- src/languages/it.ts | 5 ++--- src/languages/ja.ts | 5 ++--- src/languages/nl.ts | 5 ++--- src/languages/params.ts | 6 ------ src/languages/pl.ts | 5 ++--- src/languages/pt-BR.ts | 5 ++--- src/languages/zh-hans.ts | 3 +-- .../companyCards/assignCard/CardSelectionStep.tsx | 13 ------------- 12 files changed, 19 insertions(+), 48 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 246ef9baee08..3559d4541262 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4535,8 +4534,8 @@ ${amount} für ${merchant} - ${date}`, directFeed: 'Direkt-Feed', whoNeedsCardAssigned: 'Wer benötigt eine zugewiesene Karte?', chooseCard: 'Wählen Sie eine Karte', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Wählen Sie eine Karte für ${assignee}. Können Sie die gesuchte Karte nicht finden? Teilen Sie es uns mit.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Wählen Sie eine Karte für ${assignee}. Können Sie die gesuchte Karte nicht finden? Teilen Sie es uns mit.`, noActiveCards: 'Keine aktiven Karten in diesem Feed', somethingMightBeBroken: 'Oder es ist etwas kaputt. Wie auch immer, wenn Sie Fragen haben, wenden Sie sich an Concierge.', diff --git a/src/languages/en.ts b/src/languages/en.ts index 2ac20d527bb8..74c6f3bdec19 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -56,7 +56,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4505,8 +4504,8 @@ const translations = { directFeed: 'Direct feed', whoNeedsCardAssigned: 'Who needs a card assigned?', chooseCard: 'Choose a card', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Choose a card for ${assignee}. Can't find the card you're looking for? Let us know.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Choose a card for ${assignee}. Can't find the card you're looking for? Let us know.`, noActiveCards: 'No active cards on this feed', somethingMightBeBroken: 'Or something might be broken. Either way, if you have any questions, just contact Concierge.', diff --git a/src/languages/es.ts b/src/languages/es.ts index fb38e99b3f36..6935717ac0c0 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -54,7 +54,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4519,8 +4518,8 @@ ${amount} para ${merchant} - ${date}`, directFeed: 'Fuente directa', whoNeedsCardAssigned: '¿Quién necesita una tarjeta?', chooseCard: 'Elige una tarjeta', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Elige una tarjeta para ${assignee}. ¿No encuentras la tarjeta que buscas? Avísanos.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Elige una tarjeta para ${assignee}. ¿No encuentras la tarjeta que buscas? Avísanos.`, noActiveCards: 'No hay tarjetas activas en este feed', somethingMightBeBroken: 'O algo podría estar roto. De cualquier manera, si tienes alguna pregunta, contacta a Concierge.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 23a92277734f..d164a17ef80c 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4540,8 +4539,8 @@ ${amount} pour ${merchant} - ${date}`, directFeed: 'Flux direct', whoNeedsCardAssigned: "Qui a besoin d'une carte assignée ?", chooseCard: 'Choisissez une carte', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Choisissez une carte pour ${assignee}. Vous ne trouvez pas la carte que vous cherchez ? Faites-le nous savoir.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Choisissez une carte pour ${assignee}. Vous ne trouvez pas la carte que vous cherchez ? Faites-le nous savoir.`, noActiveCards: 'Aucune carte active dans ce flux', somethingMightBeBroken: "Ou quelque chose pourrait être cassé. Dans tous les cas, si vous avez des questions, n'hésitez pas à contacter le Concierge.", diff --git a/src/languages/it.ts b/src/languages/it.ts index 1e8ee9425fb0..919044e0b0cc 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4546,8 +4545,8 @@ ${amount} per ${merchant} - ${date}`, directFeed: 'Feed diretto', whoNeedsCardAssigned: 'Chi ha bisogno di una carta assegnata?', chooseCard: 'Scegli una carta', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Scegli una carta per ${assignee}. Non riesci a trovare la carta che stai cercando? Facci sapere.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Scegli una carta per ${assignee}. Non riesci a trovare la carta che stai cercando? Facci sapere.`, noActiveCards: 'Nessuna carta attiva in questo feed', somethingMightBeBroken: 'Oppure potrebbe esserci qualcosa di rotto. In ogni caso, se avete domande, contattate il Concierge.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 28f03303121f..19f69b6bb6a5 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4508,8 +4507,8 @@ ${date} - ${merchant}に${amount}`, directFeed: 'ダイレクトフィード', whoNeedsCardAssigned: '誰にカードを割り当てる必要がありますか?', chooseCard: 'カードを選んでください', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `${assignee}のカードを選択してください。お探しのカードが見つかりませんか?お知らせください。`, + chooseCardFor: ({assignee}: AssigneeParams) => + `${assignee}のカードを選択してください。お探しのカードが見つかりませんか?お知らせください。`, noActiveCards: 'このフィードにはアクティブなカードがありません', somethingMightBeBroken: 'あるいは、何かが壊れているかもしれません。いずれにせよ、ご不明な点があれば、Concierge までお問い合わせください。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 32b5eb8bd941..c3c27b678cbf 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4544,8 +4543,8 @@ ${amount} voor ${merchant} - ${date}`, directFeed: 'Direct feed', whoNeedsCardAssigned: 'Wie heeft een kaart toegewezen nodig?', chooseCard: 'Kies een kaart', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Kies een kaart voor ${assignee}. Kun je de kaart die je zoekt niet vinden? Laat het ons weten.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Kies een kaart voor ${assignee}. Kun je de kaart die je zoekt niet vinden? Laat het ons weten.`, noActiveCards: 'Geen actieve kaarten in deze feed', somethingMightBeBroken: 'Of er is misschien iets kapot. Hoe dan ook, als u vragen heeft, neem dan contact op met Concierge.', diff --git a/src/languages/params.ts b/src/languages/params.ts index 4a5f8b4d0177..2a5c376b361a 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -601,11 +601,6 @@ type SubmittedToVacationDelegateParams = {submittedToName: string; vacationDeleg type RoleNamesParams = {role: string}; -type ChooseCardForParams = { - assignee: string; - letUsKnowLink: string; -}; - type SpreadSheetColumnParams = { name: string; }; @@ -1256,6 +1251,5 @@ export type { ErrorODIntegrationParams, DisconnectYourBankAccountParams, MergeAccountIntoParams, - ChooseCardForParams, FocusModeUpdateParams, }; diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 457a134b7fd1..ae044831b4f8 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4531,8 +4530,8 @@ ${amount} dla ${merchant} - ${date}`, directFeed: 'Bezpośredni kanał', whoNeedsCardAssigned: 'Kto potrzebuje przypisanej karty?', chooseCard: 'Wybierz kartę', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Wybierz kartę dla ${assignee}. Nie możesz znaleźć karty, której szukasz? Daj nam znać.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Wybierz kartę dla ${assignee}. Nie możesz znaleźć karty, której szukasz? Daj nam znać.`, noActiveCards: 'Brak aktywnych kart w tym kanale', somethingMightBeBroken: 'Albo coś może być zepsute. W każdym razie, jeśli masz jakieś pytania, skontaktuj się z Concierge.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 0f5d9e4e03ab..f2d6d4d72aa7 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4532,8 +4531,8 @@ ${amount} para ${merchant} - ${date}`, directFeed: 'Feed direto', whoNeedsCardAssigned: 'Quem precisa de um cartão atribuído?', chooseCard: 'Escolha um cartão', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => - `Escolha um cartão para ${assignee}. Não consegue encontrar o cartão que procura? Avise-nos.`, + chooseCardFor: ({assignee}: AssigneeParams) => + `Escolha um cartão para ${assignee}. Não consegue encontrar o cartão que procura? Avise-nos.`, noActiveCards: 'Nenhum cartão ativo neste feed', somethingMightBeBroken: 'Ou algo pode estar quebrado. De qualquer forma, se você tiver alguma dúvida, entre em contato com a Concierge.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 15dc06576ab1..81ef909881b0 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -67,7 +67,6 @@ import type { CharacterLengthLimitParams, CharacterLimitParams, ChatWithAccountManagerParams, - ChooseCardForParams, CompanyCardBankName, CompanyCardFeedNameParams, CompanyNameParams, @@ -4455,7 +4454,7 @@ ${merchant}的${amount} - ${date}`, directFeed: '直接馈送', whoNeedsCardAssigned: '谁需要分配卡片?', chooseCard: '选择一张卡片', - chooseCardFor: ({assignee, letUsKnowLink}: ChooseCardForParams) => `为${assignee}选择一张卡。找不到您要找的卡吗?告诉我们。`, + chooseCardFor: ({assignee}: AssigneeParams) => `为${assignee}选择一张卡。找不到您要找的卡吗?告诉我们。`, noActiveCards: '此信息流中没有活跃的卡片', somethingMightBeBroken: '或者有什么东西坏了。无论如何,如果您有任何问题,请联系 Concierge', diff --git a/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx b/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx index 6b4f8194e5ff..bdba42f1da2f 100644 --- a/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx +++ b/src/pages/workspace/companyCards/assignCard/CardSelectionStep.tsx @@ -13,7 +13,6 @@ import Text from '@components/Text'; import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddingStyle'; import useCardFeeds from '@hooks/useCardFeeds'; import useCardsList from '@hooks/useCardsList'; -import useEnvironment from '@hooks/useEnvironment'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import useThemeIllustrations from '@hooks/useThemeIllustrations'; @@ -26,7 +25,6 @@ import tokenizedSearch from '@libs/tokenizedSearch'; import variables from '@styles/variables'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import ROUTES from '@src/ROUTES'; import type {CompanyCardFeed} from '@src/types/onyx'; type CardSelectionStepProps = { @@ -120,16 +118,6 @@ function CardSelectionStep({feed, policyID}: CardSelectionStepProps) { const safeAreaPaddingBottomStyle = useBottomSafeSafeAreaPaddingStyle(); - const {environmentURL} = useEnvironment(); - const [conciergeReportID] = useOnyx(ONYXKEYS.CONCIERGE_REPORT_ID, {canBeMissing: true}); - - const conciergeLink = useMemo(() => { - if (!conciergeReportID) { - return ''; - } - return `${environmentURL}/${ROUTES.REPORT_WITH_ID.getRoute(conciergeReportID, undefined, undefined, Navigation.getActiveRoute())}`; - }, [conciergeReportID, environmentURL]); - return ( From 9d97ba4fa9952725774b7a1e0baef81bc1f98159 Mon Sep 17 00:00:00 2001 From: daledah Date: Wed, 22 Oct 2025 15:19:46 +0700 Subject: [PATCH 5/5] fix: add functionality to modal --- src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx index ce425c7a97f6..2ccca7c9828f 100644 --- a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx +++ b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx @@ -10,6 +10,7 @@ import useOnyx from '@hooks/useOnyx'; import usePermissions from '@hooks/usePermissions'; import useThemeStyles from '@hooks/useThemeStyles'; import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID'; +import {navigateToConciergeChat} from '@libs/actions/Report'; import BankConnection from '@pages/workspace/companyCards/BankConnection'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -133,6 +134,7 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) { onCancel={() => setIsModalVisible(false)} onConfirm={() => { setIsModalVisible(false); + navigateToConciergeChat(); }} />