From 299c5083585bcbe7e8c728b772aa8d2d314d0d84 Mon Sep 17 00:00:00 2001 From: apeyada Date: Sun, 3 May 2026 21:59:34 +0100 Subject: [PATCH] fix Enabling Reconciliation and saving in classic not reflecting in NewDot --- src/ONYXKEYS.ts | 6 ++- src/libs/actions/Card.ts | 44 ++++++++++++++----- .../reconciliation/CardReconciliationPage.tsx | 13 +++--- .../WorkspaceSettlementAccountPage.tsx | 6 +-- .../onyx/CardContinuousReconciliation.ts | 3 -- 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index d30ee35cbb46..2bd0e699c54f 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -813,6 +813,9 @@ const ONYXKEYS = { /** The value that indicates whether Continuous Reconciliation should be used on the domain */ EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION: 'expensifyCard_useContinuousReconciliation_', + /** Pending action for continuous reconciliation enabled status */ + EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION: 'expensifyCard_useContinuousReconciliationPendingAction_', + /** The selected accounting integration bank account ID for card reconciliation */ EXPENSIFY_CARD_RECONCILIATION_BANK_ACCOUNT_ID: 'expensifyCard_bankAccount_', @@ -1315,7 +1318,8 @@ type OnyxCollectionValuesMapping = { [ONYXKEYS.COLLECTION.PRIVATE_EXPENSIFY_CARD_MANUAL_BILLING]: boolean; [ONYXKEYS.COLLECTION.WORKSPACE_CARDS_LIST]: OnyxTypes.WorkspaceCardsList; [ONYXKEYS.COLLECTION.EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION]: OnyxTypes.PolicyConnectionName; - [ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION]: OnyxTypes.CardContinuousReconciliation; + [ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION]: boolean; + [ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION]: OnyxTypes.CardContinuousReconciliation; [ONYXKEYS.COLLECTION.EXPENSIFY_CARD_RECONCILIATION_BANK_ACCOUNT_ID]: string; [ONYXKEYS.COLLECTION.LAST_SELECTED_FEED]: OnyxTypes.CompanyCardFeedWithDomainID; [ONYXKEYS.COLLECTION.LAST_SELECTED_EXPENSIFY_CARD_FEED]: OnyxTypes.FundID; diff --git a/src/libs/actions/Card.ts b/src/libs/actions/Card.ts index b5ebc6fbddab..a008036e5309 100644 --- a/src/libs/actions/Card.ts +++ b/src/libs/actions/Card.ts @@ -1466,13 +1466,21 @@ function toggleContinuousReconciliation(workspaceAccountID: number, shouldUseCon }; const optimisticData: Array< - OnyxUpdate + OnyxUpdate< + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION + > > = [ { onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION}${workspaceAccountID}`, + value: shouldUseContinuousReconciliation, + }, + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION}${workspaceAccountID}`, value: { - value: shouldUseContinuousReconciliation, pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, }, }, @@ -1484,15 +1492,21 @@ function toggleContinuousReconciliation(workspaceAccountID: number, shouldUseCon ]; const successData: Array< - OnyxUpdate + OnyxUpdate< + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION + > > = [ { onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION}${workspaceAccountID}`, - value: { - value: shouldUseContinuousReconciliation, - pendingAction: null, - }, + value: shouldUseContinuousReconciliation, + }, + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION}${workspaceAccountID}`, + value: null, }, { onyxMethod: Onyx.METHOD.MERGE, @@ -1502,15 +1516,21 @@ function toggleContinuousReconciliation(workspaceAccountID: number, shouldUseCon ]; const failureData: Array< - OnyxUpdate + OnyxUpdate< + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION + | typeof ONYXKEYS.COLLECTION.EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION + > > = [ { onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION}${workspaceAccountID}`, - value: { - value: !shouldUseContinuousReconciliation, - pendingAction: null, - }, + value: !shouldUseContinuousReconciliation, + }, + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION}${workspaceAccountID}`, + value: null, }, { onyxMethod: Onyx.METHOD.MERGE, diff --git a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx index 2d4d8dc42fd2..94eacc33c8d1 100644 --- a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx +++ b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx @@ -74,6 +74,7 @@ function CardReconciliationPage({policy, route}: CardReconciliationPageProps) { const effectiveDomainID = Number(domainID ?? workspaceAccountID); const [continuousReconciliation] = useOnyx(`${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION}${effectiveDomainID}`); + const [continuousReconciliationPendingAction] = useOnyx(`${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_USE_CONTINUOUS_RECONCILIATION_PENDING_ACTION}${effectiveDomainID}`); const [currentConnectionName] = useOnyx(`${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_CONTINUOUS_RECONCILIATION_CONNECTION}${effectiveDomainID}`); const [reconciliationBankAccountID] = useOnyx(`${ONYXKEYS.COLLECTION.EXPENSIFY_CARD_RECONCILIATION_BANK_ACCOUNT_ID}${effectiveDomainID}`); @@ -124,11 +125,11 @@ function CardReconciliationPage({policy, route}: CardReconciliationPageProps) { }, [policyID]); useEffect(() => { - if (continuousReconciliation?.value !== undefined) { + if (continuousReconciliation !== undefined) { return; } fetchPolicyAccountingData(); - }, [continuousReconciliation?.value, fetchPolicyAccountingData]); + }, [continuousReconciliation, fetchPolicyAccountingData]); return ( {!autoSync && ( @@ -169,8 +170,8 @@ function CardReconciliationPage({policy, route}: CardReconciliationPageProps) { /> )} - - {!!paymentBankAccountID && !!continuousReconciliation?.value && ( + + {!!paymentBankAccountID && !!continuousReconciliation && ( { - if (!cardSettings || !hasActiveAccountingConnection || continuousReconciliation?.value !== undefined || reconciliationConnection !== undefined) { + if (!cardSettings || !hasActiveAccountingConnection || continuousReconciliation !== undefined || reconciliationConnection !== undefined) { return; } fetchPolicyAccountingData(); - }, [cardSettings, hasActiveAccountingConnection, continuousReconciliation?.value, reconciliationConnection, fetchPolicyAccountingData]); + }, [cardSettings, hasActiveAccountingConnection, continuousReconciliation, reconciliationConnection, fetchPolicyAccountingData]); const eligibleBankAccountsOptions: BankAccountListItem[] = eligibleBankAccounts.map((bankAccount) => { const bankName = (bankAccount.accountData?.addressName ?? '') as BankName; @@ -124,7 +124,7 @@ function WorkspaceSettlementAccountPage({route}: WorkspaceSettlementAccountPageP return ( <> {translate('workspace.expensifyCard.settlementAccountDescription')} - {!!continuousReconciliation?.value && !!connectionParam && hasActiveAccountingConnection && ( + {!!continuousReconciliation && !!connectionParam && hasActiveAccountingConnection && (