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
4 changes: 4 additions & 0 deletions src/hooks/useDeleteTransactions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {useCallback} from 'react';
import useCurrentUserPersonalDetails from './useCurrentUserPersonalDetails';
import useDelegateAccountID from './useDelegateAccountID';
import useEnvironment from './useEnvironment';
import useLocalize from './useLocalize';
import useNetwork from './useNetwork';
import useOnyx from './useOnyx';
import usePermissions from './usePermissions';
Expand Down Expand Up @@ -72,6 +73,7 @@ function redistributeRemainingPerDiemSplitExpenses(splitExpenses: SplitExpense[]
* All data must be provided through function parameters
*/
function useDeleteTransactions({report, reportActions, policy}: UseDeleteTransactionsParams) {
const {formatPhoneNumber} = useLocalize();
const {currentSearchResults} = useSearchResultsContext();
const {currentSearchQueryJSON} = useSearchQueryContext();
const [allTransactions] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION);
Expand Down Expand Up @@ -326,6 +328,7 @@ function useDeleteTransactions({report, reportActions, policy}: UseDeleteTransac
isOffline,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
});
}

Expand Down Expand Up @@ -402,6 +405,7 @@ function useDeleteTransactions({report, reportActions, policy}: UseDeleteTransac
personalPolicy?.outputCurrency,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
],
);

Expand Down
8 changes: 7 additions & 1 deletion src/libs/actions/IOU/PerDiem.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import type {LocaleContextProps} from '@components/LocaleContextProvider';

