Skip to content

Commit fbe9617

Browse files
committed
fix: creating second scan expense unexpected error is shown
1 parent cd8d0bd commit fbe9617

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type {OnyxEntry} from 'react-native-onyx';
44
import type {BaseTextInputRef} from '@components/TextInput/BaseTextInput/types';
55
import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalDetails';
66
import type {WithCurrentUserPersonalDetailsProps} from '@components/withCurrentUserPersonalDetails';
7+
import useCanEditStep from '@hooks/useCanEditStep';
78
import useLocalize from '@hooks/useLocalize';
89
import useOnyx from '@hooks/useOnyx';
910
import {createDraftTransaction, removeDraftTransaction} from '@libs/actions/TransactionEdit';
@@ -91,6 +92,7 @@ function IOURequestStepAmount({
9192
const {amount: transactionAmount} = getTransactionDetails(currentTransaction) ?? {amount: 0};
9293
const {currency: originalCurrency} = getTransactionDetails(isEditing && !isEmptyObject(draftTransaction) ? draftTransaction : transaction) ?? {currency: CONST.CURRENCY.USD};
9394
const currency = isValidCurrencyCode(selectedCurrency) ? selectedCurrency : originalCurrency;
95+
const [canEditAmount] = useCanEditStep(action, iouType, report, CONST.EDIT_REQUEST_FIELD.AMOUNT);
9496

9597
// For quick button actions, we'll skip the confirmation page unless the report is archived or this is a workspace request, as
9698
// the user will have to add a merchant.
@@ -312,6 +314,7 @@ function IOURequestStepAmount({
312314
testID={IOURequestStepAmount.displayName}
313315
shouldShowWrapper={!!backTo || isEditing}
314316
includeSafeAreaPaddingBottom
317+
shouldShowNotFoundPage={!canEditAmount}
315318
>
316319
<MoneyRequestAmountForm
317320
isEditing={!!backTo || isEditing}

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import CONST from '@src/CONST';
1818
import ONYXKEYS from '@src/ONYXKEYS';
1919
import type SCREENS from '@src/SCREENS';
2020
import type * as OnyxTypes from '@src/types/onyx';
21+
import useCanEditStep from '@hooks/useCanEditStep';
2122
import StepScreenWrapper from './StepScreenWrapper';
2223
import withFullTransactionOrNotFound from './withFullTransactionOrNotFound';
2324
import type {WithWritableReportOrNotFoundProps} from './withWritableReportOrNotFound';
@@ -32,7 +33,7 @@ function IOURequestStepDistanceRate({
3233
report,
3334
reportDraft,
3435
route: {
35-
params: {action, reportID, backTo, transactionID},
36+
params: {action, reportID, backTo, transactionID, iouType},
3637
},
3738
transaction,
3839
}: IOURequestStepDistanceRateProps) {
@@ -56,7 +57,7 @@ function IOURequestStepDistanceRate({
5657
const transactionCurrency = getCurrency(transaction);
5758

5859
const rates = DistanceRequestUtils.getMileageRates(policy, false, currentRateID);
59-
60+
const [canEditDistanceRate] = useCanEditStep(action, iouType, report, CONST.EDIT_REQUEST_FIELD.DISTANCE_RATE);
6061
const navigateBack = () => {
6162
Navigation.goBack(backTo);
6263
};
@@ -110,6 +111,7 @@ function IOURequestStepDistanceRate({
110111
onBackButtonPress={navigateBack}
111112
shouldShowWrapper
112113
testID={IOURequestStepDistanceRate.displayName}
114+
shouldShowNotFoundPage={!canEditDistanceRate}
113115
>
114116
<Text style={[styles.mh5, styles.mv4]}>{translate('iou.chooseARate')}</Text>
115117

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import ONYXKEYS from '@src/ONYXKEYS';
1818
import type SCREENS from '@src/SCREENS';
1919
import INPUT_IDS from '@src/types/form/MoneyRequestMerchantForm';
2020
import {isEmptyObject} from '@src/types/utils/EmptyObject';
21+
import useCanEditStep from '@hooks/useCanEditStep';
2122
import DiscardChangesConfirmation from './DiscardChangesConfirmation';
2223
import StepScreenWrapper from './StepScreenWrapper';
2324
import type {WithFullTransactionOrNotFoundProps} from './withFullTransactionOrNotFound';
@@ -43,7 +44,7 @@ function IOURequestStepMerchant({
4344
const {translate} = useLocalize();
4445
const {inputCallbackRef} = useAutoFocusInput();
4546
const isEditing = action === CONST.IOU.ACTION.EDIT;
46-
47+
const [canEditMerchant] = useCanEditStep(action, iouType, report, CONST.EDIT_REQUEST_FIELD.MERCHANT);
4748
// In the split flow, when editing we use SPLIT_TRANSACTION_DRAFT to save draft value
4849
const isEditingSplitBill = iouType === CONST.IOU.TYPE.SPLIT && isEditing;
4950
const merchant = getTransactionDetails(isEditingSplitBill && !isEmptyObject(splitDraftTransaction) ? splitDraftTransaction : transaction)?.merchant;
@@ -114,6 +115,7 @@ function IOURequestStepMerchant({
114115
onBackButtonPress={navigateBack}
115116
shouldShowWrapper
116117
testID={IOURequestStepMerchant.displayName}
118+
shouldShowNotFoundPage={!canEditMerchant}
117119
>
118120
<FormProvider
119121
style={[styles.flexGrow1, styles.ph5]}

0 commit comments

Comments
 (0)