Skip to content

Commit 8f699a9

Browse files
authored
Merge pull request Expensify#76414 from shubham1206agra/migrate-filename-4
Migration: stop setting filename field from FE side in transaction
2 parents d92f4f3 + 1bf89af commit 8f699a9

13 files changed

Lines changed: 19 additions & 72 deletions

File tree

src/hooks/useRestartOnReceiptFailure.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type {OnyxEntry} from 'react-native-onyx';
33
import {checkIfScanFileCanBeRead, setMoneyRequestReceipt} from '@libs/actions/IOU';
44
import {removeDraftTransactions} from '@libs/actions/TransactionEdit';
55
import {isLocalFile as isLocalFileUtil} from '@libs/fileDownload/FileUtils';
6+
import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction';
67
import {navigateToStartMoneyRequestStep} from '@libs/IOUUtils';
78
import {getRequestType} from '@libs/TransactionUtils';
89
import type {IOUAction, IOUType} from '@src/CONST';
@@ -20,7 +21,7 @@ const useRestartOnReceiptFailure = (transaction: OnyxEntry<Transaction>, reportI
2021
if (!transaction || action !== CONST.IOU.ACTION.CREATE) {
2122
return;
2223
}
23-
const itemReceiptFilename = transaction.filename;
24+
const itemReceiptFilename = getReceiptFilenameFromTransaction(transaction);
2425
const itemReceiptPath = transaction.receipt?.source;
2526
const itemReceiptType = transaction.receipt?.type;
2627
const isLocalFile = isLocalFileUtil(itemReceiptPath);

src/libs/MergeTransactionUtils.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import CONST from '@src/CONST';
66
import type {TranslationPaths} from '@src/languages/types';
77
import type {MergeTransaction, Transaction} from '@src/types/onyx';
88
import type {Attendee} from '@src/types/onyx/IOU';
9-
import type {Receipt} from '@src/types/onyx/Transaction';
109
import SafeString from '@src/utils/SafeString';
1110
import {convertToDisplayString} from './CurrencyUtils';
1211
import getReceiptFilenameFromTransaction from './getReceiptFilenameFromTransaction';
@@ -51,14 +50,6 @@ const MERGE_FIELD_TRANSLATION_KEYS = {
5150
reportID: 'common.report',
5251
} as const;
5352

54-
// Get the filename from the receipt
55-
function getReceiptFileName(receipt?: Receipt) {
56-
if (typeof receipt?.source === 'string') {
57-
return receipt?.source?.split('/')?.pop();
58-
}
59-
return `${receipt?.filename ?? receipt?.source}`;
60-
}
61-
6253
function getMergeFieldErrorText(translate: LocaleContextProps['translate'], mergeField: MergeFieldData) {
6354
if (mergeField.field === 'attendees') {
6455
return translate('transactionMerge.detailsPage.pleaseSelectAttendees');
@@ -347,7 +338,6 @@ function buildMergedTransactionData(targetTransaction: OnyxEntry<Transaction>, m
347338
},
348339
reimbursable: mergeTransaction.reimbursable,
349340
billable: mergeTransaction.billable,
350-
filename: getReceiptFileName(mergeTransaction.receipt),
351341
receipt: mergeTransaction.receipt,
352342
created: mergeTransaction.created,
353343
modifiedCreated: mergeTransaction.created,
@@ -517,7 +507,6 @@ export {
517507
isEmptyMergeValue,
518508
fillMissingReceiptSource,
519509
getTransactionThreadReportID,
520-
getReceiptFileName,
521510
getDisplayValue,
522511
buildMergeFieldsData,
523512
getReportIDForExpense,

src/libs/TransactionUtils/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,6 @@ function buildOptimisticTransaction(params: BuildOptimisticTransactionParams): T
395395
? {source: receipt.source, filename: receipt?.name ?? filename, state: receipt.state ?? CONST.IOU.RECEIPT_STATE.SCAN_READY, isTestDriveReceipt: receipt.isTestDriveReceipt}
396396
: undefined,
397397
hasEReceipt: existingTransaction?.hasEReceipt,
398-
filename: (receipt?.source ? (receipt?.name ?? filename) : filename).toString(),
399398
category,
400399
tag,
401400
taxCode,

src/libs/actions/IOU.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,6 @@ function setMoneyRequestReceipt(transactionID: string, source: string, filename:
12961296
Onyx.merge(`${isDraft ? ONYXKEYS.COLLECTION.TRANSACTION_DRAFT : ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, {
12971297
// isTestReceipt = false and isTestDriveReceipt = false are being converted to null because we don't really need to store it in Onyx in those cases
12981298
receipt: {source, filename, type: type ?? '', isTestReceipt: isTestReceipt ? true : null, isTestDriveReceipt: isTestDriveReceipt ? true : null},
1299-
filename,
13001299
});
13011300
}
13021301

@@ -11925,17 +11924,16 @@ function detachReceipt(transactionID: string | undefined, transactionPolicyCateg
1192511924
const newTransaction = transaction
1192611925
? {
1192711926
...transaction,
11928-
filename: '',
1192911927
receipt: {},
1193011928
}
1193111929
: null;
1193211930

1193311931
const optimisticData: OnyxUpdate[] = [
1193411932
{
11935-
onyxMethod: Onyx.METHOD.SET,
11933+
onyxMethod: Onyx.METHOD.MERGE,
1193611934
key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`,
1193711935
value: {
11938-
...newTransaction,
11936+
receipt: null,
1193911937
pendingFields: {
1194011938
receipt: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE,
1194111939
},
@@ -12050,7 +12048,7 @@ function replaceReceipt({transactionID, file, source, transactionPolicyCategorie
1205012048
state: CONST.IOU.RECEIPT_STATE.OPEN,
1205112049
filename: file.name,
1205212050
};
12053-
const newTransaction = transaction && {...transaction, receipt: receiptOptimistic, filename: file.name};
12051+
const newTransaction = transaction && {...transaction, receipt: receiptOptimistic};
1205412052
const retryParams: ReplaceReceipt = {transactionID, file: undefined, source, transactionPolicyCategories};
1205512053
const currentSearchQueryJSON = getCurrentSearchQueryJSON();
1205612054

@@ -12060,7 +12058,6 @@ function replaceReceipt({transactionID, file, source, transactionPolicyCategorie
1206012058
key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`,
1206112059
value: {
1206212060
receipt: receiptOptimistic,
12063-
filename: file.name,
1206412061
pendingFields: {
1206512062
receipt: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE,
1206612063
},
@@ -12087,7 +12084,6 @@ function replaceReceipt({transactionID, file, source, transactionPolicyCategorie
1208712084
key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`,
1208812085
value: {
1208912086
receipt: !isEmptyObject(oldReceipt) ? oldReceipt : null,
12090-
filename: getReceiptFilenameFromTransaction(transaction),
1209112087
errors: getReceiptError(receiptOptimistic, file.name, undefined, undefined, CONST.IOU.ACTION_PARAMS.REPLACE_RECEIPT, retryParams),
1209212088
pendingFields: {
1209312089
receipt: null,
@@ -12124,7 +12120,6 @@ function replaceReceipt({transactionID, file, source, transactionPolicyCategorie
1212412120
data: {
1212512121
[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`]: {
1212612122
receipt: receiptOptimistic,
12127-
filename: file.name,
1212812123
},
1212912124
},
1213012125
},
@@ -12138,7 +12133,6 @@ function replaceReceipt({transactionID, file, source, transactionPolicyCategorie
1213812133
data: {
1213912134
[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`]: {
1214012135
receipt: !isEmptyObject(oldReceipt) ? oldReceipt : null,
12141-
filename: getReceiptFilenameFromTransaction(transaction),
1214212136
},
1214312137
},
1214412138
},

src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import useOnyx from '@hooks/useOnyx';
1010
import {detachReceipt, navigateToStartStepIfScanFileCannotBeRead} from '@libs/actions/IOU';
1111
import {openReport} from '@libs/actions/Report';
1212
import getReceiptFilenameFromTransaction from '@libs/getReceiptFilenameFromTransaction';
13-
import {getReceiptFileName} from '@libs/MergeTransactionUtils';
1413
import Navigation from '@libs/Navigation/Navigation';
1514
import {getThumbnailAndImageURIs} from '@libs/ReceiptUtils';
1615
import {getReportAction, isTrackExpenseAction} from '@libs/ReportActionsUtils';
@@ -56,7 +55,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
5655
return {
5756
...transactionMain,
5857
receipt: mergeTransaction.receipt,
59-
filename: getReceiptFileName(mergeTransaction.receipt),
6058
};
6159
}
6260

src/stories/objects/Transaction.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ const transaction: Transaction & {mcc: string; modifiedMCC: string} = {
1515
},
1616
created: '2025-02-18',
1717
currency: 'PLN',
18-
filename: '',
1918
hasEReceipt: false,
2019
inserted: '2025-02-18 14:23:29',
2120
managedCard: false,

src/types/onyx/SearchResults.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,11 @@ type SearchTransaction = {
236236
/** The ID of the report the transaction is associated with */
237237
reportID: string;
238238

239-
/** The name of the file used for a receipt */
239+
/**
240+
* @deprecated - Use getReceiptFilenameFromTransaction to get filename
241+
*
242+
* The name of the file used for a receipt
243+
*/
240244
filename?: string;
241245

242246
/** The MCC Group associated with the transaction */

src/types/onyx/Transaction.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,11 @@ type Transaction = OnyxCommon.OnyxValueWithOfflineFeedback<
439439
/** Server side errors keyed by microtime */
440440
errorFields?: OnyxCommon.ErrorFields;
441441

442-
/** The name of the file used for a receipt (formerly receiptFilename) */
442+
/**
443+
* @deprecated - Use getReceiptFilenameFromTransaction to get filename
444+
*
445+
* The name of the file used for a receipt (formerly receiptFilename)
446+
*/
443447
filename?: string;
444448

445449
/** The transaction converted amount in `groupCurrency` currency */

tests/ui/components/IOURequestStepConfirmationPageTest.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,8 @@ describe('IOURequestStepConfirmationPageTest', () => {
260260
await act(async () => {
261261
await Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}1`, {
262262
...DEFAULT_SPLIT_TRANSACTION,
263-
filename: 'receipt1.jpg',
264263
iouRequestType: 'scan',
265-
receipt: {source: 'path/to/receipt1.jpg', type: ''},
264+
receipt: {filename: 'receipt1.jpg', source: 'path/to/receipt1.jpg', type: ''},
266265
});
267266
});
268267

@@ -300,19 +299,17 @@ describe('IOURequestStepConfirmationPageTest', () => {
300299
await act(async () => {
301300
await Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}1`, {
302301
...DEFAULT_SPLIT_TRANSACTION,
303-
filename: 'receipt1.jpg',
304302
iouRequestType: 'scan',
305-
receipt: {source: 'path/to/receipt1.jpg', type: ''},
303+
receipt: {filename: 'receipt1.jpg', source: 'path/to/receipt1.jpg', type: ''},
306304
transactionID: '1',
307305
});
308306
});
309307

310308
await act(async () => {
311309
await Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}2`, {
312310
...DEFAULT_SPLIT_TRANSACTION,
313-
filename: 'receipt2.jpg',
314311
iouRequestType: 'scan',
315-
receipt: {source: 'path/to/receipt2.jpg', type: ''},
312+
receipt: {filename: 'receipt2.jpg', source: 'path/to/receipt2.jpg', type: ''},
316313
transactionID: '2',
317314
});
318315
});

tests/unit/AddUnreportedExpenseTest.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ function generateTransaction(values: Partial<Transaction> = {}): Transaction {
1515
tag: '',
1616
billable: false,
1717
receipt: {},
18-
filename: '',
1918
taxCode: '',
2019
taxAmount: 0,
2120
pendingAction: undefined,

0 commit comments

Comments
 (0)