From 72b8618bcea88a093773ed0afcbbd935be131541 Mon Sep 17 00:00:00 2001 From: VickyStash Date: Wed, 5 Jun 2024 12:44:25 +0200 Subject: [PATCH] Update SendInvoiceParams typing --- src/libs/API/parameters/SendInvoiceParams.ts | 41 +++++++++++--------- src/libs/actions/IOU.ts | 15 +------ 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/libs/API/parameters/SendInvoiceParams.ts b/src/libs/API/parameters/SendInvoiceParams.ts index 55a82e310399..f8ba0647fb0a 100644 --- a/src/libs/API/parameters/SendInvoiceParams.ts +++ b/src/libs/API/parameters/SendInvoiceParams.ts @@ -1,20 +1,25 @@ -type SendInvoiceParams = { - senderWorkspaceID: string; - accountID: number; - receiverEmail?: string; - receiverInvoiceRoomID?: string; - amount: number; - currency: string; - comment: string; - merchant: string; - date: string; - category?: string; - invoiceRoomReportID?: string; - createdChatReportActionID: string; - invoiceReportID: string; - reportPreviewReportActionID: string; - transactionID: string; - transactionThreadReportID: string; -}; +import type {RequireAtLeastOne} from 'type-fest'; + +type SendInvoiceParams = RequireAtLeastOne< + { + senderWorkspaceID: string; + accountID: number; + receiverEmail?: string; + receiverInvoiceRoomID?: string; + amount: number; + currency: string; + comment: string; + merchant: string; + date: string; + category?: string; + invoiceRoomReportID?: string; + createdChatReportActionID: string; + invoiceReportID: string; + reportPreviewReportActionID: string; + transactionID: string; + transactionThreadReportID: string; + }, + 'receiverEmail' | 'receiverInvoiceRoomID' +>; export default SendInvoiceParams; diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 014ed5da3d48..c4ce7ec25de2 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -3514,7 +3514,7 @@ function sendInvoice( const {senderWorkspaceID, receiver, invoiceRoom, createdChatReportActionID, invoiceReportID, reportPreviewReportActionID, transactionID, transactionThreadReportID, onyxData} = getSendInvoiceInformation(transaction, currentUserAccountID, invoiceChatReport, receiptFile, policy, policyTagList, policyCategories); - let parameters: SendInvoiceParams = { + const parameters: SendInvoiceParams = { senderWorkspaceID, accountID: currentUserAccountID, amount: transaction?.amount ?? 0, @@ -3529,20 +3529,9 @@ function sendInvoice( reportPreviewReportActionID, transactionID, transactionThreadReportID, + ...(invoiceChatReport?.reportID ? {receiverInvoiceRoomID: invoiceChatReport.reportID} : {receiverEmail: receiver.login ?? ''}), }; - if (invoiceChatReport) { - parameters = { - ...parameters, - receiverInvoiceRoomID: invoiceChatReport.reportID, - }; - } else { - parameters = { - ...parameters, - receiverEmail: receiver.login, - }; - } - API.write(WRITE_COMMANDS.SEND_INVOICE, parameters, onyxData); Navigation.dismissModalWithReport(invoiceRoom);