diff --git a/src/components/SettlementButton/index.tsx b/src/components/SettlementButton/index.tsx index 423a19d4aac20..a3714b732cdfa 100644 --- a/src/components/SettlementButton/index.tsx +++ b/src/components/SettlementButton/index.tsx @@ -5,6 +5,7 @@ import React, {useCallback, useContext, useMemo} from 'react'; import type {GestureResponderEvent} from 'react-native'; import type {TupleToUnion} from 'type-fest'; import ButtonWithDropdownMenu from '@components/ButtonWithDropdownMenu'; +import type {DropdownOption} from '@components/ButtonWithDropdownMenu/types'; // eslint-disable-next-line no-restricted-imports import * as Expensicons from '@components/Icon/Expensicons'; // eslint-disable-next-line no-restricted-imports @@ -238,7 +239,7 @@ function SettlementButton({ const latestBankItem = getLatestBankAccountItem(); const paymentButtonOptions = useMemo(() => { - const buttonOptions = []; + const buttonOptions: Array> = []; const paymentMethods = getSettlementButtonPaymentMethods(icons, hasActivatedWallet, translate); const shortFormPayElsewhereButton = { @@ -295,7 +296,7 @@ function SettlementButton({ buttonOptions.push({ text: latestBankItem.at(0)?.text ?? '', icon: latestBankItem.at(0)?.icon, - iconStyles: latestBankItem.at(0)?.iconStyles, + additionalIconStyles: latestBankItem.at(0)?.iconStyles, iconWidth: latestBankItem.at(0)?.iconSize, iconHeight: latestBankItem.at(0)?.iconSize, value: CONST.PAYMENT_METHODS.BUSINESS_BANK_ACCOUNT, @@ -307,8 +308,7 @@ function SettlementButton({ } if ((hasMultiplePolicies || hasSinglePolicy) && canUseWallet && !isPersonalOnlyOption) { - // eslint-disable-next-line unicorn/no-array-for-each - activeAdminPolicies.forEach((p) => { + for (const p of activeAdminPolicies) { const policyName = p.name; buttonOptions.push({ text: translate('iou.payWithPolicy', {policyName: truncate(policyName, {length: CONST.ADDITIONAL_ALLOWED_CHARACTERS}), formattedAmount: ''}), @@ -316,7 +316,7 @@ function SettlementButton({ value: p.id, shouldUpdateSelectedIndex: false, }); - }); + } } if (shouldShowPayElsewhereOption) { @@ -545,11 +545,7 @@ function SettlementButton({ return undefined; }; - const handlePaymentSelection = ( - event: GestureResponderEvent | KeyboardEvent | undefined, - selectedOption: PaymentMethodType | PaymentMethod, - triggerKYCFlow: (params: ContinueActionParams) => void, - ) => { + const handlePaymentSelection = (event: GestureResponderEvent | KeyboardEvent | undefined, selectedOption: string, triggerKYCFlow: (params: ContinueActionParams) => void) => { if (checkForNecessaryAction()) { return; } @@ -603,7 +599,7 @@ function SettlementButton({ currency={currency} > {(triggerKYCFlow, buttonRef) => ( - + onOptionsMenuShow={onPaymentOptionsShow} onOptionsMenuHide={onPaymentOptionsHide} buttonRef={buttonRef} diff --git a/src/hooks/useDuplicateTransactionsAndViolations.ts b/src/hooks/useDuplicateTransactionsAndViolations.ts index cc8fadaccd27f..58cb2480ca3c0 100644 --- a/src/hooks/useDuplicateTransactionsAndViolations.ts +++ b/src/hooks/useDuplicateTransactionsAndViolations.ts @@ -2,7 +2,7 @@ import {useMemo} from 'react'; import type {OnyxCollection} from 'react-native-onyx'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import type {Transaction, TransactionViolations} from '@src/types/onyx'; +import type {Transaction, TransactionViolation, TransactionViolations} from '@src/types/onyx'; import useOnyx from './useOnyx'; /** @@ -21,7 +21,7 @@ function selectViolationsWithDuplicates(transactionIDs: string[], allTransaction for (const transactionID of transactionIDs) { const key = `${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${transactionID}`; - const transactionViolations = allTransactionsViolations[key]; + const transactionViolations: TransactionViolations | undefined = allTransactionsViolations[key]; if (!transactionViolations) { continue; @@ -29,22 +29,22 @@ function selectViolationsWithDuplicates(transactionIDs: string[], allTransaction result[key] = transactionViolations; - transactionViolations - .filter((violations) => violations.name === CONST.VIOLATIONS.DUPLICATED_TRANSACTION) - .flatMap((violations) => violations?.data?.duplicates ?? []) - // eslint-disable-next-line unicorn/no-array-for-each - .forEach((duplicateID) => { - if (!duplicateID) { - return; - } + const duplicateTransactionIDs = transactionViolations + .filter((violation: TransactionViolation) => violation.name === CONST.VIOLATIONS.DUPLICATED_TRANSACTION) + .flatMap((violation) => violation.data?.duplicates ?? []); + + for (const duplicateID of duplicateTransactionIDs) { + if (!duplicateID) { + continue; + } - const duplicateKey = `${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${duplicateID}`; - const duplicateViolations = allTransactionsViolations[duplicateKey]; + const duplicateKey = `${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${duplicateID}`; + const duplicateViolations: TransactionViolations | undefined = allTransactionsViolations[duplicateKey]; - if (duplicateViolations) { - result[duplicateKey] = duplicateViolations; - } - }); + if (duplicateViolations) { + result[duplicateKey] = duplicateViolations; + } + } } return result;