Skip to content

Commit 6593ea9

Browse files
committed
chore: refactor code
1 parent 7792bbe commit 6593ea9

3 files changed

Lines changed: 21 additions & 11 deletions

File tree

src/components/MoneyRequestConfirmationListFooter.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import usePrevious from '@hooks/usePrevious';
1212
import useThemeStyles from '@hooks/useThemeStyles';
1313
import {convertToDisplayString} from '@libs/CurrencyUtils';
1414
import DistanceRequestUtils from '@libs/DistanceRequestUtils';
15-
import {isMovingTransactionFromTrackExpense} from '@libs/IOUUtils';
15+
import {shouldShowReceiptEmptyState} from '@libs/IOUUtils';
1616
import Navigation from '@libs/Navigation/Navigation';
1717
import {getDestinationForDisplay, getSubratesFields, getSubratesForDisplay, getTimeDifferenceIntervals, getTimeForDisplay} from '@libs/PerDiemRequestUtils';
18-
import {canSendInvoice, getPerDiemCustomUnit, isPaidGroupPolicy} from '@libs/PolicyUtils';
18+
import {canSendInvoice, getPerDiemCustomUnit} from '@libs/PolicyUtils';
1919
import type {ThumbnailAndImageURI} from '@libs/ReceiptUtils';
2020
import {getThumbnailAndImageURIs} from '@libs/ReceiptUtils';
2121
import {
@@ -336,8 +336,7 @@ function MoneyRequestConfirmationListFooter({
336336
// - Show for submit or track expense types
337337
// - Hide for per diem requests
338338
// - Hide when submitting a track expense to a non-paid group policy (personal users)
339-
const shouldShowReceiptEmptyState =
340-
(iouType === CONST.IOU.TYPE.SUBMIT || iouType === CONST.IOU.TYPE.TRACK) && !isPerDiemRequest && (!isMovingTransactionFromTrackExpense(action) || isPaidGroupPolicy(policy));
339+
const showReceiptEmptyState = shouldShowReceiptEmptyState(iouType, action, policy, isPerDiemRequest);
341340
// The per diem custom unit
342341
const perDiemCustomUnit = getPerDiemCustomUnit(policy);
343342
const {
@@ -941,10 +940,10 @@ function MoneyRequestConfirmationListFooter({
941940
</>
942941
)}
943942
{!shouldShowMap && (
944-
<View style={!hasReceiptImageOrThumbnail && !shouldShowReceiptEmptyState ? undefined : styles.mv3}>
943+
<View style={!hasReceiptImageOrThumbnail && !showReceiptEmptyState ? undefined : styles.mv3}>
945944
{hasReceiptImageOrThumbnail
946945
? receiptThumbnailContent
947-
: shouldShowReceiptEmptyState && (
946+
: showReceiptEmptyState && (
948947
<ReceiptEmptyState
949948
onPress={() => {
950949
if (!transactionID) {

src/libs/IOUUtils.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import type {ValueOf} from 'type-fest';
22
import type {IOUAction, IOUType} from '@src/CONST';
33
import CONST from '@src/CONST';
44
import ROUTES from '@src/ROUTES';
5-
import type {OnyxInputOrEntry, PersonalDetails, Report} from '@src/types/onyx';
5+
import type {OnyxInputOrEntry, PersonalDetails, Policy, Report} from '@src/types/onyx';
66
import type {Attendee} from '@src/types/onyx/IOU';
7+
import type {SearchPolicy} from '@src/types/onyx/SearchResults';
78
import type {IOURequestType} from './actions/IOU';
89
import {getCurrencyUnit} from './CurrencyUtils';
910
import Navigation from './Navigation/Navigation';
1011
import Performance from './Performance';
12+
import {isPaidGroupPolicy} from './PolicyUtils';
1113
import {getReportTransactions} from './ReportUtils';
1214
import {getCurrency, getTagArrayFromName} from './TransactionUtils';
1315

@@ -183,6 +185,10 @@ function isMovingTransactionFromTrackExpense(action?: IOUAction) {
183185
return false;
184186
}
185187

188+
function shouldShowReceiptEmptyState(iouType: IOUType, action: IOUAction, policy: OnyxInputOrEntry<Policy> | SearchPolicy, isPerDiemRequest: boolean) {
189+
return (iouType === CONST.IOU.TYPE.SUBMIT || iouType === CONST.IOU.TYPE.TRACK) && !isPerDiemRequest && (!isMovingTransactionFromTrackExpense(action) || isPaidGroupPolicy(policy));
190+
}
191+
186192
function shouldUseTransactionDraft(action: IOUAction | undefined, type?: IOUType) {
187193
return action === CONST.IOU.ACTION.CREATE || type === CONST.IOU.TYPE.SPLIT_EXPENSE || isMovingTransactionFromTrackExpense(action);
188194
}
@@ -216,4 +222,5 @@ export {
216222
updateIOUOwnerAndTotal,
217223
formatCurrentUserToAttendee,
218224
navigateToParticipantPage,
225+
shouldShowReceiptEmptyState,
219226
};

src/pages/iou/request/step/IOURequestStepConfirmation.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ import {canUseTouchScreen} from '@libs/DeviceCapabilities';
2828
import {isLocalFile as isLocalFileFileUtils} from '@libs/fileDownload/FileUtils';
2929
import getCurrentPosition from '@libs/getCurrentPosition';
3030
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
31-
import {isMovingTransactionFromTrackExpense as isMovingTransactionFromTrackExpenseIOUUtils, navigateToStartMoneyRequestStep, shouldUseTransactionDraft} from '@libs/IOUUtils';
31+
import {
32+
isMovingTransactionFromTrackExpense as isMovingTransactionFromTrackExpenseIOUUtils,
33+
navigateToStartMoneyRequestStep,
34+
shouldShowReceiptEmptyState,
35+
shouldUseTransactionDraft,
36+
} from '@libs/IOUUtils';
3237
import Log from '@libs/Log';
3338
import navigateAfterInteraction from '@libs/Navigation/navigateAfterInteraction';
3439
import Navigation from '@libs/Navigation/Navigation';
@@ -1026,8 +1031,7 @@ function IOURequestStepConfirmation({
10261031
showPreviousTransaction();
10271032
};
10281033

1029-
const shouldEnableDragAndDrop =
1030-
(iouType === CONST.IOU.TYPE.SUBMIT || iouType === CONST.IOU.TYPE.TRACK) && !isPerDiemRequest && (!isMovingTransactionFromTrackExpenseIOUUtils(action) || isPaidGroupPolicy(policy));
1034+
const showReceiptEmptyState = shouldShowReceiptEmptyState(iouType, action, policy, isPerDiemRequest);
10311035

10321036
const shouldShowSmartScanFields =
10331037
!!transaction?.receipt?.isTestDriveReceipt || (isMovingTransactionFromTrackExpense ? transaction?.amount !== 0 : requestType !== CONST.IOU.REQUEST_TYPE.SCAN);
@@ -1040,7 +1044,7 @@ function IOURequestStepConfirmation({
10401044
>
10411045
<DragAndDropProvider
10421046
setIsDraggingOver={setIsDraggingOver}
1043-
isDisabled={!shouldEnableDragAndDrop}
1047+
isDisabled={!showReceiptEmptyState}
10441048
>
10451049
<View style={styles.flex1}>
10461050
<HeaderWithBackButton

0 commit comments

Comments
 (0)