diff --git a/src/components/MoneyRequestConfirmationList.tsx b/src/components/MoneyRequestConfirmationList.tsx
index 1faef0c6b44c..f14ee940e329 100755
--- a/src/components/MoneyRequestConfirmationList.tsx
+++ b/src/components/MoneyRequestConfirmationList.tsx
@@ -256,6 +256,7 @@ function MoneyRequestConfirmationList({
const prevRate = usePrevious(rate);
const currency = (mileageRate as MileageRate)?.currency ?? policyCurrency;
+ const prevCurrency = usePrevious(currency);
// A flag for showing the categories field
const shouldShowCategories = (isPolicyExpenseChat || isTypeInvoice) && (!!iouCategory || OptionsListUtils.hasEnabledOptions(Object.values(policyCategories ?? {})));
@@ -292,7 +293,7 @@ function MoneyRequestConfirmationList({
const distance = TransactionUtils.getDistanceInMeters(transaction, unit);
const prevDistance = usePrevious(distance);
- const shouldCalculateDistanceAmount = isDistanceRequest && (iouAmount === 0 || prevRate !== rate || prevDistance !== distance);
+ const shouldCalculateDistanceAmount = isDistanceRequest && (iouAmount === 0 || prevRate !== rate || prevDistance !== distance || prevCurrency !== currency);
const hasRoute = TransactionUtils.hasRoute(transaction, isDistanceRequest);
const isDistanceRequestWithPendingRoute = isDistanceRequest && (!hasRoute || !rate) && !isMovingTransactionFromTrackExpense;
diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx
index 5dc56caa0ff6..cdff8a1988e1 100644
--- a/src/components/ReportActionItem/MoneyRequestView.tsx
+++ b/src/components/ReportActionItem/MoneyRequestView.tsx
@@ -203,7 +203,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals
const hasRoute = TransactionUtils.hasRoute(transactionBackup ?? transaction, isDistanceRequest);
const rateID = TransactionUtils.getRateID(transaction) ?? '-1';
- const currency = policy ? policy.outputCurrency : PolicyUtils.getPersonalPolicy()?.outputCurrency ?? CONST.CURRENCY.USD;
+ const currency = transactionCurrency ?? CONST.CURRENCY.USD;
const mileageRate = TransactionUtils.isCustomUnitRateIDForP2P(transaction) ? DistanceRequestUtils.getRateForP2P(currency) : distanceRates[rateID] ?? {};
const {unit} = mileageRate;
diff --git a/src/languages/en.ts b/src/languages/en.ts
index c2ff45408d3a..17d7de16ea20 100755
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -108,7 +108,6 @@ import type {
PayerSettledParams,
PaySomeoneParams,
ReconciliationWorksParams,
- ReimbursementRateParams,
RemovedFromApprovalWorkflowParams,
RemovedTheRequestParams,
RemoveMemberPromptParams,
@@ -1015,7 +1014,7 @@ const translations = {
changed: 'changed',
removed: 'removed',
transactionPending: 'Transaction pending.',
- chooseARate: ({unit}: ReimbursementRateParams) => `Select a workspace reimbursement rate per ${unit}`,
+ chooseARate: 'Select a workspace reimbursement rate per mile or kilometer',
unapprove: 'Unapprove',
unapproveReport: 'Unapprove report',
headsUp: 'Heads up!',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 400e5e8880f3..a98c62a94afc 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -106,7 +106,6 @@ import type {
PayerSettledParams,
PaySomeoneParams,
ReconciliationWorksParams,
- ReimbursementRateParams,
RemovedFromApprovalWorkflowParams,
RemovedTheRequestParams,
RemoveMemberPromptParams,
@@ -1010,7 +1009,7 @@ const translations = {
changed: 'cambió',
removed: 'eliminó',
transactionPending: 'Transacción pendiente.',
- chooseARate: ({unit}: ReimbursementRateParams) => `Selecciona una tasa de reembolso por ${unit} del espacio de trabajo`,
+ chooseARate: 'Selecciona una tasa de reembolso por milla o kilómetro para el espacio de trabajo',
unapprove: 'Desaprobar',
unapproveReport: 'Anular la aprobación del informe',
headsUp: 'Atención!',
diff --git a/src/languages/params.ts b/src/languages/params.ts
index f787e630ab0d..9fd980d1e98f 100644
--- a/src/languages/params.ts
+++ b/src/languages/params.ts
@@ -1,6 +1,6 @@
import type {OnyxInputOrEntry, ReportAction} from '@src/types/onyx';
import type {DelegateRole} from '@src/types/onyx/Account';
-import type {AllConnectionName, ConnectionName, PolicyConnectionSyncStage, SageIntacctMappingName, Unit} from '@src/types/onyx/Policy';
+import type {AllConnectionName, ConnectionName, PolicyConnectionSyncStage, SageIntacctMappingName} from '@src/types/onyx/Policy';
import type {ViolationDataType} from '@src/types/onyx/TransactionViolation';
type AddressLineParams = {
@@ -279,8 +279,6 @@ type LogSizeAndDateParams = {size: number; date: string};
type HeldRequestParams = {comment: string};
-type ReimbursementRateParams = {unit: Unit};
-
type ChangeFieldParams = {oldValue?: string; newValue: string; fieldName: string};
type ChangePolicyParams = {fromPolicy: string; toPolicy: string};
@@ -648,7 +646,6 @@ export type {
PayerPaidAmountParams,
PayerPaidParams,
PayerSettledParams,
- ReimbursementRateParams,
RemovedTheRequestParams,
RenamedRoomActionParams,
ReportArchiveReasonsClosedParams,
diff --git a/src/pages/iou/request/step/IOURequestStepDistanceRate.tsx b/src/pages/iou/request/step/IOURequestStepDistanceRate.tsx
index 9bee2df17ef0..231c59bab47b 100644
--- a/src/pages/iou/request/step/IOURequestStepDistanceRate.tsx
+++ b/src/pages/iou/request/step/IOURequestStepDistanceRate.tsx
@@ -52,6 +52,8 @@ function IOURequestStepDistanceRate({
const currentRateID = TransactionUtils.getRateID(transaction) ?? '-1';
+ const transactionCurrency = TransactionUtils.getCurrency(transaction);
+
const rates = DistanceRequestUtils.getMileageRates(policy, false, currentRateID);
const navigateBack = () => {
@@ -61,15 +63,16 @@ function IOURequestStepDistanceRate({
const sections = Object.values(rates)
.sort((rateA, rateB) => (rateA?.rate ?? 0) - (rateB?.rate ?? 0))
.map((rate) => {
- const rateForDisplay = DistanceRequestUtils.getRateForDisplay(rate.unit, rate.rate, rate.currency, translate, toLocaleDigit);
+ const isSelected = currentRateID ? currentRateID === rate.customUnitRateID : rate.name === CONST.CUSTOM_UNITS.DEFAULT_RATE;
+ const rateForDisplay = DistanceRequestUtils.getRateForDisplay(rate.unit, rate.rate, isSelected ? transactionCurrency : rate.currency, translate, toLocaleDigit);
return {
text: rate.name ?? rateForDisplay,
alternateText: rate.name ? rateForDisplay : '',
keyForList: rate.customUnitRateID,
value: rate.customUnitRateID,
isDisabled: !rate.enabled,
- isSelected: currentRateID ? currentRateID === rate.customUnitRateID : rate.name === CONST.CUSTOM_UNITS.DEFAULT_RATE,
+ isSelected,
};
});
@@ -108,7 +111,7 @@ function IOURequestStepDistanceRate({
shouldShowWrapper
testID={IOURequestStepDistanceRate.displayName}
>
- {translate('iou.chooseARate', {unit})}
+ {translate('iou.chooseARate')}