diff --git a/src/ROUTES.ts b/src/ROUTES.ts index f599663ad3e2..521f1249f2ec 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -1095,12 +1095,6 @@ const ROUTES = { // eslint-disable-next-line no-restricted-syntax -- Legacy route generation getUrlWithBackToParam(`${action as string}/${iouType as string}/participants/${transactionID}/${reportID}`, backTo), }, - MONEY_REQUEST_STEP_SPLIT_PAYER: { - route: ':action/:iouType/confirmation/:transactionID/:reportID/payer', - getRoute: (action: IOUAction, iouType: IOUType, transactionID: string, reportID: string, backTo = '') => - // eslint-disable-next-line no-restricted-syntax -- Legacy route generation - getUrlWithBackToParam(`${action as string}/${iouType as string}/confirmation/${transactionID}/${reportID}/payer`, backTo), - }, MONEY_REQUEST_STEP_SCAN: { route: ':action/:iouType/scan/:transactionID/:reportID', getRoute: (action: IOUAction, iouType: IOUType, transactionID: string | undefined, reportID: string | undefined, backTo = '') => { diff --git a/src/SCREENS.ts b/src/SCREENS.ts index 60e8139be4eb..11ff924925a9 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -282,7 +282,6 @@ const SCREENS = { STEP_TAX_AMOUNT: 'Money_Request_Step_Tax_Amount', STEP_TAX_RATE: 'Money_Request_Step_Tax_Rate', RECEIPT_VIEW: 'Money_Request_Receipt_View', - STEP_SPLIT_PAYER: 'Money_Request_Step_Split_Payer', STEP_SEND_FROM: 'Money_Request_Step_Send_From', STEP_COMPANY_INFO: 'Money_Request_Step_Company_Info', CURRENCY: 'Money_Request_Currency', diff --git a/src/libs/API/parameters/SplitBillParams.ts b/src/libs/API/parameters/SplitBillParams.ts index bc99bf176e2d..e2bc7ece9d45 100644 --- a/src/libs/API/parameters/SplitBillParams.ts +++ b/src/libs/API/parameters/SplitBillParams.ts @@ -15,7 +15,6 @@ type SplitBillParams = { createdReportActionID?: string; policyID: string | undefined; chatType: string | undefined; - splitPayerAccountIDs: number[]; taxCode: string; taxAmount: number; description?: string; diff --git a/src/libs/DebugUtils.ts b/src/libs/DebugUtils.ts index 2ef118b79b4c..91390792c9ba 100644 --- a/src/libs/DebugUtils.ts +++ b/src/libs/DebugUtils.ts @@ -1062,7 +1062,6 @@ function validateTransactionDraftProperty(key: keyof Transaction, value: string) originalAmount: CONST.RED_BRICK_ROAD_PENDING_ACTION, originalCurrency: CONST.RED_BRICK_ROAD_PENDING_ACTION, splitShares: CONST.RED_BRICK_ROAD_PENDING_ACTION, - splitPayerAccountIDs: CONST.RED_BRICK_ROAD_PENDING_ACTION, shouldShowOriginalAmount: CONST.RED_BRICK_ROAD_PENDING_ACTION, actionableWhisperReportActionID: CONST.RED_BRICK_ROAD_PENDING_ACTION, linkedTrackedExpenseReportAction: CONST.RED_BRICK_ROAD_PENDING_ACTION, @@ -1179,8 +1178,6 @@ function validateTransactionDraftProperty(key: keyof Transaction, value: string) }, 'number', ); - case 'splitPayerAccountIDs': - return validateArray(value, 'number'); case 'linkedTrackedExpenseReportAction': return validateObject(value, { accountID: 'number', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx index f6479c468fe0..4563d3ba4cd2 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx @@ -154,7 +154,6 @@ const MoneyRequestModalStackNavigator = createModalStackNavigator require('../../../../pages/iou/request/step/IOURequestStepScan').default, [SCREENS.MONEY_REQUEST.STEP_TAG]: () => require('../../../../pages/iou/request/step/IOURequestStepTag').default, [SCREENS.MONEY_REQUEST.STEP_WAYPOINT]: () => require('../../../../pages/iou/request/step/IOURequestStepWaypoint').default, - [SCREENS.MONEY_REQUEST.STEP_SPLIT_PAYER]: () => require('../../../../pages/iou/request/step/IOURequestStepSplitPayer').default, [SCREENS.MONEY_REQUEST.STEP_SEND_FROM]: () => require('../../../../pages/iou/request/step/IOURequestStepSendFrom').default, [SCREENS.MONEY_REQUEST.STEP_REPORT]: () => require('../../../../pages/iou/request/step/IOURequestStepReport').default, [SCREENS.MONEY_REQUEST.STEP_COMPANY_INFO]: () => require('../../../../pages/iou/request/step/IOURequestStepCompanyInfo').default, diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts index 9b8379f54d96..bc4cca3a6e5b 100644 --- a/src/libs/Navigation/linkingConfig/config.ts +++ b/src/libs/Navigation/linkingConfig/config.ts @@ -1389,7 +1389,6 @@ const config: LinkingOptions['config'] = { path: ROUTES.MONEY_REQUEST_STATE_SELECTOR.route, exact: true, }, - [SCREENS.MONEY_REQUEST.STEP_SPLIT_PAYER]: ROUTES.MONEY_REQUEST_STEP_SPLIT_PAYER.route, [SCREENS.MONEY_REQUEST.STEP_ATTENDEES]: ROUTES.MONEY_REQUEST_ATTENDEE.route, [SCREENS.MONEY_REQUEST.STEP_ACCOUNTANT]: ROUTES.MONEY_REQUEST_ACCOUNTANT.route, [SCREENS.MONEY_REQUEST.STEP_UPGRADE]: ROUTES.MONEY_REQUEST_UPGRADE.route, diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 856d0e8957aa..5b481c235a4a 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -1403,13 +1403,6 @@ type MoneyRequestNavigatorParamList = { backTo: Routes; reportActionID?: string; }; - [SCREENS.MONEY_REQUEST.STEP_SPLIT_PAYER]: { - action: ValueOf; - iouType: ValueOf; - transactionID: string; - reportID: string; - backTo: Routes; - }; [SCREENS.IOU_SEND.ENABLE_PAYMENTS]: undefined; [SCREENS.IOU_SEND.ADD_BANK_ACCOUNT]: undefined; [SCREENS.IOU_SEND.ADD_DEBIT_CARD]: undefined; diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 797c1611ea22..23fd24d2e136 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -1071,7 +1071,6 @@ function initMoneyRequest({ transactionID: newTransactionID, isFromGlobalCreate, merchant: CONST.TRANSACTION.PARTIAL_TRANSACTION_MERCHANT, - splitPayerAccountIDs: currentUserPersonalDetails ? [currentUserPersonalDetails.accountID] : undefined, }; // Store the transaction in Onyx and mark it as not saved so it can be cleaned up later @@ -1212,10 +1211,6 @@ function setMoneyRequestParticipants(transactionID: string, participants: Partic }); } -function setSplitPayer(transactionID: string, payerAccountID: number) { - Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {splitPayerAccountIDs: [payerAccountID]}); -} - function setMoneyRequestReceipt(transactionID: string, source: string, filename: string, isDraft: boolean, type?: string, isTestReceipt = false, isTestDriveReceipt = false) { Onyx.merge(`${isDraft ? ONYXKEYS.COLLECTION.TRANSACTION_DRAFT : ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, { // isTestReceipt = false and isTestDriveReceipt = false are being converted to null because we don't really need to store it in Onyx in those cases @@ -6972,7 +6967,6 @@ type SplitBillActionsParams = { iouRequestType?: IOURequestType; existingSplitChatReportID?: string; splitShares?: SplitShares; - splitPayerAccountIDs?: number[]; taxCode?: string; taxAmount?: number; isRetry?: boolean; @@ -6998,7 +6992,6 @@ function splitBill({ iouRequestType = CONST.IOU.REQUEST_TYPE.MANUAL, existingSplitChatReportID, splitShares = {}, - splitPayerAccountIDs = [], taxCode = '', taxAmount = 0, }: SplitBillActionsParams) { @@ -7042,7 +7035,6 @@ function splitBill({ createdReportActionID: splitData.createdReportActionID, policyID: splitData.policyID, chatType: splitData.chatType, - splitPayerAccountIDs, taxCode, taxAmount, description: parsedComment, @@ -7076,7 +7068,6 @@ function splitBillAndOpenReport({ reimbursable = false, iouRequestType = CONST.IOU.REQUEST_TYPE.MANUAL, splitShares = {}, - splitPayerAccountIDs = [], taxCode = '', taxAmount = 0, existingSplitChatReportID, @@ -7121,7 +7112,6 @@ function splitBillAndOpenReport({ createdReportActionID: splitData.createdReportActionID, policyID: splitData.policyID, chatType: splitData.chatType, - splitPayerAccountIDs, taxCode, taxAmount, description: parsedComment, @@ -13657,7 +13647,6 @@ export { setMoneyRequestTag, setMoneyRequestTaxAmount, setMoneyRequestTaxRate, - setSplitPayer, setSplitShares, splitBill, splitBillAndOpenReport, diff --git a/src/libs/actions/TransactionEdit.ts b/src/libs/actions/TransactionEdit.ts index 5339383b0786..e0204436e42b 100644 --- a/src/libs/actions/TransactionEdit.ts +++ b/src/libs/actions/TransactionEdit.ts @@ -151,7 +151,7 @@ type BuildOptimisticTransactionParams = { function buildOptimisticTransactionAndCreateDraft({initialTransaction, currentUserPersonalDetails, reportID}: BuildOptimisticTransactionParams): Transaction { const newTransactionID = generateTransactionID(); - const {currency, iouRequestType, isFromGlobalCreate, splitPayerAccountIDs} = initialTransaction ?? {}; + const {currency, iouRequestType, isFromGlobalCreate} = initialTransaction ?? {}; const newTransaction = { amount: 0, created: format(new Date(), 'yyyy-MM-dd'), @@ -162,7 +162,6 @@ function buildOptimisticTransactionAndCreateDraft({initialTransaction, currentUs transactionID: newTransactionID, isFromGlobalCreate, merchant: CONST.TRANSACTION.PARTIAL_TRANSACTION_MERCHANT, - splitPayerAccountIDs, } as Transaction; createDraftTransaction(newTransaction); return newTransaction; diff --git a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx index ab30b77996b2..adf97a655478 100644 --- a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx +++ b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx @@ -237,21 +237,6 @@ function IOURequestStepConfirmation({ const isCategorizingTrackExpense = action === CONST.IOU.ACTION.CATEGORIZE; const isMovingTransactionFromTrackExpense = isMovingTransactionFromTrackExpenseIOUUtils(action); const isTestTransaction = transaction?.participants?.some((participant) => isSelectedManagerMcTest(participant.login)); - const payeePersonalDetails = useMemo(() => { - if (personalDetails?.[transaction?.splitPayerAccountIDs?.at(0) ?? -1]) { - return personalDetails?.[transaction?.splitPayerAccountIDs?.at(0) ?? -1]; - } - - const participant = transaction?.participants?.find((val) => val.accountID === (transaction?.splitPayerAccountIDs?.at(0) ?? -1)); - - return { - login: participant?.login ?? '', - accountID: participant?.accountID ?? CONST.DEFAULT_NUMBER_ID, - avatar: Expensicons.FallbackAvatar, - displayName: participant?.login ?? '', - isOptimisticPersonalDetail: true, - }; - }, [personalDetails, transaction?.participants, transaction?.splitPayerAccountIDs]); const gpsRequired = transaction?.amount === 0 && iouType !== CONST.IOU.TYPE.SPLIT && Object.values(receiptFiles).length && !isTestTransaction; const [isConfirmed, setIsConfirmed] = useState(false); @@ -847,7 +832,6 @@ function IOURequestStepConfirmation({ reimbursable: transaction.reimbursable, iouRequestType: transaction.iouRequestType, splitShares: transaction.splitShares, - splitPayerAccountIDs: transaction.splitPayerAccountIDs ?? [], taxCode: transactionTaxCode, taxAmount: transactionTaxAmount, }); @@ -873,7 +857,6 @@ function IOURequestStepConfirmation({ reimbursable: !!transaction.reimbursable, iouRequestType: transaction.iouRequestType, splitShares: transaction.splitShares, - splitPayerAccountIDs: transaction.splitPayerAccountIDs, taxCode: transactionTaxCode, taxAmount: transactionTaxAmount, }); @@ -1224,7 +1207,6 @@ function IOURequestStepConfirmation({ isPerDiemRequest={isPerDiemRequest} shouldShowSmartScanFields={shouldShowSmartScanFields} action={action} - payeePersonalDetails={payeePersonalDetails} isConfirmed={isConfirmed} isConfirming={isConfirming} iouIsReimbursable={transaction?.reimbursable} diff --git a/src/pages/iou/request/step/IOURequestStepSplitPayer.tsx b/src/pages/iou/request/step/IOURequestStepSplitPayer.tsx deleted file mode 100644 index c3751d0fedb2..000000000000 --- a/src/pages/iou/request/step/IOURequestStepSplitPayer.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import React, {useMemo} from 'react'; -import type {OnyxEntry} from 'react-native-onyx'; -import {usePersonalDetails} from '@components/OnyxListItemProvider'; -import SelectionList from '@components/SelectionListWithSections'; -import UserListItem from '@components/SelectionListWithSections/UserListItem'; -import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails'; -import useLocalize from '@hooks/useLocalize'; -import useScreenWrapperTransitionStatus from '@hooks/useScreenWrapperTransitionStatus'; -import {isValidMoneyRequestType} from '@libs/IOUUtils'; -import Navigation from '@libs/Navigation/Navigation'; -import {getParticipantsOption} from '@libs/OptionsListUtils'; -import type {OptionData} from '@libs/ReportUtils'; -import {isPolicyExpenseChat} from '@libs/ReportUtils'; -import {setSplitPayer} from '@userActions/IOU'; -import CONST from '@src/CONST'; -import type SCREENS from '@src/SCREENS'; -import type * as OnyxTypes from '@src/types/onyx'; -import type {Participant} from '@src/types/onyx/IOU'; -import StepScreenWrapper from './StepScreenWrapper'; -import withFullTransactionOrNotFound from './withFullTransactionOrNotFound'; -import type {WithWritableReportOrNotFoundProps} from './withWritableReportOrNotFound'; -import withWritableReportOrNotFound from './withWritableReportOrNotFound'; - -type IOURequestStepSplitPayerProps = WithWritableReportOrNotFoundProps & { - /** Holds data related to Money Request view state, rather than the underlying Money Request data. */ - transaction: OnyxEntry; -}; - -function IOURequestStepSplitPayer({ - route: { - params: {iouType, transactionID, action, backTo}, - }, - transaction, - report, -}: IOURequestStepSplitPayerProps) { - const {translate} = useLocalize(); - const personalDetails = usePersonalDetails(); - const {didScreenTransitionEnd} = useScreenWrapperTransitionStatus(); - const currentUserPersonalDetails = useCurrentUserPersonalDetails(); - - const currentUserOption = useMemo( - () => ({ - accountID: currentUserPersonalDetails.accountID, - searchText: currentUserPersonalDetails.login, - selected: true, - }), - [currentUserPersonalDetails], - ); - - const sections = useMemo(() => { - const participants = transaction?.participants ?? []; - const participantOptions = - [currentUserOption, ...participants]?.filter((participant) => !!participant.accountID)?.map((participant) => getParticipantsOption(participant, personalDetails)) ?? []; - return [ - { - title: '', - data: participantOptions.map((participantOption) => ({ - ...participantOption, - isSelected: !!transaction?.splitPayerAccountIDs && transaction?.splitPayerAccountIDs?.includes(participantOption.accountID ?? CONST.DEFAULT_NUMBER_ID), - })), - }, - ]; - }, [transaction?.participants, personalDetails, transaction?.splitPayerAccountIDs, currentUserOption]); - - const navigateBack = () => { - Navigation.goBack(backTo); - }; - - const setSplitPayerAction = (item: Participant | OptionData) => { - setSplitPayer(transactionID, item.accountID ?? CONST.DEFAULT_NUMBER_ID); - navigateBack(); - }; - - return ( - - - - ); -} - -IOURequestStepSplitPayer.displayName = 'IOURequestStepSplitPayer'; - -// eslint-disable-next-line rulesdir/no-negated-variables -const IOURequestStepSplitPayerWithWritableReportOrNotFound = withWritableReportOrNotFound(IOURequestStepSplitPayer); -// eslint-disable-next-line rulesdir/no-negated-variables -const IOURequestStepSplitPayerWithFullTransactionOrNotFound = withFullTransactionOrNotFound(IOURequestStepSplitPayerWithWritableReportOrNotFound); - -export default IOURequestStepSplitPayerWithFullTransactionOrNotFound; diff --git a/src/types/form/DebugTransactionForm.ts b/src/types/form/DebugTransactionForm.ts index 49356f883e25..6e0435475ec5 100644 --- a/src/types/form/DebugTransactionForm.ts +++ b/src/types/form/DebugTransactionForm.ts @@ -42,7 +42,6 @@ const INPUT_IDS = { ORIGINAL_CURRENCY: 'originalCurrency', IS_LOADING: 'isLoading', SPLIT_SHARES: 'splitShares', - SPLIT_PAYER_ACCOUNT_I_DS: 'splitPayerAccountIDs', SHOULD_SHOW_ORIGINAL_AMOUNT: 'shouldShowOriginalAmount', ACTIONABLE_WHISPER_REPORT_ACTION_ID: 'actionableWhisperReportActionID', LINKED_TRACKED_EXPENSE_REPORT_ACTION: 'linkedTrackedExpenseReportAction', @@ -96,7 +95,6 @@ type DebugTransactionForm = Form< [INPUT_IDS.ORIGINAL_CURRENCY]: string; [INPUT_IDS.IS_LOADING]: boolean; [INPUT_IDS.SPLIT_SHARES]: string; - [INPUT_IDS.SPLIT_PAYER_ACCOUNT_I_DS]: string; [INPUT_IDS.SHOULD_SHOW_ORIGINAL_AMOUNT]: boolean; [INPUT_IDS.ACTIONABLE_WHISPER_REPORT_ACTION_ID]: string; [INPUT_IDS.LINKED_TRACKED_EXPENSE_REPORT_ACTION]: string; diff --git a/src/types/onyx/Transaction.ts b/src/types/onyx/Transaction.ts index d428a8e967b5..bbe5c4b9fcb0 100644 --- a/src/types/onyx/Transaction.ts +++ b/src/types/onyx/Transaction.ts @@ -528,9 +528,6 @@ type Transaction = OnyxCommon.OnyxValueWithOfflineFeedback< /** Holds individual shares of a split keyed by accountID, only used locally */ splitShares?: SplitShares; - /** Holds the accountIDs of accounts who paid the split, for now only supports a single payer */ - splitPayerAccountIDs?: number[]; - /** Whether the user input should be kept */ shouldShowOriginalAmount?: boolean; diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index 85134ab9c5c3..5405add872f4 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -6311,7 +6311,6 @@ describe('actions/IOU', () => { transactionID: CONST.IOU.OPTIMISTIC_TRANSACTION_ID, isFromGlobalCreate: true, merchant: '(none)', - splitPayerAccountIDs: [3], }; const currentDate = '2025-04-01'; diff --git a/tests/data/Invoice.ts b/tests/data/Invoice.ts index 9db9617a5b39..17dbb4b641f8 100644 --- a/tests/data/Invoice.ts +++ b/tests/data/Invoice.ts @@ -197,7 +197,6 @@ const transaction: OnyxEntry = { transactionID: '1', isFromGlobalCreate: true, merchant: '(none)', - splitPayerAccountIDs: [32], shouldShowOriginalAmount: true, participants: [ { diff --git a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx index cd18fe2868a7..7f0b34ac1cb7 100644 --- a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx +++ b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx @@ -73,7 +73,6 @@ const DEFAULT_SPLIT_TRANSACTION: Transaction = { participantsAutoAssigned: true, reimbursable: true, reportID: REPORT_ID, - splitPayerAccountIDs: [ACCOUNT_ID], transactionID: TRANSACTION_ID, };