diff --git a/src/CONST.ts b/src/CONST.ts index 1f27234cf32b..d2342f2723ee 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -2341,6 +2341,12 @@ const CONST = { PAYPERUSE: 'monthly2018', }, }, + COMPANY_CARDS: { + DELETE_TRANSACTIONS: { + RESTRICT: 'corporate', + ALLOW: 'personal', + }, + }, REGEX: { SPECIAL_CHARS_WITHOUT_NEWLINE: /((?!\n)[()-\s\t])/g, DIGITS_AND_PLUS: /^\+?[0-9]*$/, diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index e3e47be96e83..7aeffc44af9a 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -497,6 +497,8 @@ const ONYXKEYS = { WORKSPACE_RATE_AND_UNIT_FORM_DRAFT: 'workspaceRateAndUnitFormDraft', WORKSPACE_TAX_CUSTOM_NAME: 'workspaceTaxCustomName', WORKSPACE_TAX_CUSTOM_NAME_DRAFT: 'workspaceTaxCustomNameDraft', + WORKSPACE_COMPANY_CARD_FEED_NAME: 'workspaceCompanyCardFeedName', + WORKSPACE_COMPANY_CARD_FEED_NAME_DRAFT: 'workspaceCompanyCardFeedNameDraft', WORKSPACE_REPORT_FIELDS_FORM: 'workspaceReportFieldForm', WORKSPACE_REPORT_FIELDS_FORM_DRAFT: 'workspaceReportFieldFormDraft', POLICY_CREATE_DISTANCE_RATE_FORM: 'policyCreateDistanceRateForm', @@ -647,6 +649,7 @@ type OnyxFormValuesMapping = { [ONYXKEYS.FORMS.WORKSPACE_TAG_FORM]: FormTypes.WorkspaceTagForm; [ONYXKEYS.FORMS.WORKSPACE_RATE_AND_UNIT_FORM]: FormTypes.WorkspaceRateAndUnitForm; [ONYXKEYS.FORMS.WORKSPACE_TAX_CUSTOM_NAME]: FormTypes.WorkspaceTaxCustomName; + [ONYXKEYS.FORMS.WORKSPACE_COMPANY_CARD_FEED_NAME]: FormTypes.WorkspaceCompanyCardFeedName; [ONYXKEYS.FORMS.WORKSPACE_REPORT_FIELDS_FORM]: FormTypes.WorkspaceReportFieldForm; [ONYXKEYS.FORMS.CLOSE_ACCOUNT_FORM]: FormTypes.CloseAccountForm; [ONYXKEYS.FORMS.PROFILE_SETTINGS_FORM]: FormTypes.ProfileSettingsForm; diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 05a76441bf01..eb6955c1f130 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -936,6 +936,14 @@ const ROUTES = { route: 'settings/workspaces/:policyID/expensify-card/settings/frequency', getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card/settings/frequency` as const, }, + WORKSPACE_COMPANY_CARDS_SETTINGS: { + route: 'settings/workspaces/:policyID/company-cards/settings', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/company-cards/settings` as const, + }, + WORKSPACE_COMPANY_CARDS_SETTINGS_FEED_NAME: { + route: 'settings/workspaces/:policyID/company-cards/settings/feed-name', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/company-cards/settings/feed-name` as const, + }, WORKSPACE_RULES: { route: 'settings/workspaces/:policyID/rules', getRoute: (policyID: string) => `settings/workspaces/${policyID}/rules` as const, diff --git a/src/SCREENS.ts b/src/SCREENS.ts index cf4a3a6e8ed6..7fd40beb4d03 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -367,6 +367,8 @@ const SCREENS = { RATE_AND_UNIT_UNIT: 'Workspace_RateAndUnit_Unit', COMPANY_CARDS: 'Workspace_CompanyCards', COMPANY_CARDS_SELECT_FEED: 'Workspace_CompanyCards_Select_Feed', + COMPANY_CARDS_SETTINGS: 'Workspace_CompanyCards_Settings', + COMPANY_CARDS_SETTINGS_FEED_NAME: 'Workspace_CompanyCards_Settings_Feed_Name', EXPENSIFY_CARD: 'Workspace_ExpensifyCard', EXPENSIFY_CARD_DETAILS: 'Workspace_ExpensifyCard_Details', EXPENSIFY_CARD_LIMIT: 'Workspace_ExpensifyCard_Limit', diff --git a/src/languages/en.ts b/src/languages/en.ts index 1fe548d3b743..43ff25b28da4 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -19,6 +19,7 @@ import type { ChangePolicyParams, ChangeTypeParams, CharacterLimitParams, + CompanyCardFeedNameParams, ConfirmHoldExpenseParams, ConfirmThatParams, DateShouldBeAfterParams, @@ -2901,6 +2902,23 @@ export default { disableCardTitle: 'Disable Company Cards', disableCardPrompt: 'You can’t disable company cards because this feature is in use. Reach out to the Concierge for next steps.', disableCardButton: 'Chat with Concierge', + assignCard: 'Assign card', + cardFeedName: 'Card feed name', + cardFeedNameDescription: 'Give the card feed a unique name so you can tell it apart from the others.', + cardFeedTransaction: 'Delete transactions', + cardFeedTransactionDescription: 'Choose whether cardholders can delete card transactions. New transactions will follow these rules.', + cardFeedRestrictDeletingTransaction: 'Restrict deleting transactions', + cardFeedAllowDeletingTransaction: 'Allow deleting transactions', + removeCardFeed: 'Remove card feed', + removeCardFeedTitle: ({feedName}: CompanyCardFeedNameParams) => `Remove ${feedName} feed`, + removeCardFeedDescription: 'Are you sure you want to remove this card feed? This will unassign all cards.', + error: { + feedNameRequired: 'Card feed name is required.', + }, + corporate: 'Restrict deleting transactions', + personal: 'Allow deleting transactions', + setFeedNameDescription: 'Give the card feed a unique name so you can tell it apart from the others.', + setTransactionLiabilityDescription: 'When enabled, cardholders can delete card transactions. New transactions will follow this rule.', emptyAddedFeedTitle: 'Assign company cards', emptyAddedFeedDescription: 'Get started by assigning your first card to a member.', }, diff --git a/src/languages/es.ts b/src/languages/es.ts index 087a9d0c3ee9..2df2a69b5eb7 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -17,6 +17,7 @@ import type { ChangePolicyParams, ChangeTypeParams, CharacterLimitParams, + CompanyCardFeedNameParams, ConfirmHoldExpenseParams, ConfirmThatParams, DateShouldBeAfterParams, @@ -2945,6 +2946,24 @@ export default { disableCardTitle: 'Deshabilitar tarjetas de empresa', disableCardPrompt: 'No puedes deshabilitar las tarjetas de empresa porque esta función está en uso. Por favor, contacta a Concierge para los próximos pasos.', disableCardButton: 'Chatear con Concierge', + assignCard: 'Asignar tarjeta', + cardFeedName: 'Nombre del feed de tarjeta', + cardFeedNameDescription: 'Dale al feed de tarjeta un nombre único para que puedas distinguirlo de los demás.', + cardFeedTransaction: 'Eliminar transacciones', + cardFeedTransactionDescription: 'Elige si los titulares de tarjetas pueden eliminar transacciones de tarjetas. Las nuevas transacciones seguirán estas reglas.', + cardFeedRestrictDeletingTransaction: 'Restringir eliminación de transacciones', + cardFeedAllowDeletingTransaction: 'Permitir eliminación de transacciones', + removeCardFeed: 'Quitar la alimentación de tarjetas', + removeCardFeedTitle: ({feedName}: CompanyCardFeedNameParams) => `Eliminar el feed de ${feedName}`, + removeCardFeedDescription: '¿Estás seguro de que deseas eliminar esta fuente de tarjetas? Esto anulará la asignación de todas las tarjetas.', + error: { + feedNameRequired: 'Se requiere el nombre de la fuente de la tarjeta.', + }, + corporate: 'Restringir eliminación de transacciones', + personal: 'Permitir eliminación de transacciones', + setFeedNameDescription: 'Dale al feed de tarjeta un nombre único para que puedas distinguirlo de los demás.', + setTransactionLiabilityDescription: + 'Cuando está habilitada, los titulares de tarjetas pueden eliminar transacciones con tarjeta. Las transacciones nuevas seguirán esta regla.', emptyAddedFeedTitle: 'Asignar tarjetas de empresa', emptyAddedFeedDescription: 'Comienza asignando tu primera tarjeta a un miembro.', }, diff --git a/src/languages/types.ts b/src/languages/types.ts index f3d6f5b677e6..c4c6b25b06d0 100644 --- a/src/languages/types.ts +++ b/src/languages/types.ts @@ -119,6 +119,8 @@ type PayerOwesAmountParams = {payer: string; amount: number | string; comment?: type PayerOwesParams = {payer: string}; +type CompanyCardFeedNameParams = {feedName: string}; + type PayerPaidAmountParams = {payer?: string; amount: number | string}; type ApprovedAmountParams = {amount: number | string}; @@ -371,6 +373,7 @@ export type { CharacterLimitParams, ConfirmHoldExpenseParams, ConfirmThatParams, + CompanyCardFeedNameParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, DeleteActionParams, diff --git a/src/libs/API/parameters/DeleteCompanyCardFeed.ts b/src/libs/API/parameters/DeleteCompanyCardFeed.ts new file mode 100644 index 000000000000..aaf5a1c4ffc3 --- /dev/null +++ b/src/libs/API/parameters/DeleteCompanyCardFeed.ts @@ -0,0 +1,7 @@ +type DeleteCompanyCardFeed = { + authToken?: string | null; + policyID: string; + bankName: string; +}; + +export default DeleteCompanyCardFeed; diff --git a/src/libs/API/parameters/SetCompanyCardFeedName.ts b/src/libs/API/parameters/SetCompanyCardFeedName.ts new file mode 100644 index 000000000000..3db87f52bff2 --- /dev/null +++ b/src/libs/API/parameters/SetCompanyCardFeedName.ts @@ -0,0 +1,8 @@ +type SetCompanyCardFeedName = { + authToken?: string | null; + policyID: string; + bankName: string; + userDefinedName: string; +}; + +export default SetCompanyCardFeedName; diff --git a/src/libs/API/parameters/SetCompanyCardTransactionLiability.ts b/src/libs/API/parameters/SetCompanyCardTransactionLiability.ts new file mode 100644 index 000000000000..277a9d9bbdbf --- /dev/null +++ b/src/libs/API/parameters/SetCompanyCardTransactionLiability.ts @@ -0,0 +1,7 @@ +type SetCompanyCardTransactionLiability = { + authToken?: string | null; + bankName: string; + liabilityType: string; +}; + +export default SetCompanyCardTransactionLiability; diff --git a/src/libs/API/parameters/index.ts b/src/libs/API/parameters/index.ts index 9294ab0c98a1..9154acf49f9e 100644 --- a/src/libs/API/parameters/index.ts +++ b/src/libs/API/parameters/index.ts @@ -290,3 +290,6 @@ export type {default as UpdateExpensifyCardLimitTypeParams} from './UpdateExpens export type {default as UpdateXeroGenericTypeParams} from './UpdateXeroGenericTypeParams'; export type {default as UpdateCardSettlementFrequencyParams} from './UpdateCardSettlementFrequencyParams'; export type {default as UpdateCardSettlementAccountParams} from './UpdateCardSettlementAccountParams'; +export type {default as SetCompanyCardFeedName} from './SetCompanyCardFeedName'; +export type {default as DeleteCompanyCardFeed} from './DeleteCompanyCardFeed'; +export type {default as SetCompanyCardTransactionLiability} from './SetCompanyCardTransactionLiability'; diff --git a/src/libs/API/types.ts b/src/libs/API/types.ts index edfb4ebebacb..52acab1dc610 100644 --- a/src/libs/API/types.ts +++ b/src/libs/API/types.ts @@ -348,6 +348,9 @@ const WRITE_COMMANDS = { UPDATE_XERO_IMPORT_TAX_RATES: 'UpdateXeroImportTaxRates', UPDATE_XERO_TENANT_ID: 'UpdateXeroTenantID', UPDATE_XERO_MAPPING: 'UpdateXeroMappings', + SET_COMPANY_CARD_FEED_NAME: 'SetFeedName', + DELETE_COMPANY_CARD_FEED: 'RemoveFeed', + SET_COMPANY_CARD_TRANSACTION_LIABILITY: 'SetFeedTransactionLiability', } as const; type WriteCommand = ValueOf; @@ -405,6 +408,9 @@ type WriteCommandParameters = { [WRITE_COMMANDS.UPDATE_STATUS]: Parameters.UpdateStatusParams; [WRITE_COMMANDS.CLEAR_STATUS]: null; [WRITE_COMMANDS.UPDATE_PERSONAL_DETAILS_FOR_WALLET]: Parameters.UpdatePersonalDetailsForWalletParams; + [WRITE_COMMANDS.SET_COMPANY_CARD_FEED_NAME]: Parameters.SetCompanyCardFeedName; + [WRITE_COMMANDS.DELETE_COMPANY_CARD_FEED]: Parameters.DeleteCompanyCardFeed; + [WRITE_COMMANDS.SET_COMPANY_CARD_TRANSACTION_LIABILITY]: Parameters.SetCompanyCardTransactionLiability; [WRITE_COMMANDS.VERIFY_IDENTITY]: Parameters.VerifyIdentityParams; [WRITE_COMMANDS.ACCEPT_WALLET_TERMS]: Parameters.AcceptWalletTermsParams; [WRITE_COMMANDS.ANSWER_QUESTIONS_FOR_WALLET]: Parameters.AnswerQuestionsForWalletParams; diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx index 5b5655b44ec1..2ba9290c61b4 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx @@ -431,6 +431,8 @@ const SettingsModalStackNavigator = createModalStackNavigator require('../../../../pages/workspace/expensifyCard/WorkspaceEditCardNamePage').default, [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceEditCardLimitPage').default, [SCREENS.WORKSPACE.EXPENSIFY_CARD_LIMIT_TYPE]: () => require('../../../../pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage').default, + [SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS]: () => require('../../../../pages/workspace/companyCards/WorkspaceCompanyCardsSettingsPage').default, + [SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS_FEED_NAME]: () => require('../../../../pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage').default, [SCREENS.SETTINGS.SAVE_THE_WORLD]: () => require('../../../../pages/TeachersUnite/SaveTheWorldPage').default, [SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_PAYMENT_CURRENCY]: () => require('../../../../pages/settings/PaymentCard/ChangeCurrency').default, [SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_BILLING_CURRENCY]: () => require('../../../../pages/settings/Subscription/PaymentCard/ChangeBillingCurrency').default, diff --git a/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts b/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts index 19e889092fb2..790f1df56a24 100755 --- a/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts +++ b/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts @@ -160,7 +160,7 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial> = { SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_INITIAL_VALUE, ], [SCREENS.WORKSPACE.INVOICES]: [SCREENS.WORKSPACE.INVOICES_COMPANY_NAME, SCREENS.WORKSPACE.INVOICES_COMPANY_WEBSITE], - [SCREENS.WORKSPACE.COMPANY_CARDS]: [SCREENS.WORKSPACE.COMPANY_CARDS_SELECT_FEED], + [SCREENS.WORKSPACE.COMPANY_CARDS]: [SCREENS.WORKSPACE.COMPANY_CARDS_SELECT_FEED, SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS, SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS_FEED_NAME], [SCREENS.WORKSPACE.EXPENSIFY_CARD]: [ SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW, SCREENS.WORKSPACE.EXPENSIFY_CARD_BANK_ACCOUNT, diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts index 0252e8088160..887619ea3e4d 100644 --- a/src/libs/Navigation/linkingConfig/config.ts +++ b/src/libs/Navigation/linkingConfig/config.ts @@ -508,6 +508,12 @@ const config: LinkingOptions['config'] = { [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_ACCOUNT]: { path: ROUTES.WORKSPACE_EXPENSIFY_CARD_SETTINGS_ACCOUNT.route, }, + [SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS]: { + path: ROUTES.WORKSPACE_COMPANY_CARDS_SETTINGS.route, + }, + [SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS_FEED_NAME]: { + path: ROUTES.WORKSPACE_COMPANY_CARDS_SETTINGS_FEED_NAME.route, + }, [SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS]: { path: ROUTES.WORKSPACE_EXPENSIFY_CARD_DETAILS.route, }, diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 28544da90423..15994732d3b3 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -689,6 +689,12 @@ type SettingsNavigatorParamList = { [SCREENS.WORKSPACE.EXPENSIFY_CARD_SETTINGS_FREQUENCY]: { policyID: string; }; + [SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS]: { + policyID: string; + }; + [SCREENS.WORKSPACE.COMPANY_CARDS_SETTINGS_FEED_NAME]: { + policyID: string; + }; [SCREENS.WORKSPACE.EXPENSIFY_CARD_DETAILS]: { policyID: string; cardID: string; diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 225174669f57..08e6d59c4556 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -3740,6 +3740,85 @@ function getAdminPoliciesConnectedToNetSuite(): Policy[] { return Object.values(allPolicies ?? {}).filter((policy): policy is Policy => !!policy && policy.role === CONST.POLICY.ROLE.ADMIN && !!policy?.connections?.netsuite); } +function setWorkspaceCompanyCardFeedName(policyID: string, workspaceAccountID: number, bankName: string, userDefinedName: string) { + const authToken = NetworkStore.getAuthToken(); + const onyxData: OnyxData = { + optimisticData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_DOMAIN_MEMBER}${workspaceAccountID}`, + value: { + companyCardNicknames: { + [bankName]: userDefinedName, + }, + }, + }, + ], + }; + + const parameters = { + authToken, + policyID, + bankName, + userDefinedName, + }; + + API.write(WRITE_COMMANDS.SET_COMPANY_CARD_FEED_NAME, parameters, onyxData); +} + +function setWorkspaceCompanyCardTransactionLiability(workspaceAccountID: number, bankName: string, liabilityType: string) { + const authToken = NetworkStore.getAuthToken(); + const onyxData: OnyxData = { + optimisticData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_DOMAIN_MEMBER}${workspaceAccountID}`, + value: { + companyCards: { + [bankName]: {liabilityType}, + }, + }, + }, + ], + }; + + const parameters = { + authToken, + bankName, + liabilityType, + }; + + API.write(WRITE_COMMANDS.SET_COMPANY_CARD_TRANSACTION_LIABILITY, parameters, onyxData); +} +function deleteWorkspaceCompanyCardFeed(policyID: string, workspaceAccountID: number, bankName: string) { + const authToken = NetworkStore.getAuthToken(); + + const onyxData: OnyxData = { + optimisticData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_DOMAIN_MEMBER}${workspaceAccountID}`, + value: { + companyCards: { + [bankName]: null, + }, + companyCardNicknames: { + [bankName]: null, + }, + }, + }, + ], + }; + + const parameters = { + authToken, + policyID, + bankName, + }; + + API.write(WRITE_COMMANDS.DELETE_COMPANY_CARD_FEED, parameters, onyxData); +} + function clearAllPolicies() { if (!allPolicies) { return; @@ -3831,6 +3910,9 @@ export { setPolicyMaxExpenseAge, setPolicyBillableMode, setWorkspaceEReceiptsEnabled, + setWorkspaceCompanyCardFeedName, + deleteWorkspaceCompanyCardFeed, + setWorkspaceCompanyCardTransactionLiability, }; export type {NewCustomUnit}; diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx index 948eafb08b82..201f64e7681c 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx @@ -1,11 +1,21 @@ import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; +import {View} from 'react-native'; +// import Onyx from 'react-native-onyx'; +import Button from '@components/Button'; +import * as Expensicons from '@components/Icon/Expensicons'; import * as Illustrations from '@components/Icon/Illustrations'; import useLocalize from '@hooks/useLocalize'; +// import usePolicy from '@hooks/usePolicy'; +import useResponsiveLayout from '@hooks/useResponsiveLayout'; +import useThemeStyles from '@hooks/useThemeStyles'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; +import Navigation from '@navigation/Navigation'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import WorkspacePageWithSections from '@pages/workspace/WorkspacePageWithSections'; import CONST from '@src/CONST'; +// import ONYXKEYS from '@src/ONYXKEYS'; +import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import WorkspaceCompanyCardPageEmptyState from './WorkspaceCompanyCardPageEmptyState'; import WorkspaceCompanyCardsFeedAddedEmptyPage from './WorkspaceCompanyCardsFeedAddedEmptyPage'; @@ -14,6 +24,50 @@ type WorkspaceCompanyCardPageProps = StackScreenProps { + // Onyx.set(`${ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_DOMAIN_MEMBER}${workspaceAccountID}`, { + // companyCards: { + // cdfbmo: { + // pending: false, + // asrEnabled: true, + // forceReimbursable: 'force_no', + // liabilityType: 'corporate', + // preferredPolicy: '', + // reportTitleFormat: '{report:card}{report:bank}{report:submit:from}{report:total}{report:enddate:MMMM}', + // statementPeriodEndDay: 'LAST_DAY_OF_MONTH', + // }, + // }, + // companyCardNicknames: { + // cdfbmo: 'BMO MasterCard', + // }, + // }); + // }, [workspaceAccountID]); + + const getHeaderButtons = () => ( + +