import * as API from '@libs/API';
import type {CreatePerDiemRequestParams} from '@libs/API/parameters';
import {WRITE_COMMANDS} from '@libs/API/types';
Expand All @@ -6,7 +8,6 @@ import DateUtils from '@libs/DateUtils';
import {deferOrExecuteWrite} from '@libs/deferredLayoutWrite';
import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils';
import {updateIOUOwnerAndTotal} from '@libs/IOUUtils';
import {formatPhoneNumber} from '@libs/LocalePhoneNumber';
import {validateAmount} from '@libs/MoneyRequestUtils';
import Navigation from '@libs/Navigation/Navigation';
import TransitionTracker from '@libs/Navigation/TransitionTracker';
Expand Down Expand Up @@ -243,6 +244,7 @@ type PerDiemExpenseInformation = {
// TODO: delegateAccountID will be made required in PR 13 when all callers pass the value (https://github.com/Expensify/App/issues/66425)
delegateAccountID?: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type PerDiemExpenseInformationParams = {
Expand All @@ -267,6 +269,7 @@ type PerDiemExpenseInformationParams = {
// TODO: delegateAccountID will be made required in PR 13 when all callers pass the value (https://github.com/Expensify/App/issues/66425)
delegateAccountID?: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type PerDiemExpenseInformationForSelfDM = {
Expand Down Expand Up @@ -324,6 +327,7 @@ function getPerDiemExpenseInformation(perDiemExpenseInformation: PerDiemExpenseI
optimisticTransactionID: uiProvidedOptimisticTransactionID,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
} = perDiemExpenseInformation;
const {payeeAccountID = currentUserAccountIDParam, payeeEmail = currentUserEmailParam, participant} = participantParams;
const {policy, policyCategories, policyTagList, policyRecentlyUsedCategories, policyRecentlyUsedTags} = policyParams;
Expand Down Expand Up @@ -932,6 +936,7 @@ function submitPerDiemExpense(submitPerDiemExpenseInformation: PerDiemExpenseInf
optimisticTransactionID,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
} = submitPerDiemExpenseInformation;
const {currency, comment = '', category, tag, created, customUnit, attendees, isFromGlobalCreate} = transactionParams;

Expand Down Expand Up @@ -985,6 +990,7 @@ function submitPerDiemExpense(submitPerDiemExpenseInformation: PerDiemExpenseInf
optimisticTransactionID,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
});

const activeReportID = isMoneyRequestReport && Navigation.getTopmostReportId() === report?.reportID ? report?.reportID : chatReport.reportID;
Expand Down
7 changes: 6 additions & 1 deletion src/libs/actions/IOU/SendInvoice.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import type {LocaleContextProps} from '@components/LocaleContextProvider';

import * as API from '@libs/API';
import type {SendInvoiceParams} 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 {formatPhoneNumber} from '@libs/LocalePhoneNumber';
import Log from '@libs/Log';
import {getReportActionHtml, getReportActionText} from '@libs/ReportActionsUtils';
import type {OptimisticChatReport, OptimisticCreatedReportAction, OptimisticIOUReportAction} from '@libs/ReportUtils';
Expand Down Expand Up @@ -87,6 +88,7 @@ type SendInvoiceOptions = {
senderPolicyTags: OnyxEntry<OnyxTypes.PolicyTagLists>;
// TODO: delegateAccountID will be made required in PR 12 when all callers pass the value (https://github.com/Expensify/App/issues/66425)
delegateAccountID?: number | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

type BuildOnyxDataForInvoiceParams = {
Expand Down Expand Up @@ -591,6 +593,7 @@ function getSendInvoiceInformation({
policyRecentlyUsedTags,
senderPolicyTags,
delegateAccountID,
formatPhoneNumber,
}: SendInvoiceOptions): SendInvoiceInformation {
const {amount = 0, currency = '', created = '', merchant = '', category = '', tag = '', taxCode = '', taxAmount = 0, taxValue, billable, comment, participants} = transaction ?? {};
const trimmedComment = (comment?.comment ?? '').trim();
Expand Down Expand Up @@ -740,6 +743,7 @@ function sendInvoice({
isFromGlobalCreate = false,
senderPolicyTags,
delegateAccountID,
formatPhoneNumber,
}: SendInvoiceOptions) {
const parsedComment = getParsedComment(transaction?.comment?.comment?.trim() ?? '');
if (transaction?.comment) {
Expand Down Expand Up @@ -775,6 +779,7 @@ function sendInvoice({
policyRecentlyUsedTags,
senderPolicyTags: senderPolicyTags ?? {},
delegateAccountID,
formatPhoneNumber,
});

const parameters: SendInvoiceParams = {
Expand Down
16 changes: 15 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 @@
previousOdometerDraft?: OnyxEntry<OnyxTypes.OdometerDraft>;
delegateAccountID: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

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

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

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

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

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

const parameters: SplitBillParams = {
Expand Down Expand Up @@ -501,6 +510,7 @@
participantsPolicyTags,
shouldHandleNavigation = true,
shouldDeferForSearch = false,
formatPhoneNumber,
delegateAccountID,
}: StartSplitBilActionParams) {
const currentUserEmailForIOUSplit = addSMSDomainIfPhoneNumber(currentUserLogin);
Expand Down Expand Up @@ -701,7 +711,7 @@
key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${splitChatReport.reportID}`,
value: {
[splitIOUReportAction.reportActionID]: {
errors: getReceiptError(receipt, filename, undefined, undefined, CONST.IOU.ACTION_PARAMS.START_SPLIT_BILL, retryParams),

Check failure on line 714 in src/libs/actions/IOU/Split.ts

View workflow job for this annotation

GitHub Actions / typecheck

Argument of type '{ participants: { accountID?: number; login?: string; displayName?: string; isPolicyExpenseChat?: boolean; isInvoiceRoom?: boolean; isOwnPolicyExpenseChat?: boolean; chatType?: ValueOf<typeof CONST.REPORT.CHAT_TYPE>; ... 16 more ...; avatar?: AvatarSource; }[]; ... 17 more ...; delegateAccountID: number | undefined; }' is not assignable to parameter of type 'StartSplitBilActionParams | CreateTrackExpenseParams | RequestMoneyInformation | ReplaceReceiptRetryParams | undefined'.
},
},
});
Expand All @@ -724,7 +734,7 @@
errors: getMicroSecondOnyxErrorWithTranslationKey('report.genericCreateReportFailureMessage'),
},
[splitIOUReportAction.reportActionID]: {
errors: getReceiptError(receipt, filename, undefined, undefined, CONST.IOU.ACTION_PARAMS.START_SPLIT_BILL, retryParams),

Check failure on line 737 in src/libs/actions/IOU/Split.ts

View workflow job for this annotation

GitHub Actions / typecheck

Argument of type '{ participants: { accountID?: number; login?: string; displayName?: string; isPolicyExpenseChat?: boolean; isInvoiceRoom?: boolean; isOwnPolicyExpenseChat?: boolean; chatType?: ValueOf<typeof CONST.REPORT.CHAT_TYPE>; ... 16 more ...; avatar?: AvatarSource; }[]; ... 17 more ...; delegateAccountID: number | undefined; }' is not assignable to parameter of type 'StartSplitBilActionParams | CreateTrackExpenseParams | RequestMoneyInformation | ReplaceReceiptRetryParams | undefined'.
},
},
},
Expand Down Expand Up @@ -1424,6 +1434,7 @@
participantsPolicyTags,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
}: CreateSplitsAndOnyxDataParams): SplitsAndOnyxData {
const currentUserEmailForIOUSplit = addSMSDomainIfPhoneNumber(currentUserLogin);
const participantAccountIDs = participants.map((participant) => Number(participant.accountID));
Expand Down Expand Up @@ -1958,6 +1969,7 @@
previousOdometerDraft,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
} = distanceRequestInformation;
const {policy, policyCategories, policyTagList, policyRecentlyUsedCategories, policyRecentlyUsedTags} = policyParams;
const parsedComment = getParsedComment(transactionParams.comment);
Expand Down Expand Up @@ -2050,6 +2062,7 @@
participantsPolicyTags: buildParticipantsPolicyTags(participants),
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
});
onyxData = splitOnyxData;

Expand Down Expand Up @@ -2143,6 +2156,7 @@
optimisticReportPreviewActionID,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,

Check failure on line 2159 in src/libs/actions/IOU/Split.ts

View workflow job for this annotation

GitHub Actions / typecheck

Object literal may only specify known properties, and 'formatPhoneNumber' does not exist in type 'MoneyRequestInformationParams'.
});

onyxData = moneyRequestOnyxData;
Expand Down
4 changes: 4 additions & 0 deletions src/libs/actions/IOU/SplitTransactionUpdate.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type {LocaleContextProps} from '@components/LocaleContextProvider';
import type {SearchActionsContextValue, SearchStateContextValue} from '@components/Search/types';

import {write as apiWrite} from '@libs/API';
Expand Down Expand Up @@ -109,6 +110,7 @@
isOffline: boolean;
delegateAccountID: number | undefined;
isTrackIntentUser: boolean | undefined;
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
};

function updateSplitTransactions({
Expand Down Expand Up @@ -139,6 +141,7 @@
isOffline,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,
}: UpdateSplitTransactionsParams) {
const parentTransactionReport = getReportOrDraftReport(transactionReport?.parentReportID);
// For selfDM-origin splits the caller can't resolve a real `expenseReport` (the draft/source
Expand Down Expand Up @@ -710,6 +713,7 @@
personalDetails,
delegateAccountID,
isTrackIntentUser,
formatPhoneNumber,

Check failure on line 716 in src/libs/actions/IOU/SplitTransactionUpdate.ts

View workflow job for this annotation

GitHub Actions / typecheck

Object literal may only specify known properties, and 'formatPhoneNumber' does not exist in type 'MoneyRequestInformationParams'.
});

let updateMoneyRequestParamsOnyxData: OnyxData<UpdateMoneyRequestDataKeys> = {};
Expand Down
17 changes: 11 additions & 6 deletions src/libs/actions/Task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import type {CancelTaskParams, CompleteTaskParams, CreateTaskParams, EditTaskAss
import {WRITE_COMMANDS} from '@libs/API/types';
import DateUtils from '@libs/DateUtils';
import * as ErrorUtils from '@libs/ErrorUtils';
import * as LocalePhoneNumber from '@libs/LocalePhoneNumber';
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
import Navigation from '@libs/Navigation/Navigation';
import {getDBTimeWithSkew} from '@libs/NetworkState';
Expand Down Expand Up @@ -1097,7 +1096,12 @@ function startOutCreateTaskQuickAction(currentUserAccountID: number, reportID: s
/**
* Get the assignee data
*/
function getAssignee(assigneeAccountID: number | undefined, personalDetails: OnyxEntry<OnyxTypes.PersonalDetailsList>, translate: LocalizedTranslate): Assignee | undefined {
function getAssignee(
assigneeAccountID: number | undefined,
personalDetails: OnyxEntry<OnyxTypes.PersonalDetailsList>,
translate: LocalizedTranslate,
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'],
): Assignee | undefined {
if (!assigneeAccountID) {
return;
}
Expand All @@ -1114,7 +1118,7 @@ function getAssignee(assigneeAccountID: number | undefined, personalDetails: Ony

return {
icons: ReportUtils.getIconsForParticipants([details.accountID], personalDetails),
displayName: LocalePhoneNumber.formatPhoneNumber(PersonalDetailsUtils.temporaryGetDisplayNameOrDefault({passedPersonalDetails: details, translate})),
displayName: formatPhoneNumber(PersonalDetailsUtils.temporaryGetDisplayNameOrDefault({passedPersonalDetails: details, translate})),
subtitle: details.login ?? '',
};
}
Expand All @@ -1129,6 +1133,7 @@ function getShareDestination(
policy: OnyxEntry<OnyxTypes.Policy>,
conciergeReportID: string | undefined,
translate: LocalizedTranslate,
formatPhoneNumber: LocaleContextProps['formatPhoneNumber'],
reportAttributes?: OnyxTypes.ReportAttributesDerivedValue['reports'],
): ShareDestination {
const isOneOnOneChat = ReportUtils.isOneOnOneChat(report);
Expand All @@ -1140,7 +1145,7 @@ function getShareDestination(
OptionsListUtils.getPersonalDetailsForAccountIDs(participants, personalDetails),
isMultipleParticipant,
localeCompare,
LocalePhoneNumber.formatPhoneNumber,
formatPhoneNumber,
);

let subtitle = '';
Expand All @@ -1149,12 +1154,12 @@ function getShareDestination(

const displayName = personalDetails?.[participantAccountID]?.displayName ?? '';
const login = personalDetails?.[participantAccountID]?.login ?? '';
subtitle = LocalePhoneNumber.formatPhoneNumber(login || displayName);
subtitle = formatPhoneNumber(login || displayName);
} else {
subtitle = ReportUtils.getChatRoomSubtitle(report, policy, conciergeReportID, translate) ?? '';
}
return {
icons: ReportUtils.getIcons(report, LocalePhoneNumber.formatPhoneNumber, translate, personalDetails, FallbackAvatar),
icons: ReportUtils.getIcons(report, formatPhoneNumber, translate, personalDetails, FallbackAvatar),
displayName: getReportName(report, reportAttributes),
subtitle,
displayNamesWithTooltips,
Expand Down
3 changes: 1 addition & 2 deletions src/pages/Travel/TravelLegalNamePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import useThemeStyles from '@hooks/useThemeStyles';

import {clearDraftValues} from '@libs/actions/FormActions';
import {updateLegalName} from '@libs/actions/PersonalDetails';
import {formatPhoneNumber} from '@libs/LocalePhoneNumber';
import Navigation from '@libs/Navigation/Navigation';

import BaseLegalNamePage, {validateLegalName} from '@pages/settings/Profile/PersonalDetails/BaseLegalNamePage';
Expand All @@ -19,7 +18,7 @@ import INPUT_IDS from '@src/types/form/PersonalDetailsForm';
import React, {useEffect} from 'react';

function TravelLegalNamePage() {
const {translate} = useLocalize();
const {translate, formatPhoneNumber} = useLocalize();
const styles = useThemeStyles();
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
const [privatePersonalDetails] = useOnyx(ONYXKEYS.PRIVATE_PERSONAL_DETAILS);
Expand Down
3 changes: 2 additions & 1 deletion src/pages/iou/request/step/IOURequestStepCompanyInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function IOURequestStepCompanyInfo({route, report, transaction}: IOURequestStepC
const {backTo, reportID} = route.params;

const styles = useThemeStyles();
const {translate} = useLocalize();
const {translate, formatPhoneNumber} = useLocalize();
const {convertToDisplayString} = useCurrencyListActions();
const {inputCallbackRef} = useAutoFocusInput();
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
Expand Down Expand Up @@ -120,6 +120,7 @@ function IOURequestStepCompanyInfo({route, report, transaction}: IOURequestStepC
policyRecentlyUsedTags,
isFromGlobalCreate,
senderPolicyTags: policyTags ?? {},
formatPhoneNumber,
});
cleanupAndNavigateAfterExpenseCreate({
report: undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ function ScanSkipConfirmation({report, action, iouType, reportID, transactionID,

const [transactions] = useOptimisticDraftTransactions(transaction);
const {isMultiScanEnabled} = useMultiScanState();
const {translate} = useLocalize();
const {translate, formatPhoneNumber} = useLocalize();
const {disableMultiScan} = useMultiScanActions();
const {setIsLoaderVisible} = useFullScreenLoaderActions();
const [startLocationPermissionFlow, setStartLocationPermissionFlow] = useState(false);
Expand Down Expand Up @@ -235,6 +235,7 @@ function ScanSkipConfirmation({report, action, iouType, reportID, transactionID,
...splitBaseParams,
shouldHandleNavigation: overrides.shouldHandleNavigation,
shouldDeferForSearch: false,
formatPhoneNumber,
});
cleanupAfterSkipConfirmSubmit(overrides.shouldHandleNavigation, {
report,
Expand Down
Loading
Loading