diff --git a/__mocks__/reportData/transactions.ts b/__mocks__/reportData/transactions.ts index 4dc0cfdd1902..fcc112778fc0 100644 --- a/__mocks__/reportData/transactions.ts +++ b/__mocks__/reportData/transactions.ts @@ -11,6 +11,7 @@ const TRANSACTION_ID_R98765 = 'TRANSACTION_ID_R98765'; const receiptR14932 = { state: CONST.IOU.RECEIPT_STATE.OPEN, source: 'mockData/eReceiptBGs/eReceiptBG_pink.png', + filename: 'test.html', }; const transactionR14932: Transaction = { @@ -22,7 +23,6 @@ const transactionR14932: Transaction = { status: CONST.TRANSACTION.STATUS.POSTED, receipt: receiptR14932, merchant: 'Acme', - filename: 'test.html', created: '2025-02-14', inserted: '2025-02-14 08:12:19', billable: false, @@ -66,7 +66,6 @@ const transactionR98765: Transaction = { bank: '', cardNumber: '', category: '', - filename: '', modifiedCreated: '', modifiedCurrency: '', modifiedMerchant: '', diff --git a/src/hooks/useRestartOnReceiptFailure.ts b/src/hooks/useRestartOnReceiptFailure.ts index 0b8c1d02aeab..5b50c13d408b 100644 --- a/src/hooks/useRestartOnReceiptFailure.ts +++ b/src/hooks/useRestartOnReceiptFailure.ts @@ -3,7 +3,6 @@ import type {OnyxEntry} from 'react-native-onyx'; import {checkIfScanFileCanBeRead, setMoneyRequestReceipt} from '@libs/actions/IOU'; import {removeDraftTransactions} from '@libs/actions/TransactionEdit'; import {isLocalFile as isLocalFileUtil} from '@libs/fileDownload/FileUtils'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import {navigateToStartMoneyRequestStep} from '@libs/IOUUtils'; import {getRequestType} from '@libs/TransactionUtils'; import type {IOUAction, IOUType} from '@src/CONST'; @@ -21,7 +20,7 @@ const useRestartOnReceiptFailure = (transaction: OnyxEntry, reportI if (!transaction || action !== CONST.IOU.ACTION.CREATE) { return; } - const itemReceiptFilename = getReceiptFilenameFromTransaction(transaction); + const itemReceiptFilename = transaction.receipt?.filename; const itemReceiptPath = transaction.receipt?.source; const itemReceiptType = transaction.receipt?.type; const isLocalFile = isLocalFileUtil(itemReceiptPath); diff --git a/src/libs/DebugUtils.ts b/src/libs/DebugUtils.ts index cee449dd4044..38d1364ff951 100644 --- a/src/libs/DebugUtils.ts +++ b/src/libs/DebugUtils.ts @@ -944,7 +944,6 @@ function validateTransactionDraftProperty(key: keyof Transaction, value: string) case 'category': case 'merchant': case 'taxCode': - case 'filename': case 'modifiedCurrency': case 'modifiedMerchant': case 'transactionID': @@ -1054,7 +1053,6 @@ function validateTransactionDraftProperty(key: keyof Transaction, value: string) created: CONST.RED_BRICK_ROAD_PENDING_ACTION, currency: CONST.RED_BRICK_ROAD_PENDING_ACTION, errors: CONST.RED_BRICK_ROAD_PENDING_ACTION, - filename: CONST.RED_BRICK_ROAD_PENDING_ACTION, iouRequestType: CONST.RED_BRICK_ROAD_PENDING_ACTION, merchant: CONST.RED_BRICK_ROAD_PENDING_ACTION, modifiedAmount: CONST.RED_BRICK_ROAD_PENDING_ACTION, diff --git a/src/libs/MergeTransactionUtils.ts b/src/libs/MergeTransactionUtils.ts index 1786b7720182..b07fa6adccae 100644 --- a/src/libs/MergeTransactionUtils.ts +++ b/src/libs/MergeTransactionUtils.ts @@ -8,7 +8,6 @@ import type {MergeTransaction, Transaction} from '@src/types/onyx'; import type {Attendee} from '@src/types/onyx/IOU'; import SafeString from '@src/utils/SafeString'; import {convertToDisplayString} from './CurrencyUtils'; -import getReceiptFilenameFromTransaction from './getReceiptFilenameFromTransaction'; import Parser from './Parser'; import {getCommaSeparatedTagNameWithSanitizedColons} from './PolicyUtils'; import {getIOUActionForReportID} from './ReportActionsUtils'; @@ -66,7 +65,7 @@ function getMergeFieldErrorText(translate: LocaleContextProps['translate'], merg */ function fillMissingReceiptSource(transaction: Transaction) { // If receipt.source already exists, no need to modify - if (!transaction.receipt || !!transaction.receipt?.source || !getReceiptFilenameFromTransaction(transaction)) { + if (!transaction.receipt || !!transaction.receipt.source || !transaction.receipt.filename) { return transaction; } @@ -74,7 +73,7 @@ function fillMissingReceiptSource(transaction: Transaction) { ...transaction, receipt: { ...transaction.receipt, - source: `${RECEIPT_SOURCE_URL}${getReceiptFilenameFromTransaction(transaction)}`, + source: `${RECEIPT_SOURCE_URL}${transaction.receipt.filename}`, }, }; } diff --git a/src/libs/ReceiptUtils.ts b/src/libs/ReceiptUtils.ts index 07df9a8dd0c0..1a76b9af60a5 100644 --- a/src/libs/ReceiptUtils.ts +++ b/src/libs/ReceiptUtils.ts @@ -6,7 +6,6 @@ import ROUTES from '@src/ROUTES'; import type {ShareTempFile, Transaction} from '@src/types/onyx'; import type {ReceiptError, ReceiptSource} from '@src/types/onyx/Transaction'; import {isLocalFile as isLocalFileUtils, splitExtensionFromFileName} from './fileDownload/FileUtils'; -import getReceiptFilenameFromTransaction from './getReceiptFilenameFromTransaction'; import {hasReceipt, hasReceiptSource, isFetchingWaypointsFromServer} from './TransactionUtils'; type ThumbnailAndImageURI = { @@ -39,7 +38,7 @@ function getThumbnailAndImageURIs(transaction: OnyxEntry, receiptPa // URI to image, i.e. blob:new.expensify.com/9ef3a018-4067-47c6-b29f-5f1bd35f213d or expensify.com/receipts/w_e616108497ef940b7210ec6beb5a462d01a878f4.jpg const path = errors?.source ?? transaction?.receipt?.source ?? receiptPath ?? ''; // filename of uploaded image or last part of remote URI - const filename = errors?.filename ?? getReceiptFilenameFromTransaction(transaction) ?? receiptFileName ?? ''; + const filename = errors?.filename ?? transaction?.receipt?.filename ?? receiptFileName ?? ''; const isReceiptImage = Str.isImage(filename); const hasEReceipt = !hasReceiptSource(transaction) && transaction?.hasEReceipt; const isReceiptPDF = Str.isPDF(filename); diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 1e6462732ba2..11b28f0698b0 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -54,7 +54,6 @@ import DateUtils from '@libs/DateUtils'; import DistanceRequestUtils from '@libs/DistanceRequestUtils'; import {getMicroSecondOnyxErrorObject, getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils'; import {readFileAsync} from '@libs/fileDownload/FileUtils'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import GoogleTagManager from '@libs/GoogleTagManager'; import { calculateAmount as calculateIOUAmount, @@ -2056,7 +2055,7 @@ function buildOnyxDataForMoneyRequest(moneyRequestParams: BuildOnyxDataForMoneyR onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transaction.transactionID}`, value: { - errors: getReceiptError(transaction.receipt, getReceiptFilenameFromTransaction(transaction), isScanRequest, errorKey, CONST.IOU.ACTION_PARAMS.MONEY_REQUEST, retryParams), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, errorKey, CONST.IOU.ACTION_PARAMS.MONEY_REQUEST, retryParams), pendingFields: clearedPendingFields, }, }, @@ -2067,14 +2066,7 @@ function buildOnyxDataForMoneyRequest(moneyRequestParams: BuildOnyxDataForMoneyR ...(shouldCreateNewMoneyRequestReport ? { [iou.createdAction.reportActionID]: { - errors: getReceiptError( - transaction.receipt, - getReceiptFilenameFromTransaction(transaction), - isScanRequest, - errorKey, - CONST.IOU.ACTION_PARAMS.MONEY_REQUEST, - retryParams, - ), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, errorKey, CONST.IOU.ACTION_PARAMS.MONEY_REQUEST, retryParams), }, [iou.action.reportActionID]: { errors: getMicroSecondOnyxErrorWithTranslationKey('iou.error.genericCreateFailureMessage'), @@ -2082,14 +2074,7 @@ function buildOnyxDataForMoneyRequest(moneyRequestParams: BuildOnyxDataForMoneyR } : { [iou.action.reportActionID]: { - errors: getReceiptError( - transaction.receipt, - getReceiptFilenameFromTransaction(transaction), - isScanRequest, - errorKey, - CONST.IOU.ACTION_PARAMS.MONEY_REQUEST, - retryParams, - ), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, errorKey, CONST.IOU.ACTION_PARAMS.MONEY_REQUEST, retryParams), }, }), }, @@ -2515,7 +2500,7 @@ function buildOnyxDataForInvoice(invoiceParams: BuildOnyxDataForInvoiceParams): key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iou.report?.reportID}`, value: { [iou.createdAction.reportActionID]: { - errors: getReceiptError(transactionParams.transaction.receipt, getReceiptFilenameFromTransaction(transactionParams.transaction), false, errorKey), + errors: getReceiptError(transactionParams.transaction.receipt, transactionParams.transaction.receipt?.filename, false, errorKey), }, [iou.action.reportActionID]: { errors: getMicroSecondOnyxErrorWithTranslationKey('iou.error.genericCreateInvoiceFailureMessage'), @@ -2921,14 +2906,7 @@ function buildOnyxDataForTrackExpense({ ...(shouldCreateNewMoneyRequestReport ? { [iouCreatedAction.reportActionID]: { - errors: getReceiptError( - transaction.receipt, - getReceiptFilenameFromTransaction(transaction), - isScanRequest, - undefined, - CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, - retryParams, - ), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, undefined, CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, retryParams), }, [iouAction.reportActionID]: { errors: getMicroSecondOnyxErrorWithTranslationKey('iou.error.genericCreateFailureMessage'), @@ -2936,14 +2914,7 @@ function buildOnyxDataForTrackExpense({ } : { [iouAction.reportActionID]: { - errors: getReceiptError( - transaction.receipt, - getReceiptFilenameFromTransaction(transaction), - isScanRequest, - undefined, - CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, - retryParams, - ), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, undefined, CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, retryParams), }, }), }, @@ -2955,14 +2926,7 @@ function buildOnyxDataForTrackExpense({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${chatReport?.reportID}`, value: { [iouAction.reportActionID]: { - errors: getReceiptError( - transaction.receipt, - getReceiptFilenameFromTransaction(transaction), - isScanRequest, - undefined, - CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, - retryParams, - ), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, undefined, CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, retryParams), }, }, }); @@ -2994,7 +2958,7 @@ function buildOnyxDataForTrackExpense({ onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transaction.transactionID}`, value: { - errors: getReceiptError(transaction.receipt, getReceiptFilenameFromTransaction(transaction), isScanRequest, undefined, CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, retryParams), + errors: getReceiptError(transaction.receipt, transaction.receipt?.filename, isScanRequest, undefined, CONST.IOU.ACTION_PARAMS.TRACK_EXPENSE, retryParams), pendingFields: clearedPendingFields, }, }, @@ -4234,7 +4198,6 @@ function getTrackExpenseInformation(params: GetTrackExpenseInformationParams): T // STEP 3: Build optimistic receipt and transaction const existingTransaction = allTransactionDrafts[`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${existingTransactionID ?? CONST.IOU.OPTIMISTIC_TRANSACTION_ID}`]; - const filename = getReceiptFilenameFromTransaction(existingTransaction); const isDistanceRequest = existingTransaction && isDistanceRequestTransactionUtils(existingTransaction); const isManualDistanceRequest = existingTransaction && isManualDistanceRequestTransactionUtils(existingTransaction); let optimisticTransaction = buildOptimisticTransaction({ @@ -4257,7 +4220,7 @@ function getTrackExpenseInformation(params: GetTrackExpenseInformationParams): T billable, pendingFields: isDistanceRequest && !isManualDistanceRequest ? {waypoints: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD} : undefined, reimbursable, - filename, + filename: existingTransaction?.receipt?.filename, attendees, }, }); @@ -7694,7 +7657,7 @@ function startSplitBill({ }, }); - const filename = getReceiptFilenameFromTransaction(splitTransaction); + const filename = splitTransaction.receipt?.filename; // Note: The created action must be optimistically generated before the IOU action so there's no chance that the created action appears after the IOU action in the chat const splitChatCreatedReportAction = buildOptimisticCreatedReportAction(currentUserEmailForIOUSplit); @@ -8170,7 +8133,7 @@ function completeSplitBill( billable: updatedTransaction?.billable, reimbursable: updatedTransaction?.reimbursable, source: CONST.IOU.TYPE.SPLIT, - filename: getReceiptFilenameFromTransaction(updatedTransaction), + filename: updatedTransaction?.receipt?.filename, }, }); oneOnOneIOUReport.transactionCount = (oneOnOneIOUReport.transactionCount ?? 0) + 1; diff --git a/src/libs/getReceiptFilenameFromTransaction.ts b/src/libs/getReceiptFilenameFromTransaction.ts deleted file mode 100644 index 03c4eb7db2d5..000000000000 --- a/src/libs/getReceiptFilenameFromTransaction.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type {Transaction} from '@src/types/onyx'; - -export default function getReceiptFilenameFromTransaction(transaction: Transaction | Partial | undefined): string | undefined { - // Use ||, not ?? since we want empty string to fallback to the legacy transaction.filename - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - return transaction?.receipt?.filename || transaction?.filename; -} diff --git a/src/libs/migrations/RenameReceiptFilename.ts b/src/libs/migrations/RenameReceiptFilename.ts index c7730411d0ef..9d3d6c67ff68 100644 --- a/src/libs/migrations/RenameReceiptFilename.ts +++ b/src/libs/migrations/RenameReceiptFilename.ts @@ -7,6 +7,8 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; type TransactionKey = `${typeof ONYXKEYS.COLLECTION.TRANSACTION}${string}`; +type OldTransaction = Transaction & {filename?: string}; + // This migration moves filename from the transaction root to transaction.receipt.filename to match the database structure. export default function () { return new Promise((resolve) => { @@ -15,7 +17,7 @@ export default function () { const connection = Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.TRANSACTION, waitForCollectionCallback: true, - callback: (transactions: OnyxCollection) => { + callback: (transactions: OnyxCollection) => { Onyx.disconnect(connection); if (!transactions || isEmptyObject(transactions)) { @@ -23,7 +25,7 @@ export default function () { return resolve(); } - const transactionsWithReceipt: Array> = Object.values(transactions).filter((transaction) => transaction?.filename); + const transactionsWithReceipt: Array> = Object.values(transactions).filter((transaction) => transaction?.filename); if (!transactionsWithReceipt?.length) { Log.info('[Migrate Onyx] Skipped migration RenameReceiptFilename because there were no transactions with the filename property'); return resolve(); @@ -43,7 +45,7 @@ export default function () { }; return acc; }, - {} as Record>, + {} as Record>, ); // eslint-disable-next-line rulesdir/prefer-actions-set-data diff --git a/src/pages/iou/SplitBillDetailsPage.tsx b/src/pages/iou/SplitBillDetailsPage.tsx index 0bd72a6db6fe..ec74cee6d9ae 100644 --- a/src/pages/iou/SplitBillDetailsPage.tsx +++ b/src/pages/iou/SplitBillDetailsPage.tsx @@ -16,7 +16,6 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import {completeSplitBill, setDraftSplitTransaction} from '@libs/actions/IOU'; import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SplitDetailsNavigatorParamList} from '@libs/Navigation/types'; @@ -134,7 +133,7 @@ function SplitBillDetailsPage({route, report, reportAction}: SplitBillDetailsPag isReadOnly={!isEditingSplitBill} shouldShowSmartScanFields receiptPath={transaction?.receipt?.source} - receiptFilename={getReceiptFilenameFromTransaction(transaction)} + receiptFilename={transaction?.receipt?.filename} isDistanceRequest={isDistanceRequest} isManualDistanceRequest={isManualDistanceRequest} isEditingSplitBill={isEditingSplitBill} diff --git a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx index 803ffed597ae..503fc65c384b 100644 --- a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx +++ b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx @@ -36,7 +36,6 @@ import {isLocalFile as isLocalFileFileUtils} from '@libs/fileDownload/FileUtils' import validateReceiptFile from '@libs/fileDownload/validateReceiptFile'; import getCurrentPosition from '@libs/getCurrentPosition'; import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import { isMovingTransactionFromTrackExpense as isMovingTransactionFromTrackExpenseIOUUtils, navigateToStartMoneyRequestStep, @@ -243,7 +242,7 @@ function IOURequestStepConfirmation({ const archivedReportsIdSet = useArchivedReportsIdSet(); const parentReportAction = useParentReportAction(viewTourTaskReport); - const receiptFilename = getReceiptFilenameFromTransaction(transaction); + const receiptFilename = transaction?.receipt?.filename; const receiptPath = transaction?.receipt?.source; const isEditingReceipt = hasReceipt(transaction); const customUnitRateID = getRateID(transaction) ?? ''; @@ -461,7 +460,7 @@ function IOURequestStepConfirmation({ Promise.all( transactions.map((item) => { - const itemReceiptFilename = getReceiptFilenameFromTransaction(item); + const itemReceiptFilename = item.receipt?.filename; const itemReceiptPath = item.receipt?.source; const itemReceiptType = item.receipt?.type; const isLocalFile = isLocalFileFileUtils(itemReceiptPath); diff --git a/src/pages/iou/request/step/IOURequestStepParticipants.tsx b/src/pages/iou/request/step/IOURequestStepParticipants.tsx index bb3776bfa0c5..5a0abd341183 100644 --- a/src/pages/iou/request/step/IOURequestStepParticipants.tsx +++ b/src/pages/iou/request/step/IOURequestStepParticipants.tsx @@ -13,7 +13,6 @@ import {READ_COMMANDS} from '@libs/API/types'; import {isMobileSafari as isMobileSafariBrowser} from '@libs/Browser'; import DistanceRequestUtils from '@libs/DistanceRequestUtils'; import getPlatform from '@libs/getPlatform'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import HttpUtils from '@libs/HttpUtils'; import {isMovingTransactionFromTrackExpense as isMovingTransactionFromTrackExpenseIOUUtils, navigateToStartMoneyRequestStep} from '@libs/IOUUtils'; import Navigation from '@libs/Navigation/Navigation'; @@ -151,11 +150,20 @@ function IOURequestStepParticipants({ if (isMovingTransactionFromTrackExpense) { return; } - const firstReceiptFilename = getReceiptFilenameFromTransaction(initialTransaction) ?? ''; + const firstReceiptFilename = initialTransaction?.receipt?.filename ?? ''; const firstReceiptPath = initialTransaction?.receipt?.source ?? ''; const firstReceiptType = initialTransaction?.receipt?.type ?? ''; navigateToStartStepIfScanFileCannotBeRead(firstReceiptFilename, firstReceiptPath, () => {}, iouRequestType, iouType, initialTransactionID, reportID, firstReceiptType); - }, [iouRequestType, iouType, initialTransaction, initialTransactionID, reportID, isMovingTransactionFromTrackExpense]); + }, [ + iouRequestType, + iouType, + initialTransaction?.receipt?.filename, + initialTransaction?.receipt?.source, + initialTransaction?.receipt?.type, + initialTransactionID, + reportID, + isMovingTransactionFromTrackExpense, + ]); // When the step opens, reset the draft transaction's custom unit if moved from Track Expense. // This resets the custom unit to the p2p rate when the destination workspace changes, diff --git a/src/pages/iou/request/step/IOURequestStepScan/index.tsx b/src/pages/iou/request/step/IOURequestStepScan/index.tsx index d2b8387f59e1..c252af4be094 100644 --- a/src/pages/iou/request/step/IOURequestStepScan/index.tsx +++ b/src/pages/iou/request/step/IOURequestStepScan/index.tsx @@ -42,7 +42,6 @@ import {dismissProductTraining} from '@libs/actions/Welcome'; import {isMobile, isMobileWebKit} from '@libs/Browser'; import {base64ToFile, isLocalFile as isLocalFileFileUtils} from '@libs/fileDownload/FileUtils'; import getCurrentPosition from '@libs/getCurrentPosition'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import {navigateToParticipantPage} from '@libs/IOUUtils'; import Log from '@libs/Log'; import Navigation from '@libs/Navigation/Navigation'; @@ -258,7 +257,7 @@ function IOURequestStepScan({ isAllScanFilesCanBeRead = false; }; - return checkIfScanFileCanBeRead(getReceiptFilenameFromTransaction(item), itemReceiptPath, item.receipt?.type, () => {}, onFailure); + return checkIfScanFileCanBeRead(item.receipt?.filename, itemReceiptPath, item.receipt?.type, () => {}, onFailure); }), ).then(() => { if (isAllScanFilesCanBeRead) { diff --git a/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx b/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx index 55d1a2c01a48..aed672aec883 100644 --- a/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx +++ b/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx @@ -9,7 +9,6 @@ import useNetwork from '@hooks/useNetwork'; import useOnyx from '@hooks/useOnyx'; import {detachReceipt, navigateToStartStepIfScanFileCannotBeRead} from '@libs/actions/IOU'; import {openReport} from '@libs/actions/Report'; -import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction'; import Navigation from '@libs/Navigation/Navigation'; import {getThumbnailAndImageURIs} from '@libs/ReceiptUtils'; import {getReportAction, isTrackExpenseAction} from '@libs/ReportActionsUtils'; @@ -98,7 +97,7 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre } const requestType = getRequestType(transaction); - const receiptFilename = getReceiptFilenameFromTransaction(transaction); + const receiptFilename = transaction?.receipt?.filename; const receiptType = transaction?.receipt?.type; navigateToStartStepIfScanFileCannotBeRead( receiptFilename, @@ -134,7 +133,7 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre ? !transaction : moneyRequestReportID !== transaction?.reportID; - const originalFileName = isDraftTransaction ? getReceiptFilenameFromTransaction(transaction) : receiptURIs?.filename; + const originalFileName = isDraftTransaction ? transaction?.receipt?.filename : receiptURIs?.filename; const headerTitle = translate('common.receipt'); /** diff --git a/src/types/onyx/SearchResults.ts b/src/types/onyx/SearchResults.ts index 8dcdb9383ac1..d05a47699494 100644 --- a/src/types/onyx/SearchResults.ts +++ b/src/types/onyx/SearchResults.ts @@ -236,13 +236,6 @@ type SearchTransaction = { /** The ID of the report the transaction is associated with */ reportID: string; - /** - * @deprecated - Use getReceiptFilenameFromTransaction to get filename - * - * The name of the file used for a receipt - */ - filename?: string; - /** The MCC Group associated with the transaction */ mccGroup?: ValueOf; diff --git a/src/types/onyx/Transaction.ts b/src/types/onyx/Transaction.ts index 28a11ac511de..c844f47f60b3 100644 --- a/src/types/onyx/Transaction.ts +++ b/src/types/onyx/Transaction.ts @@ -439,13 +439,6 @@ type Transaction = OnyxCommon.OnyxValueWithOfflineFeedback< /** Server side errors keyed by microtime */ errorFields?: OnyxCommon.ErrorFields; - /** - * @deprecated - Use getReceiptFilenameFromTransaction to get filename - * - * The name of the file used for a receipt (formerly receiptFilename) - */ - filename?: string; - /** The transaction converted amount in `groupCurrency` currency */ groupAmount?: number;