Skip to content

Commit 00a1025

Browse files
Merge pull request #91615 from shubham1206agra/migrate-getRate-1
Refactor: migrate getRate to use usePersonalPolicy hook (part 1)
2 parents bc242c4 + e91f434 commit 00a1025

8 files changed

Lines changed: 45 additions & 5 deletions

File tree

src/components/GPSTripStateChecker/useUpdateGpsNotification/index.ios.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails'
33
import useDefaultExpensePolicy from '@hooks/useDefaultExpensePolicy';
44
import useLocalize from '@hooks/useLocalize';
55
import useOnyx from '@hooks/useOnyx';
6+
import usePersonalPolicy from '@hooks/usePersonalPolicy';
67
import DistanceRequestUtils from '@libs/DistanceRequestUtils';
78
import shouldUseDefaultExpensePolicyUtil from '@libs/shouldUseDefaultExpensePolicy';
89
import {shouldUpdateGpsNotificationUnit, updateGpsTripNotificationLanguage, updateGpsTripNotificationUnit} from '@pages/iou/request/step/IOURequestStepDistanceGPS/GPSNotifications';
@@ -43,6 +44,7 @@ function useUpdateGpsNotificationOnUnitChange() {
4344
const [transaction] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${CONST.IOU.OPTIMISTIC_TRANSACTION_ID}`);
4445

4546
const defaultExpensePolicy = useDefaultExpensePolicy();
47+
const personalPolicy = usePersonalPolicy();
4648
const shouldUseDefaultExpensePolicy = shouldUseDefaultExpensePolicyUtil(
4749
CONST.IOU.TYPE.CREATE,
4850
defaultExpensePolicy,
@@ -52,7 +54,11 @@ function useUpdateGpsNotificationOnUnitChange() {
5254
currentUserPersonalDetails.accountID,
5355
);
5456

55-
const unit = DistanceRequestUtils.getRate({transaction, policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : undefined}).unit;
57+
const unit = DistanceRequestUtils.getRate({
58+
transaction,
59+
policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : undefined,
60+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
61+
}).unit;
5662

5763
useEffect(() => {
5864
if (!shouldUpdateGpsNotificationUnit()) {

src/components/MoneyRequestConfirmationList/hooks/useDistanceRequestState.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type {OnyxEntry} from 'react-native-onyx';
22
import useOnyx from '@hooks/useOnyx';
3+
import usePersonalPolicy from '@hooks/usePersonalPolicy';
34
import usePrevious from '@hooks/usePrevious';
45
import DistanceRequestUtils from '@libs/DistanceRequestUtils';
56
import {getDistanceInMeters, hasRoute as hasRouteUtil} from '@libs/TransactionUtils';
@@ -68,12 +69,15 @@ function useDistanceRequestState({
6869
const defaultMileageRate = defaultMileageRateDraft ?? defaultMileageRateReal;
6970
const defaultRate = defaultMileageRate?.customUnitRateID;
7071

72+
const personalPolicy = usePersonalPolicy();
73+
7174
const mileageRate = DistanceRequestUtils.getRate({
7275
transaction,
7376
policy,
7477
...(isMovingTransactionFromTrackExpense && {policyForMovingExpenses}),
7578
isMovingTransactionFromTrackExpense,
7679
policyDraft,
80+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
7781
});
7882
const distanceRate = mileageRate.rate;
7983
const distanceUnit = mileageRate.unit;

src/components/ReportActionItem/MoneyRequestView.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import useLocalize from '@hooks/useLocalize';
3131
import useNetwork from '@hooks/useNetwork';
3232
import useOnyx from '@hooks/useOnyx';
3333
import usePermissions from '@hooks/usePermissions';
34+
import usePersonalPolicy from '@hooks/usePersonalPolicy';
3435
import usePolicyForMovingExpenses from '@hooks/usePolicyForMovingExpenses';
3536
import useReportAttributes from '@hooks/useReportAttributes';
3637
import useReportIsArchived from '@hooks/useReportIsArchived';
@@ -206,6 +207,7 @@ function MoneyRequestView({
206207
transaction = updatedTransaction;
207208
}
208209
const isExpenseUnreported = isExpenseUnreportedTransactionUtils(transaction);
210+
const personalPolicy = usePersonalPolicy();
209211
const {policyForMovingExpensesID, policyForMovingExpenses, shouldSelectPolicy} = usePolicyForMovingExpenses();
210212
const isTimeRequest = isTimeRequestTransactionUtils(transaction);
211213

@@ -467,7 +469,15 @@ function MoneyRequestView({
467469
let amountDescription = `${translate('iou.amount')}`;
468470
let dateDescription = `${translate('common.date')}`;
469471

470-
const {unit, rate, name: rateName} = DistanceRequestUtils.getRate({transaction: updatedTransaction ?? transaction, policy: distanceOriginalPolicy ?? policy});
472+
const {
473+
unit,
474+
rate,
475+
name: rateName,
476+
} = DistanceRequestUtils.getRate({
477+
transaction: updatedTransaction ?? transaction,
478+
policy: distanceOriginalPolicy ?? policy,
479+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
480+
});
471481
const distance = getDistanceInMeters(transactionBackup ?? updatedTransaction ?? transaction, unit);
472482
const currency = transactionCurrency ?? CONST.CURRENCY.USD;
473483
const hasRequiredCompanyCardViolation = transactionViolations.some((violation) => violation.name === CONST.VIOLATIONS.COMPANY_CARD_REQUIRED);

src/pages/iou/SplitExpenseEditPage.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import useEnvironment from '@hooks/useEnvironment';
1515
import useLocalize from '@hooks/useLocalize';
1616
import useNetwork from '@hooks/useNetwork';
1717
import useOnyx from '@hooks/useOnyx';
18+
import usePersonalPolicy from '@hooks/usePersonalPolicy';
1819
import usePolicyForMovingExpenses from '@hooks/usePolicyForMovingExpenses';
1920
import usePrevious from '@hooks/usePrevious';
2021
import useReportAttributes from '@hooks/useReportAttributes';
@@ -74,6 +75,7 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
7475
const parentReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${report?.parentReportID}`];
7576
const currentReport = report ?? currentSearchResults?.data?.[`${ONYXKEYS.COLLECTION.REPORT}${getNonEmptyStringOnyxID(reportID)}`];
7677

