Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/components/MoneyRequestHeaderSecondaryActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
>();
const styles = useThemeStyles();
const theme = useTheme();
const {translate, localeCompare} = useLocalize();
const {translate, localeCompare, formatPhoneNumber} = useLocalize();
const {login: currentUserLogin, accountID, localCurrencyCode} = useCurrentUserPersonalDetails();
const delegateAccountID = useDelegateAccountID();
const personalDetails = usePersonalDetails();
Expand Down Expand Up @@ -270,6 +270,7 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
});
}
};
Expand Down
3 changes: 3 additions & 0 deletions src/hooks/useBulkDuplicateAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {validTransactionDraftsSelector} from '@selectors/TransactionDraft';
import useCurrentUserPersonalDetails from './useCurrentUserPersonalDetails';
import useDefaultExpensePolicy from './useDefaultExpensePolicy';
import useDelegateAccountID from './useDelegateAccountID';
import useLocalize from './useLocalize';
import useMoneyRequestPolicyTagsForReport from './useMoneyRequestPolicyTagsForReport';
import useOnyx from './useOnyx';
import usePermissions from './usePermissions';
Expand All @@ -36,6 +37,7 @@ type UseBulkDuplicateActionParams = {
function useBulkDuplicateAction({selectedTransactionsKeys, allTransactions, allReports, searchData, onAfterDuplicate}: UseBulkDuplicateActionParams) {
const {accountID, login: currentUserLogin, localCurrencyCode} = useCurrentUserPersonalDetails();
const delegateAccountID = useDelegateAccountID();
const {formatPhoneNumber} = useLocalize();
const {clearSelectedTransactions} = useSearchSelectionActions();
const defaultExpensePolicy = useDefaultExpensePolicy();
const {isBetaEnabled} = usePermissions();
Expand Down Expand Up @@ -90,6 +92,7 @@ function useBulkDuplicateAction({selectedTransactionsKeys, allTransactions, allR
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
});

if (onAfterDuplicate) {
Expand Down
3 changes: 2 additions & 1 deletion src/hooks/useBulkDuplicateReportAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ function useBulkDuplicateReportAction({selectedReports, allReports, searchData}:
const defaultExpensePolicy = useDefaultExpensePolicy();
const {isBetaEnabled} = usePermissions();
const isASAPSubmitBetaEnabled = isBetaEnabled(CONST.BETAS.ASAP_SUBMIT);
const {translate} = useLocalize();
const {translate, formatPhoneNumber} = useLocalize();

const [quickAction] = useOnyx(ONYXKEYS.NVP_QUICK_ACTION_GLOBAL_CREATE);
const [policyRecentlyUsedCurrencies] = useOnyx(ONYXKEYS.RECENTLY_USED_CURRENCIES);
Expand Down Expand Up @@ -72,6 +72,7 @@ function useBulkDuplicateReportAction({selectedReports, allReports, searchData}:
currentUserAccountID: currentUserPersonalDetails?.accountID,
isTrackIntentUser,
delegateAccountID,
formatPhoneNumber,
});

clearSelectedTransactions(undefined, true);
Expand Down
4 changes: 3 additions & 1 deletion src/hooks/useExpenseActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ type UseExpenseActionsReturn = {

function useExpenseActions({reportID, isReportInSearch = false, backTo, onDuplicateReset}: UseExpenseActionsParams): UseExpenseActionsReturn {
const theme = useTheme();
const {translate, localeCompare} = useLocalize();
const {translate, localeCompare, formatPhoneNumber} = useLocalize();
const {isProduction} = useEnvironment();
const {isBetaEnabled} = usePermissions();
const isASAPSubmitBetaEnabled = isBetaEnabled(CONST.BETAS.ASAP_SUBMIT);
Expand Down Expand Up @@ -279,6 +279,7 @@ function useExpenseActions({reportID, isReportInSearch = false, backTo, onDuplic
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
});
}
};
Expand Down Expand Up @@ -439,6 +440,7 @@ function useExpenseActions({reportID, isReportInSearch = false, backTo, onDuplic
currentUserLogin: currentUserPersonalDetails?.email ?? '',
isTrackIntentUser,
delegateAccountID,
formatPhoneNumber,
});
},
},
Expand Down
17 changes: 16 additions & 1 deletion src/libs/actions/IOU/Duplicate.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type {LocalizedTranslate} from '@components/LocaleContextProvider';
import type {LocaleContextProps, LocalizedTranslate} from '@components/LocaleContextProvider';
import type {SelectedReports} from '@components/Search/types';

import * as API from '@libs/API';
Expand Down Expand Up @@ -652,6 +652,7 @@ function createExpenseByType({
personalDetails,
recentWaypoints,
isTrackIntentUser,
formatPhoneNumber,
}: {
transactionType: string;
params: RequestMoneyInformation;
Expand All @@ -665,6 +666,7 @@ function createExpenseByType({
personalDetails: OnyxEntry<OnyxTypes.PersonalDetailsList>;
recentWaypoints: OnyxEntry<OnyxTypes.RecentWaypoint[]>;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
}) {
switch (transactionType) {
case CONST.SEARCH.TRANSACTION_TYPE.DISTANCE: {
Expand Down Expand Up @@ -701,6 +703,7 @@ function createExpenseByType({
customUnitPolicyID,
personalDetails,
recentWaypoints,
formatPhoneNumber,
};
return createDistanceRequest(distanceParams);
}
Expand Down Expand Up @@ -752,6 +755,7 @@ type DuplicateExpenseTransactionParams = {
isTrackIntentUser: boolean | undefined;
delegateAccountID: number | undefined;
policyTagList: OnyxTypes.PolicyTagLists;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

function duplicateExpenseTransaction({
Expand Down Expand Up @@ -780,6 +784,7 @@ function duplicateExpenseTransaction({
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
}: DuplicateExpenseTransactionParams) {
if (!transaction) {
return;
Expand Down Expand Up @@ -893,6 +898,7 @@ function duplicateExpenseTransaction({
personalDetails,
recentWaypoints,
isTrackIntentUser,
formatPhoneNumber,
});
}

Expand All @@ -919,6 +925,7 @@ type DuplicateReportParams = {
shouldPlaySound?: boolean;
isTrackIntentUser: boolean | undefined;
delegateAccountID: number | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

function duplicateReport({
Expand All @@ -944,6 +951,7 @@ function duplicateReport({
shouldPlaySound = true,
isTrackIntentUser,
delegateAccountID,
formatPhoneNumber,
}: DuplicateReportParams) {
if (!targetPolicy || !parentChatReport) {
return;
Expand Down Expand Up @@ -1061,6 +1069,7 @@ function duplicateReport({
personalDetails,
recentWaypoints,
isTrackIntentUser,
formatPhoneNumber,
});

if (result?.iouReport) {
Expand Down Expand Up @@ -1095,6 +1104,7 @@ type BulkDuplicateExpensesParams = {
isTrackIntentUser: boolean | undefined;
delegateAccountID: number | undefined;
policyTagList: OnyxTypes.PolicyTagLists;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

function bulkDuplicateExpenses({
Expand All @@ -1119,6 +1129,7 @@ function bulkDuplicateExpenses({
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
}: BulkDuplicateExpensesParams) {
const transactionsToDuplicate = transactionIDs.map((id) => allTransactions[`${ONYXKEYS.COLLECTION.TRANSACTION}${id}`]).filter((t): t is OnyxTypes.Transaction => !!t);

Expand Down Expand Up @@ -1217,6 +1228,7 @@ function bulkDuplicateExpenses({
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
});

if (result?.iouReport) {
Expand Down Expand Up @@ -1254,6 +1266,7 @@ type BulkDuplicateReportsParams = {
currentUserAccountID: number;
isTrackIntentUser: boolean | undefined;
delegateAccountID: number | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

function bulkDuplicateReports({
Expand All @@ -1279,6 +1292,7 @@ function bulkDuplicateReports({
currentUserAccountID,
isTrackIntentUser,
delegateAccountID,
formatPhoneNumber,
}: BulkDuplicateReportsParams) {
const allTransactionsMap = getAllTransactions();
const transactionsByReportID = new Map<string, OnyxTypes.Transaction[]>();
Expand Down Expand Up @@ -1355,6 +1369,7 @@ function bulkDuplicateReports({
currentUserLogin,
isTrackIntentUser,
delegateAccountID,
formatPhoneNumber,
});
}

Expand Down
17 changes: 16 additions & 1 deletion src/libs/actions/IOU/Split.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import ReceiptGeneric from '@assets/images/receipt-generic.png';

import type {LocaleContextProps} from '@components/LocaleContextProvider';

import * as API from '@libs/API';
import type {CompleteSplitBillParams, CreateDistanceRequestParams, SplitBillParams, StartSplitBillParams} from '@libs/API/parameters';
import {WRITE_COMMANDS} from '@libs/API/types';
import DateUtils from '@libs/DateUtils';
import {deferOrExecuteWrite} from '@libs/deferredLayoutWrite';
import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils';
import {calculateAmount as calculateIOUAmount, updateIOUOwnerAndTotal} from '@libs/IOUUtils';
import {formatPhoneNumber} from '@libs/LocalePhoneNumber';
import * as Localize from '@libs/Localize';
import Navigation from '@libs/Navigation/Navigation';
import TransitionTracker from '@libs/Navigation/TransitionTracker';
Expand Down Expand Up @@ -143,6 +144,7 @@ type CreateDistanceRequestInformation = {
previousOdometerDraft?: OnyxEntry<OnyxTypes.OdometerDraft>;
delegateAccountID: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type CreateSplitsTransactionParams = Omit<BaseTransactionParams, 'customUnitRateID'> & {
Expand All @@ -168,6 +170,7 @@ type CreateSplitsAndOnyxDataParams = {
participantsPolicyTags: Record<string, OnyxTypes.PolicyTagLists>;
delegateAccountID: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type StartSplitBilActionParams = {
Expand All @@ -194,6 +197,7 @@ type StartSplitBilActionParams = {
policyRecentlyUsedCurrencies: string[];
participantsPolicyTags: Record<string, OnyxTypes.PolicyTagLists>;
delegateAccountID: number | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type CompleteSplitBillActionParams = {
Expand All @@ -209,6 +213,7 @@ type CompleteSplitBillActionParams = {
delegateAccountID: number | undefined;
isTrackIntentUser: boolean | undefined;
sessionEmail?: string;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type SplitBillActionsParams = {
Expand Down Expand Up @@ -243,6 +248,7 @@ type SplitBillActionsParams = {
shouldDeferForSearch?: boolean;
delegateAccountID: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

/**
Expand Down Expand Up @@ -280,6 +286,7 @@ function splitBill({
shouldDeferForSearch = false,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
}: SplitBillActionsParams) {
const parsedComment = getParsedComment(comment);
const {splitData, splits, onyxData} = createSplitsAndOnyxData({
Expand Down Expand Up @@ -315,6 +322,7 @@ function splitBill({
participantsPolicyTags: buildParticipantsPolicyTags(participants),
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
});

const parameters: SplitBillParams = {
Expand Down Expand Up @@ -394,6 +402,7 @@ function splitBillAndOpenReport({
shouldDeferForSearch = false,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
}: SplitBillActionsParams) {
const parsedComment = getParsedComment(comment);
const {splitData, splits, onyxData} = createSplitsAndOnyxData({
Expand Down Expand Up @@ -429,6 +438,7 @@ function splitBillAndOpenReport({
participantsPolicyTags: buildParticipantsPolicyTags(participants),
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
});

const parameters: SplitBillParams = {
Expand Down Expand Up @@ -502,6 +512,7 @@ function startSplitBill({
shouldHandleNavigation = true,
shouldDeferForSearch = false,
delegateAccountID,
formatPhoneNumber,
}: StartSplitBilActionParams) {
const currentUserEmailForIOUSplit = addSMSDomainIfPhoneNumber(currentUserLogin);
const participantAccountIDs = participants.map((participant) => Number(participant.accountID));
Expand Down Expand Up @@ -693,6 +704,7 @@ function startSplitBill({
policyRecentlyUsedTags,
participantsPolicyTags,
delegateAccountID,
formatPhoneNumber,
};

if (existingSplitChatReport) {
Expand Down Expand Up @@ -1424,6 +1436,7 @@ function createSplitsAndOnyxData({
participantsPolicyTags,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
}: CreateSplitsAndOnyxDataParams): SplitsAndOnyxData {
const currentUserEmailForIOUSplit = addSMSDomainIfPhoneNumber(currentUserLogin);
const participantAccountIDs = participants.map((participant) => Number(participant.accountID));
Expand Down Expand Up @@ -1958,6 +1971,7 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest
previousOdometerDraft,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
} = distanceRequestInformation;
const {policy, policyCategories, policyTagList, policyRecentlyUsedCategories, policyRecentlyUsedTags} = policyParams;
const parsedComment = getParsedComment(transactionParams.comment);
Expand Down Expand Up @@ -2050,6 +2064,7 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest
participantsPolicyTags: buildParticipantsPolicyTags(participants),
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
});
onyxData = splitOnyxData;

Expand Down
4 changes: 3 additions & 1 deletion src/pages/iou/DynamicSplitBillDetailsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ type SplitBillDetailsPageProps = WithReportAndReportActionOrNotFoundProps & Plat

function DynamicSplitBillDetailsPage({report, reportAction}: SplitBillDetailsPageProps) {
const styles = useThemeStyles();
const {translate} = useLocalize();
const {translate, formatPhoneNumber} = useLocalize();
const theme = useTheme();
const {isBetaEnabled} = usePermissions();
const icons = useMemoizedLazyExpensifyIcons(['ReceiptScan']);
Expand Down Expand Up @@ -110,6 +110,7 @@ function DynamicSplitBillDetailsPage({report, reportAction}: SplitBillDetailsPag
delegateAccountID,
isTrackIntentUser,
sessionEmail: session?.email,
formatPhoneNumber,
});
}, [
reportID,
Expand All @@ -124,6 +125,7 @@ function DynamicSplitBillDetailsPage({report, reportAction}: SplitBillDetailsPag
personalDetails,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
]);

return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import type {LocaleContextProps} from '@components/LocaleContextProvider';

import {
getMoneyRequestParticipantOptions,
setCustomUnitRateID,
Expand Down Expand Up @@ -104,6 +106,7 @@ type MoneyRequestStepDistanceNavigationParams = {
isTrackIntentUser: boolean | undefined;
delegateAccountID: number | undefined;
policyTagList: PolicyTagLists;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

/** Amount + merchant for a manual-distance submit; pending placeholders otherwise (waypoint/GPS distance is computed server-side). */
Expand Down Expand Up @@ -201,6 +204,7 @@ function handleMoneyRequestStepDistanceNavigation({
isTrackIntentUser,
delegateAccountID,
policyTagList,
formatPhoneNumber,
}: MoneyRequestStepDistanceNavigationParams): void {
const isManualDistance = manualDistance !== undefined;
const isOdometerDistance = odometerDistance !== undefined;
Expand Down Expand Up @@ -404,6 +408,7 @@ function handleMoneyRequestStepDistanceNavigation({
},
isTrackIntentUser,
delegateAccountID,
formatPhoneNumber,
});
cleanupAfterSkipConfirmSubmit(overrides.shouldHandleNavigation, {
report,
Expand Down
Loading
Loading