From 37aaca92e453f990f220475106921e24cf6f26b5 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Mon, 11 Aug 2025 17:11:14 +0700 Subject: [PATCH 1/3] fix: imported transactions are displayed as skeleton loader after deleting card feed --- .../configs/reportTransactionsAndViolations.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts b/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts index 780b628057e9..2f2d3c517e33 100644 --- a/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts +++ b/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts @@ -5,6 +5,7 @@ import type {Transaction, TransactionViolation} from '@src/types/onyx'; let previousTransactions: OnyxCollection = {}; let previousViolations: OnyxCollection = {}; +const transactionReportIDMapping: Record = {}; export default createOnyxDerivedValueConfig({ key: ONYXKEYS.DERIVED.REPORT_TRANSACTIONS_AND_VIOLATIONS, @@ -33,17 +34,20 @@ export default createOnyxDerivedValueConfig({ const reportID = transaction?.reportID; // If the reportID of the transaction has changed (e.g. the transaction was split into multiple reports), we need to delete the transaction from the previous reportID and the violations from the previous reportID - const previousTransaction = previousTransactions?.[transactionKey]; - const previousReportID = previousTransaction?.reportID; + const previousReportID = transactionReportIDMapping[transactionKey]; if (previousReportID && previousReportID !== reportID && reportTransactionsAndViolations[previousReportID]) { delete reportTransactionsAndViolations[previousReportID].transactions[transactionKey]; - const transactionID = previousTransaction?.transactionID; + const transactionID = transactionKey.replace(ONYXKEYS.COLLECTION.TRANSACTION, ''); if (transactionID) { delete reportTransactionsAndViolations[previousReportID].violations[`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${transactionID}`]; } } + if (!transaction && transactionReportIDMapping[transactionKey]) { + delete transactionReportIDMapping[transactionKey]; + } + if (!reportID) { continue; } From 7d1664e175b58a65f2262d5c9f113c547ce367ce Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Fri, 15 Aug 2025 18:00:14 +0700 Subject: [PATCH 2/3] update transactionReportIDMapping --- .../OnyxDerived/configs/reportTransactionsAndViolations.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts b/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts index 2f2d3c517e33..c9f4a7019fdd 100644 --- a/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts +++ b/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts @@ -75,6 +75,7 @@ export default createOnyxDerivedValueConfig({ } reportTransactionsAndViolations[reportID].transactions[transactionKey] = transaction; + transactionReportIDMapping[transactionKey] = reportID; } previousTransactions = transactions; From 2701e2a42fc7900b06b8f518c251c0531707dce3 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Fri, 29 Aug 2025 01:34:14 +0700 Subject: [PATCH 3/3] remove useless variable --- .../OnyxDerived/configs/reportTransactionsAndViolations.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts b/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts index c9f4a7019fdd..0485a812fe9d 100644 --- a/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts +++ b/src/libs/actions/OnyxDerived/configs/reportTransactionsAndViolations.ts @@ -1,9 +1,8 @@ import type {OnyxCollection} from 'react-native-onyx'; import createOnyxDerivedValueConfig from '@userActions/OnyxDerived/createOnyxDerivedValueConfig'; import ONYXKEYS from '@src/ONYXKEYS'; -import type {Transaction, TransactionViolation} from '@src/types/onyx'; +import type {TransactionViolation} from '@src/types/onyx'; -let previousTransactions: OnyxCollection = {}; let previousViolations: OnyxCollection = {}; const transactionReportIDMapping: Record = {}; @@ -78,7 +77,6 @@ export default createOnyxDerivedValueConfig({ transactionReportIDMapping[transactionKey] = reportID; } - previousTransactions = transactions; previousViolations = violations; return reportTransactionsAndViolations;