From fa98968b05729488df46339154a1243725b2375d Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Mon, 14 Oct 2024 13:39:35 +0300 Subject: [PATCH 1/5] Company Cards - Bank UI --- assets/images/companyCards/pending-bank.svg | 263 ++++++++++++++++++ src/CONST.ts | 10 + src/ROUTES.ts | 1 + src/components/Icon/Illustrations.ts | 2 + src/languages/en.ts | 4 + src/languages/es.ts | 4 + src/languages/params.ts | 5 + .../getCompanyCardBankConnection/index.tsx | 26 ++ .../companyCards/addNew/AddNewCardPage.tsx | 3 + .../addNew/BankConnection/index.native.tsx | 71 +++++ .../addNew/BankConnection/index.tsx | 83 ++++++ .../openBankConnection/index.tsx | 5 + .../openBankConnection/index.website.tsx | 11 + src/styles/index.ts | 5 + 14 files changed, 493 insertions(+) create mode 100644 assets/images/companyCards/pending-bank.svg create mode 100644 src/libs/actions/getCompanyCardBankConnection/index.tsx create mode 100644 src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx create mode 100644 src/pages/workspace/companyCards/addNew/BankConnection/index.tsx create mode 100644 src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.tsx create mode 100644 src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx diff --git a/assets/images/companyCards/pending-bank.svg b/assets/images/companyCards/pending-bank.svg new file mode 100644 index 000000000000..dc265466d53f --- /dev/null +++ b/assets/images/companyCards/pending-bank.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/CONST.ts b/src/CONST.ts index 996354e3d60c..40b3da402988 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -2555,6 +2555,7 @@ const CONST = { CARD_INSTRUCTIONS: 'CardInstructions', CARD_NAME: 'CardName', CARD_DETAILS: 'CardDetails', + BANK_CONNECTION: 'BankConnection', }, CARD_TYPE: { AMEX: 'amex', @@ -2572,6 +2573,15 @@ const CONST = { WELLS_FARGO: 'Wells Fargo', OTHER: 'Other', }, + BANK_CONNECTIONS: { + WELLS_FARGO: 'wellsfargo', + CHASE: 'chase', + BREX: 'brex', + CAPITAL_ONE: 'capitalone', + CITI_BANK: 'citibank', + AMEX: 'americanexpressfdx', + TESCO_BANK: 'tescobank', + }, DELETE_TRANSACTIONS: { RESTRICT: 'corporate', ALLOW: 'personal', diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 419bc2917c1e..74bf8a8d6b8b 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -21,6 +21,7 @@ const PUBLIC_SCREENS_ROUTES = { ROOT: '', TRANSITION_BETWEEN_APPS: 'transition', CONNECTION_COMPLETE: 'connection-complete', + BANK_CONNECTION_COMPLETE: 'bank-connection-complete', VALIDATE_LOGIN: 'v/:accountID/:validateCode', UNLINK_LOGIN: 'u/:accountID/:validateCode', APPLE_SIGN_IN: 'sign-in-with-apple', diff --git a/src/components/Icon/Illustrations.ts b/src/components/Icon/Illustrations.ts index bae8f6af1ab2..18ae1792686f 100644 --- a/src/components/Icon/Illustrations.ts +++ b/src/components/Icon/Illustrations.ts @@ -12,6 +12,7 @@ import WellsFargoCompanyCardDetail from '@assets/images/companyCards/card-wellsf import OtherCompanyCardDetail from '@assets/images/companyCards/card=-generic.svg'; import CompanyCardsEmptyState from '@assets/images/companyCards/emptystate__card-pos.svg'; import MasterCardCompanyCards from '@assets/images/companyCards/mastercard.svg'; +import PendingBank from '@assets/images/companyCards/pending-bank.svg'; import CompanyCardsPendingState from '@assets/images/companyCards/pendingstate_laptop-with-hourglass-and-cards.svg'; import VisaCompanyCards from '@assets/images/companyCards/visa.svg'; import EmptyCardState from '@assets/images/emptystate__expensifycard.svg'; @@ -207,6 +208,7 @@ export { Approval, WalletAlt, Workflows, + PendingBank, ThreeLeggedLaptopWoman, House, Alert, diff --git a/src/languages/en.ts b/src/languages/en.ts index 7f3a5a365142..b2e183d77360 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -39,6 +39,7 @@ import type { ChangeTypeParams, CharacterLengthLimitParams, CharacterLimitParams, + CompanyCardBankName, CompanyCardFeedNameParams, ConfirmThatParams, ConnectionNameParams, @@ -3281,6 +3282,9 @@ const translations = { emptyAddedFeedDescription: 'Get started by assigning your first card to a member.', pendingFeedTitle: `We're reviewing your request...`, pendingFeedDescription: `We're currently reviewing your feed details. Once that's done we'll reach out to you via`, + pendingBankTitle: 'Check your browser window', + pendingBankDescription: ({bankName}: CompanyCardBankName) => `Please connect to ${bankName} via your browser window that just opened. If one didn’t open, `, + pendingBankLink: 'please click here.', giveItNameInstruction: 'Give the card a name that sets it apart from the others.', updating: 'Updating...', noAccountsFound: 'No accounts found', diff --git a/src/languages/es.ts b/src/languages/es.ts index d4615b26a255..e96a259a23d2 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -37,6 +37,7 @@ import type { ChangeTypeParams, CharacterLengthLimitParams, CharacterLimitParams, + CompanyCardBankName, CompanyCardFeedNameParams, ConfirmThatParams, ConnectionNameParams, @@ -3324,6 +3325,9 @@ const translations = { emptyAddedFeedDescription: 'Comienza asignando tu primera tarjeta a un miembro.', pendingFeedTitle: `Estamos revisando tu solicitud...`, pendingFeedDescription: `Actualmente estamos revisando los detalles de tu feed. Una vez hecho esto, nos pondremos en contacto contigo a través de`, + pendingBankTitle: 'Comprueba la ventana de tu navegador', + pendingBankDescription: ({bankName}: CompanyCardBankName) => `Conéctese a ${bankName} a través de la ventana del navegador que acaba de abrir. Si no se abrió, `, + pendingBankLink: 'por favor haga clic aquí.', giveItNameInstruction: 'Nombra la tarjeta para distingirla de las demás.', updating: 'Actualizando...', noAccountsFound: 'No se han encontrado cuentas', diff --git a/src/languages/params.ts b/src/languages/params.ts index f787e630ab0d..5e97ae69cb00 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -537,6 +537,10 @@ type ImportedTypesParams = { importedTypes: string[]; }; +type CompanyCardBankName = { + bankName: string; +}; + export type { AuthenticationErrorParams, ImportMembersSuccessfullDescriptionParams, @@ -729,6 +733,7 @@ export type { DateParams, FiltersAmountBetweenParams, StatementPageTitleParams, + CompanyCardBankName, DisconnectPromptParams, DisconnectTitleParams, CharacterLengthLimitParams, diff --git a/src/libs/actions/getCompanyCardBankConnection/index.tsx b/src/libs/actions/getCompanyCardBankConnection/index.tsx new file mode 100644 index 000000000000..6f9de4ac4cb7 --- /dev/null +++ b/src/libs/actions/getCompanyCardBankConnection/index.tsx @@ -0,0 +1,26 @@ +import {getApiRoot} from '@libs/ApiUtils'; +import * as NetworkStore from '@libs/Network/NetworkStore'; +import CONST from '@src/CONST'; + +type CompanyCardBankConnection = { + authToken: string; + domainName: string; + scrapeMinDate: string; + isCorporate: string; +}; + +export default function getCompanyCardBankConnection(bankName?: string, domainName?: string, scrapeMinDate?: string) { + const bankConnection = Object.keys(CONST.COMPANY_CARDS.BANKS).find((key) => CONST.COMPANY_CARDS.BANKS[key as keyof typeof CONST.COMPANY_CARDS.BANKS] === bankName); + + if (!bankName || !bankConnection) { + return null; + } + const authToken = NetworkStore.getAuthToken(); + const params: CompanyCardBankConnection = {authToken: authToken ?? '', domainName: domainName ?? '', isCorporate: 'true', scrapeMinDate: scrapeMinDate ?? ''}; + const commandURL = getApiRoot({ + shouldSkipWebProxy: true, + command: '', + }); + const bank = CONST.COMPANY_CARDS.BANK_CONNECTIONS[bankConnection as keyof typeof CONST.COMPANY_CARDS.BANK_CONNECTIONS]; + return `${commandURL}partners/banks/${bank}/oauth_callback.php?${new URLSearchParams(params).toString()}`; +} diff --git a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx index 9b263299739b..e8eab7c291fe 100644 --- a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx +++ b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx @@ -4,6 +4,7 @@ import usePermissions from '@hooks/usePermissions'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; +import BankConnection from './BankConnection'; import CardInstructionsStep from './CardInstructionsStep'; import CardNameStep from './CardNameStep'; import CardTypeStep from './CardTypeStep'; @@ -22,6 +23,8 @@ function AddNewCardPage() { return ; case CONST.COMPANY_CARDS.STEP.CARD_TYPE: return ; + case CONST.COMPANY_CARDS.STEP.BANK_CONNECTION: + return ; case CONST.COMPANY_CARDS.STEP.CARD_INSTRUCTIONS: return ; case CONST.COMPANY_CARDS.STEP.CARD_NAME: diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx new file mode 100644 index 000000000000..fe54166917f3 --- /dev/null +++ b/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx @@ -0,0 +1,71 @@ +import React, {useEffect, useRef, useState} from 'react'; +import {useOnyx} from 'react-native-onyx'; +import {WebView} from 'react-native-webview'; +import type {ValueOf} from 'type-fest'; +import FullPageOfflineBlockingView from '@components/BlockingViews/FullPageOfflineBlockingView'; +import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; +import HeaderWithBackButton from '@components/HeaderWithBackButton'; +import Modal from '@components/Modal'; +import useLocalize from '@hooks/useLocalize'; +import getUAForWebView from '@libs/getUAForWebView'; +import * as CompanyCards from '@userActions/CompanyCards'; +import getCompanyCardBankConnection from '@userActions/getCompanyCardBankConnection'; +import CONST from '@src/CONST'; +import ONYXKEYS from '@src/ONYXKEYS'; + +function BankConnection() { + const {translate} = useLocalize(); + const webViewRef = useRef(null); + const [isWebViewOpen, setWebViewOpen] = useState(false); + const [session] = useOnyx(ONYXKEYS.SESSION); + const authToken = session?.authToken ?? null; + const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD); + const bankName: ValueOf | undefined = addNewCard?.data?.selectedBank; + const url = getCompanyCardBankConnection(bankName); + + const renderLoading = () => ; + + const handleBackButtonPress = () => { + setWebViewOpen(false); + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.CARD_TYPE}); + }; + + useEffect(() => { + setWebViewOpen(true); + }, []); + + return ( + + + + {url && ( + + )} + + + ); +} + +BankConnection.displayName = 'BankConnection'; + +export default BankConnection; diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx new file mode 100644 index 000000000000..29a063211471 --- /dev/null +++ b/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx @@ -0,0 +1,83 @@ +import React, {useCallback, useEffect} from 'react'; +import {useOnyx} from 'react-native-onyx'; +import type {ValueOf} from 'type-fest'; +import BlockingView from '@components/BlockingViews/BlockingView'; +import HeaderWithBackButton from '@components/HeaderWithBackButton'; +import * as Illustrations from '@components/Icon/Illustrations'; +import ScreenWrapper from '@components/ScreenWrapper'; +import Text from '@components/Text'; +import TextLink from '@components/TextLink'; +import useLocalize from '@hooks/useLocalize'; +import useThemeStyles from '@hooks/useThemeStyles'; +import getCurrentUrl from '@navigation/currentUrl'; +import * as CompanyCards from '@userActions/CompanyCards'; +import getCompanyCardBankConnection from '@userActions/getCompanyCardBankConnection'; +import CONST from '@src/CONST'; +import ONYXKEYS from '@src/ONYXKEYS'; +import ROUTES from '@src/ROUTES'; +import openBankConnection from './openBankConnection'; + +let customWindow: Window | null = null; + +function BankConnection() { + const styles = useThemeStyles(); + const {translate} = useLocalize(); + const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD); + const bankName: ValueOf | undefined = addNewCard?.data?.selectedBank; + const currentUrl = getCurrentUrl(); + const isBankConnectionCompleteRoute = currentUrl.includes(ROUTES.BANK_CONNECTION_COMPLETE); + const url = getCompanyCardBankConnection(bankName); + + const onOpenBankConnectionFlow = useCallback(() => { + if (!url) { + return; + } + customWindow = openBankConnection(url); + }, [url]); + + const handleBackButtonPress = () => { + customWindow?.close(); + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.CARD_TYPE}); + }; + + const CustomSubtitle = ( + + {bankName && translate(`workspace.moreFeatures.companyCards.pendingBankDescription`, {bankName})} + {translate('workspace.moreFeatures.companyCards.pendingBankLink')} + + ); + + useEffect(() => { + if (!url) { + return; + } + if (isBankConnectionCompleteRoute) { + customWindow?.close(); + return; + } + customWindow = openBankConnection(url); + }, [isBankConnectionCompleteRoute, url]); + + return ( + + + + + ); +} + +BankConnection.displayName = 'BankConnection'; + +export default BankConnection; diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.tsx new file mode 100644 index 000000000000..91a81bdbd6c6 --- /dev/null +++ b/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.tsx @@ -0,0 +1,5 @@ +const handleOpenBankConnectionFlow = (url: string) => { + return window.open(url, '_blank'); +}; + +export default handleOpenBankConnectionFlow; diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx new file mode 100644 index 000000000000..7dc13a09efee --- /dev/null +++ b/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx @@ -0,0 +1,11 @@ +const handleOpenBankConnectionFlow = (url: string) => { + const screenWidth = window.screen.width; + const screenHeight = window.screen.height; + const left = (screenWidth - 700) / 2; + const top = (screenHeight - 600) / 2; + const popupFeatures = `width=${700},height=${600},left=${left},top=${top},scrollbars=yes,resizable=yes`; + + return window.open(url, 'popupWindow', popupFeatures); +}; + +export default handleOpenBankConnectionFlow; diff --git a/src/styles/index.ts b/src/styles/index.ts index ef0d33a5d2a5..ee7b64b08b79 100644 --- a/src/styles/index.ts +++ b/src/styles/index.ts @@ -5157,6 +5157,11 @@ const styles = (theme: ThemeColors) => height: 188, }, + pendingBankCardIllustration: { + width: 217, + height: 150, + }, + cardIcon: { overflow: 'hidden', borderRadius: variables.cardBorderRadius, From b5e555b6d6872922f9025ff21f3b4531ae671233 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Fri, 18 Oct 2024 13:05:00 +0300 Subject: [PATCH 2/5] latest updates for the whole flow --- .../actions/getCompanyCardBankConnection/index.tsx | 7 +++++++ .../addNew/BankConnection/index.native.tsx | 10 +++++++++- .../companyCards/addNew/BankConnection/index.tsx | 10 +++++++++- .../workspace/companyCards/addNew/SelectFeedType.tsx | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/getCompanyCardBankConnection/index.tsx b/src/libs/actions/getCompanyCardBankConnection/index.tsx index 6f9de4ac4cb7..403ad810dc62 100644 --- a/src/libs/actions/getCompanyCardBankConnection/index.tsx +++ b/src/libs/actions/getCompanyCardBankConnection/index.tsx @@ -9,9 +9,16 @@ type CompanyCardBankConnection = { isCorporate: string; }; +const bankUrl = 'https://secure.chase.com/web/auth/#/logon/logon/chaseOnline?redirect_url='; + export default function getCompanyCardBankConnection(bankName?: string, domainName?: string, scrapeMinDate?: string) { const bankConnection = Object.keys(CONST.COMPANY_CARDS.BANKS).find((key) => CONST.COMPANY_CARDS.BANKS[key as keyof typeof CONST.COMPANY_CARDS.BANKS] === bankName); + // TODO remove this when BE will support bank UI callbacks + if (!domainName) { + return bankUrl; + } + if (!bankName || !bankConnection) { return null; } diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx index fe54166917f3..8de2b9baba9a 100644 --- a/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx +++ b/src/pages/workspace/companyCards/addNew/BankConnection/index.native.tsx @@ -27,7 +27,15 @@ function BankConnection() { const handleBackButtonPress = () => { setWebViewOpen(false); - CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.CARD_TYPE}); + if (bankName === CONST.COMPANY_CARDS.BANKS.BREX) { + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK}); + return; + } + if (bankName === CONST.COMPANY_CARDS.BANKS.AMEX) { + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED}); + return; + } + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE}); }; useEffect(() => { diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx index 29a063211471..2b4d86f2e43b 100644 --- a/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx +++ b/src/pages/workspace/companyCards/addNew/BankConnection/index.tsx @@ -37,7 +37,15 @@ function BankConnection() { const handleBackButtonPress = () => { customWindow?.close(); - CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.CARD_TYPE}); + if (bankName === CONST.COMPANY_CARDS.BANKS.BREX) { + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_BANK}); + return; + } + if (bankName === CONST.COMPANY_CARDS.BANKS.AMEX) { + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED}); + return; + } + CompanyCards.setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_FEED_TYPE}); }; const CustomSubtitle = ( diff --git a/src/pages/workspace/companyCards/addNew/SelectFeedType.tsx b/src/pages/workspace/companyCards/addNew/SelectFeedType.tsx index fd4fe021185c..959e7c10f3aa 100644 --- a/src/pages/workspace/companyCards/addNew/SelectFeedType.tsx +++ b/src/pages/workspace/companyCards/addNew/SelectFeedType.tsx @@ -28,7 +28,7 @@ function SelectFeedType() { return; } CompanyCards.setAddNewCompanyCardStepAndData({ - step: typeSelected === CONST.COMPANY_CARDS.FEED_TYPE.DIRECT ? CONST.COMPANY_CARDS.STEP.SELECT_BANK : CONST.COMPANY_CARDS.STEP.CARD_TYPE, + step: typeSelected === CONST.COMPANY_CARDS.FEED_TYPE.DIRECT ? CONST.COMPANY_CARDS.STEP.BANK_CONNECTION : CONST.COMPANY_CARDS.STEP.CARD_TYPE, data: {selectedFeedType: typeSelected}, }); }; From d725a59f58b895778529111aeef49d12fdd5b8ef Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Fri, 18 Oct 2024 13:26:25 +0300 Subject: [PATCH 3/5] Add constants --- .../BankConnection/openBankConnection/index.website.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx b/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx index 7dc13a09efee..220404cee0e7 100644 --- a/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx +++ b/src/pages/workspace/companyCards/addNew/BankConnection/openBankConnection/index.website.tsx @@ -1,9 +1,12 @@ +const WINDOW_WIDTH = 700; +const WINDOW_HEIGHT = 600; + const handleOpenBankConnectionFlow = (url: string) => { const screenWidth = window.screen.width; const screenHeight = window.screen.height; - const left = (screenWidth - 700) / 2; - const top = (screenHeight - 600) / 2; - const popupFeatures = `width=${700},height=${600},left=${left},top=${top},scrollbars=yes,resizable=yes`; + const left = (screenWidth - WINDOW_WIDTH) / 2; + const top = (screenHeight - WINDOW_HEIGHT) / 2; + const popupFeatures = `width=${WINDOW_WIDTH},height=${WINDOW_HEIGHT},left=${left},top=${top},scrollbars=yes,resizable=yes`; return window.open(url, 'popupWindow', popupFeatures); }; From 03c8aea4b88e67696fa7a89388514cb7fb1ff7a1 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Fri, 18 Oct 2024 13:45:52 +0300 Subject: [PATCH 4/5] add more todo --- src/libs/actions/getCompanyCardBankConnection/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/actions/getCompanyCardBankConnection/index.tsx b/src/libs/actions/getCompanyCardBankConnection/index.tsx index 403ad810dc62..935c5d297cb0 100644 --- a/src/libs/actions/getCompanyCardBankConnection/index.tsx +++ b/src/libs/actions/getCompanyCardBankConnection/index.tsx @@ -9,6 +9,7 @@ type CompanyCardBankConnection = { isCorporate: string; }; +// TODO remove this when BE will support bank UI callbacks const bankUrl = 'https://secure.chase.com/web/auth/#/logon/logon/chaseOnline?redirect_url='; export default function getCompanyCardBankConnection(bankName?: string, domainName?: string, scrapeMinDate?: string) { From be97e7dd840c05877eb0d1421bdfeba6af8bf5f3 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Mon, 21 Oct 2024 13:36:48 +0300 Subject: [PATCH 5/5] clean up --- src/CONST.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/CONST.ts b/src/CONST.ts index 1e7e5673a5f1..fbf023bf7a9d 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -2610,7 +2610,6 @@ const CONST = { CAPITAL_ONE: 'capitalone', CITI_BANK: 'citibank', AMEX: 'americanexpressfdx', - TESCO_BANK: 'tescobank', }, AMEX_CUSTOM_FEED: { CORPORATE: 'American Express Corporate Cards',