78+
const personalPolicy = usePersonalPolicy();
7779
const effectivePolicy = useSplitEffectivePolicy(currentReport, splitExpenseDraftTransaction, transaction);
7880
const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY);
7981

@@ -161,7 +163,15 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
161163
const isDistance = isDistanceRequest(splitExpenseDraftTransaction);
162164
const isManualDistance = isManualDistanceRequest(splitExpenseDraftTransaction);
163165
const isOdometerDistance = isOdometerDistanceRequest(splitExpenseDraftTransaction);
164-
const {unit, rate, name: rateName} = DistanceRequestUtils.getRate({transaction: splitExpenseDraftTransaction, policy: effectivePolicy});
166+
const {
167+
unit,
168+
rate,
169+
name: rateName,
170+
} = DistanceRequestUtils.getRate({
171+
transaction: splitExpenseDraftTransaction,
172+
policy: effectivePolicy,
173+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
174+
});
165175
const distance = getDistanceInMeters(splitExpenseDraftTransaction, unit);
166176
const currentAmount =
167177
isDistance && distance && rate

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ function IOURequestStepDistance({
166166
transaction: currentTransaction,
167167
policy,
168168
useTransactionDistanceUnit: false,
169+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
169170
});
170171
const distanceUnit = mileageRate.unit;
171172
const distanceRate = mileageRate.rate ?? 0;

src/pages/iou/request/step/IOURequestStepDistanceGPS/index.native.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ function IOURequestStepDistanceGPS({
8989

9090
const shouldUseDefaultExpensePolicy = shouldUseDefaultExpensePolicyUtil(iouType, defaultExpensePolicy, amountOwed, userBillingGracePeriodEnds, ownerBillingGracePeriodEnd);
9191

92-
const unit = DistanceRequestUtils.getRate({transaction, policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : policy}).unit;
92+
const unit = DistanceRequestUtils.getRate({
93+
transaction,
94+
policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : policy,
95+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
96+
}).unit;
9397

9498
const shouldSkipConfirmation = !skipConfirmation || !report?.reportID ? false : !(isArchived || isPolicyExpenseChatUtils(report));
9599

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ function IOURequestStepDistanceManual({
119119
transaction,
120120
policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : policy,
121121
useTransactionDistanceUnit: isEditing,
122+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
122123
});
123124
const unit = mileageRate.unit;
124125
const rate = mileageRate.rate ?? 0;

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,11 @@ function IOURequestStepDistanceOdometer({
137137
[iouType, defaultExpensePolicy, amountOwed, userBillingGracePeriodEnds, ownerBillingGracePeriodEnd],
138138
);
139139

140-
const mileageRate = DistanceRequestUtils.getRate({transaction: currentTransaction, policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : policy});
140+
const mileageRate = DistanceRequestUtils.getRate({
141+
transaction: currentTransaction,
142+
policy: shouldUseDefaultExpensePolicy ? defaultExpensePolicy : policy,
143+
personalPolicyOutputCurrency: personalPolicy?.outputCurrency,
144+
});
141145
const unit = mileageRate.unit;
142146
const rate = mileageRate.rate ?? 0;
143147

0 commit comments

Comments
 (0)