From 128cd29aa1d979e61e1ca56c9273e02cc7f5933c Mon Sep 17 00:00:00 2001 From: daledah Date: Wed, 28 Aug 2024 15:32:13 +0700 Subject: [PATCH] fix: remove button for approved dupes --- .../MoneyRequestPreviewContent.tsx | 2 +- src/libs/TransactionUtils/index.ts | 14 +++++++++----- src/pages/TransactionDuplicate/Review.tsx | 4 ++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx index ff0658963fd3..6ab1c0937278 100644 --- a/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx @@ -133,7 +133,7 @@ function MoneyRequestPreviewContent({ ); // Remove settled transactions from duplicates - const duplicates = useMemo(() => TransactionUtils.removeSettledTransactions(allDuplicates), [allDuplicates]); + const duplicates = useMemo(() => TransactionUtils.removeSettledAndApprovedTransactions(allDuplicates), [allDuplicates]); // When there are no settled transactions in duplicates, show the "Keep this one" button const shouldShowKeepButton = allDuplicates.length === duplicates.length; diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index e6def80902c3..339f57c8e04a 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -905,8 +905,12 @@ type FieldsToChange = { reimbursable?: Array; }; -function removeSettledTransactions(transactionIDs: string[]) { - return transactionIDs.filter((transactionID) => !ReportUtils.isSettled(allTransactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`]?.reportID)); +function removeSettledAndApprovedTransactions(transactionIDs: string[]) { + return transactionIDs.filter( + (transactionID) => + !ReportUtils.isSettled(allTransactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`]?.reportID) && + !ReportUtils.isReportApproved(allTransactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`]?.reportID), + ); } /** @@ -930,7 +934,7 @@ function removeSettledTransactions(transactionIDs: string[]) { function compareDuplicateTransactionFields(transactionID: string): {keep: Partial; change: FieldsToChange} { const transactionViolations = allTransactionViolations?.[`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${transactionID}`]; const duplicates = transactionViolations?.find((violation) => violation.name === CONST.VIOLATIONS.DUPLICATED_TRANSACTION)?.data?.duplicates ?? []; - const transactions = removeSettledTransactions([transactionID, ...duplicates]).map((item) => getTransaction(item)); + const transactions = removeSettledAndApprovedTransactions([transactionID, ...duplicates]).map((item) => getTransaction(item)); // eslint-disable-next-line @typescript-eslint/no-explicit-any const keep: Record = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -1044,7 +1048,7 @@ function buildTransactionsMergeParams(reviewDuplicates: OnyxEntry), created: getFormattedCreated(originalTransaction as OnyxEntry), transactionID: reviewDuplicates?.transactionID ?? '', - transactionIDList: removeSettledTransactions(reviewDuplicates?.duplicates ?? []), + transactionIDList: removeSettledAndApprovedTransactions(reviewDuplicates?.duplicates ?? []), billable: reviewDuplicates?.billable ?? false, reimbursable: reviewDuplicates?.reimbursable ?? false, category: reviewDuplicates?.category ?? '', @@ -1130,7 +1134,7 @@ export { buildTransactionsMergeParams, getReimbursable, isPayAtEndExpense, - removeSettledTransactions, + removeSettledAndApprovedTransactions, getCardName, }; diff --git a/src/pages/TransactionDuplicate/Review.tsx b/src/pages/TransactionDuplicate/Review.tsx index 9b7b6614756d..46f82589e309 100644 --- a/src/pages/TransactionDuplicate/Review.tsx +++ b/src/pages/TransactionDuplicate/Review.tsx @@ -44,7 +44,7 @@ function TransactionDuplicateReview() { Navigation.goBack(); }; - const hasSettledTransaction = transactions.some((transaction) => ReportUtils.isSettled(transaction?.reportID)); + const hasSettledOrApprovedTransaction = transactions.some((transaction) => ReportUtils.isSettled(transaction?.reportID) || ReportUtils.isReportApproved(transaction?.reportID)); return ( @@ -55,7 +55,7 @@ function TransactionDuplicateReview() { text={translate('iou.keepAll')} onPress={keepAll} /> - {!!hasSettledTransaction && {translate('iou.someDuplicatesArePaid')}} + {!!hasSettledOrApprovedTransaction && {translate('iou.someDuplicatesArePaid')}}