Skip to content

Commit

Permalink
Fix lint part 2
Browse files Browse the repository at this point in the history
  • Loading branch information
shubham1206agra committed Jan 14, 2025
1 parent 9616b52 commit 784da8e
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 80 deletions.
104 changes: 60 additions & 44 deletions src/pages/iou/request/step/IOURequestStepConfirmation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,34 @@ import useNetwork from '@hooks/useNetwork';
import useThemeStyles from '@hooks/useThemeStyles';
import useWindowDimensions from '@hooks/useWindowDimensions';
import DateUtils from '@libs/DateUtils';
import * as DeviceCapabilities from '@libs/DeviceCapabilities';
import * as FileUtils from '@libs/fileDownload/FileUtils';
import {canUseTouchScreen} from '@libs/DeviceCapabilities';
import {isLocalFile as isLocalFileFileUtils} from '@libs/fileDownload/FileUtils';
import getCurrentPosition from '@libs/getCurrentPosition';
import * as IOUUtils from '@libs/IOUUtils';
import {isMovingTransactionFromTrackExpense as isMovingTransactionFromTrackExpenseIOUUtils, navigateToStartMoneyRequestStep, shouldUseTransactionDraft} from '@libs/IOUUtils';
import Log from '@libs/Log';
import Navigation from '@libs/Navigation/Navigation';
import * as OptionsListUtils from '@libs/OptionsListUtils';
import * as ReportUtils from '@libs/ReportUtils';
import {getParticipantsOption, getReportOption} from '@libs/OptionsListUtils';
import {getBankAccountRoute} from '@libs/ReportUtils';
import playSound, {SOUNDS} from '@libs/Sound';
import * as TransactionUtils from '@libs/TransactionUtils';
import * as IOU from '@userActions/IOU';
import {getDefaultTaxCode, getRateID, getRequestType, getValidWaypoints} from '@libs/TransactionUtils';
import type {GpsPoint} from '@userActions/IOU';
import {
createDistanceRequest as createDistanceRequestIOUActions,
getIOURequestPolicyID,
navigateToStartStepIfScanFileCannotBeRead,
requestMoney as requestMoneyIOUActions,
sendInvoice,
sendMoneyElsewhere,
sendMoneyWithWallet,
setMoneyRequestBillable,
setMoneyRequestCategory,
splitBill,
splitBillAndOpenReport,
startSplitBill,
submitPerDiemExpense as submitPerDiemExpenseIOUActions,
trackExpense as trackExpenseIOUActions,
updateLastLocationPermissionPrompt,
} from '@userActions/IOU';
import {openDraftWorkspaceRequest} from '@userActions/Policy/Policy';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -56,11 +73,11 @@ function IOURequestStepConfirmation({
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
const personalDetails = usePersonalDetails();

const [policyDraft] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_DRAFTS}${IOU.getIOURequestPolicyID(transaction, reportDraft)}`);
const [policyReal] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${IOU.getIOURequestPolicyID(transaction, reportReal)}`);
const [policyCategoriesReal] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${IOU.getIOURequestPolicyID(transaction, reportReal)}`);
const [policyCategoriesDraft] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${IOU.getIOURequestPolicyID(transaction, reportDraft)}`);
const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${IOU.getIOURequestPolicyID(transaction, reportReal)}`);
const [policyDraft] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_DRAFTS}${getIOURequestPolicyID(transaction, reportDraft)}`);
const [policyReal] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${getIOURequestPolicyID(transaction, reportReal)}`);
const [policyCategoriesReal] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${getIOURequestPolicyID(transaction, reportReal)}`);
const [policyCategoriesDraft] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${getIOURequestPolicyID(transaction, reportDraft)}`);
const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${getIOURequestPolicyID(transaction, reportReal)}`);

const report = reportReal ?? reportDraft;
const policy = policyReal ?? policyDraft;
Expand All @@ -75,21 +92,21 @@ function IOURequestStepConfirmation({
const [selectedParticipantList, setSelectedParticipantList] = useState<Participant[]>([]);

const [receiptFile, setReceiptFile] = useState<OnyxEntry<Receipt>>();
const requestType = TransactionUtils.getRequestType(transaction);
const requestType = getRequestType(transaction);
const isDistanceRequest = requestType === CONST.IOU.REQUEST_TYPE.DISTANCE;
const isPerDiemRequest = requestType === CONST.IOU.REQUEST_TYPE.PER_DIEM;
const [lastLocationPermissionPrompt] = useOnyx(ONYXKEYS.NVP_LAST_LOCATION_PERMISSION_PROMPT);

const receiptFilename = transaction?.filename;
const receiptPath = transaction?.receipt?.source;
const receiptType = transaction?.receipt?.type;
const customUnitRateID = TransactionUtils.getRateID(transaction) ?? '';
const defaultTaxCode = TransactionUtils.getDefaultTaxCode(policy, transaction);
const customUnitRateID = getRateID(transaction) ?? '';
const defaultTaxCode = getDefaultTaxCode(policy, transaction);
const transactionTaxCode = (transaction?.taxCode ? transaction?.taxCode : defaultTaxCode) ?? '';
const transactionTaxAmount = transaction?.taxAmount ?? 0;
const isSharingTrackExpense = action === CONST.IOU.ACTION.SHARE;
const isCategorizingTrackExpense = action === CONST.IOU.ACTION.CATEGORIZE;
const isMovingTransactionFromTrackExpense = IOUUtils.isMovingTransactionFromTrackExpense(action);
const isMovingTransactionFromTrackExpense = isMovingTransactionFromTrackExpenseIOUUtils(action);
const payeePersonalDetails = useMemo(() => {
if (personalDetails?.[transaction?.splitPayerAccountIDs?.at(0) ?? -1]) {
return personalDetails?.[transaction?.splitPayerAccountIDs?.at(0) ?? -1];
Expand Down Expand Up @@ -128,14 +145,14 @@ function IOURequestStepConfirmation({
if (participant.isSender && iouType === CONST.IOU.TYPE.INVOICE) {
return participant;
}
return participant.accountID ? OptionsListUtils.getParticipantsOption(participant, personalDetails) : OptionsListUtils.getReportOption(participant);
return participant.accountID ? getParticipantsOption(participant, personalDetails) : getReportOption(participant);
}) ?? [],
[transaction?.participants, personalDetails, iouType],
);
const isPolicyExpenseChat = useMemo(() => participants?.some((participant) => participant.isPolicyExpenseChat), [participants]);
const formHasBeenSubmitted = useRef(false);

useFetchRoute(transaction, transaction?.comment?.waypoints, action, IOUUtils.shouldUseTransactionDraft(action) ? CONST.TRANSACTION.STATE.DRAFT : CONST.TRANSACTION.STATE.CURRENT);
useFetchRoute(transaction, transaction?.comment?.waypoints, action, shouldUseTransactionDraft(action) ? CONST.TRANSACTION.STATE.DRAFT : CONST.TRANSACTION.STATE.CURRENT);

useEffect(() => {
const policyExpenseChat = participants?.find((participant) => participant.isPolicyExpenseChat);
Expand All @@ -150,15 +167,15 @@ function IOURequestStepConfirmation({

const defaultBillable = !!policy?.defaultBillable;
useEffect(() => {
IOU.setMoneyRequestBillable(transactionID, defaultBillable);
setMoneyRequestBillable(transactionID, defaultBillable);
}, [transactionID, defaultBillable]);

useEffect(() => {
if (!transaction?.category) {
return;
}
if (policyCategories?.[transaction.category] && !policyCategories[transaction.category].enabled) {
IOU.setMoneyRequestCategory(transactionID, '', policy?.id);
setMoneyRequestCategory(transactionID, '', policy?.id);
}
}, [policy?.id, policyCategories, transaction?.category, transactionID]);

Expand All @@ -169,7 +186,7 @@ function IOURequestStepConfirmation({
if (requestType !== CONST.IOU.REQUEST_TYPE.DISTANCE || !!transaction?.category) {
return;
}
IOU.setMoneyRequestCategory(transactionID, defaultCategory, policy?.id);
setMoneyRequestCategory(transactionID, defaultCategory, policy?.id);
// Prevent resetting to default when unselect category
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
}, [transactionID, requestType, defaultCategory, policy?.id]);
Expand All @@ -192,7 +209,7 @@ function IOURequestStepConfirmation({
Navigation.goBack(ROUTES.MONEY_REQUEST_STEP_PARTICIPANTS.getRoute(iouType, transactionID, transaction?.reportID || reportID, undefined, action));
return;
}
IOUUtils.navigateToStartMoneyRequestStep(requestType, iouType, transactionID, reportID, action);
navigateToStartMoneyRequestStep(requestType, iouType, transactionID, reportID, action);
}, [action, isPerDiemRequest, transaction?.participantsAutoAssigned, transaction?.reportID, participantsAutoAssignedFromRoute, requestType, iouType, transactionID, reportID]);

const navigateToAddReceipt = useCallback(() => {
Expand All @@ -204,8 +221,7 @@ function IOURequestStepConfirmation({
// the image ceases to exist. The best way for the user to recover from this is to start over from the start of the request process.
// skip this in case user is moving the transaction as the receipt path will be valid in that case
useEffect(() => {
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
const isLocalFile = FileUtils.isLocalFile(receiptPath);
const isLocalFile = isLocalFileFileUtils(receiptPath);

if (!isLocalFile) {
setReceiptFile(transaction?.receipt);
Expand All @@ -218,11 +234,11 @@ function IOURequestStepConfirmation({
setReceiptFile(receipt);
};

IOU.navigateToStartStepIfScanFileCannotBeRead(receiptFilename, receiptPath, onSuccess, requestType, iouType, transactionID, reportID, receiptType);
navigateToStartStepIfScanFileCannotBeRead(receiptFilename, receiptPath, onSuccess, requestType, iouType, transactionID, reportID, receiptType);
}, [receiptType, receiptPath, receiptFilename, requestType, iouType, transactionID, reportID, action, transaction?.receipt]);

const requestMoney = useCallback(
(selectedParticipants: Participant[], trimmedComment: string, receiptObj?: Receipt, gpsPoints?: IOU.GpsPoint) => {
(selectedParticipants: Participant[], trimmedComment: string, receiptObj?: Receipt, gpsPoints?: GpsPoint) => {
if (!transaction) {
return;
}
Expand All @@ -231,7 +247,7 @@ function IOURequestStepConfirmation({
if (!participant) {
return;
}
IOU.requestMoney({
requestMoneyIOUActions({
report,
participantParams: {
payeeEmail: currentUserPersonalDetails.login,
Expand Down Expand Up @@ -277,7 +293,7 @@ function IOURequestStepConfirmation({
if (!participant || isEmptyObject(transaction.comment) || isEmptyObject(transaction.comment.customUnit)) {
return;
}
IOU.submitPerDiemExpense({
submitPerDiemExpenseIOUActions({
report,
participantParams: {
payeeEmail: currentUserPersonalDetails.login,
Expand All @@ -303,15 +319,15 @@ function IOURequestStepConfirmation({
);

const trackExpense = useCallback(
(selectedParticipants: Participant[], trimmedComment: string, receiptObj?: OnyxEntry<Receipt>, gpsPoints?: IOU.GpsPoint) => {
(selectedParticipants: Participant[], trimmedComment: string, receiptObj?: OnyxEntry<Receipt>, gpsPoints?: GpsPoint) => {
if (!report || !transaction) {
return;
}
const participant = selectedParticipants.at(0);
if (!participant) {
return;
}
IOU.trackExpense(
trackExpenseIOUActions(
report,
transaction.amount,
transaction.currency,
Expand All @@ -332,7 +348,7 @@ function IOURequestStepConfirmation({
policyTags,
policyCategories,
gpsPoints,
Object.keys(transaction?.comment?.waypoints ?? {}).length ? TransactionUtils.getValidWaypoints(transaction.comment?.waypoints, true) : undefined,
Object.keys(transaction?.comment?.waypoints ?? {}).length ? getValidWaypoints(transaction.comment?.waypoints, true) : undefined,
action,
transaction.actionableWhisperReportActionID,
transaction.linkedTrackedExpenseReportAction,
Expand Down Expand Up @@ -361,7 +377,7 @@ function IOURequestStepConfirmation({
if (!transaction) {
return;
}
IOU.createDistanceRequest({
createDistanceRequestIOUActions({
report,
participants: selectedParticipants,
currentUserLogin: currentUserPersonalDetails.login,
Expand All @@ -385,7 +401,7 @@ function IOURequestStepConfirmation({
taxAmount: transactionTaxAmount,
customUnitRateID,
splitShares: transaction.splitShares,
validWaypoints: TransactionUtils.getValidWaypoints(transaction.comment?.waypoints, true),
validWaypoints: getValidWaypoints(transaction.comment?.waypoints, true),
billable: transaction.billable,
},
});
Expand Down Expand Up @@ -427,7 +443,7 @@ function IOURequestStepConfirmation({
// If we have a receipt let's start the split expense by creating only the action, the transaction, and the group DM if needed
if (iouType === CONST.IOU.TYPE.SPLIT && receiptFile) {
if (currentUserPersonalDetails.login && !!transaction) {
IOU.startSplitBill({
startSplitBill({
participants: selectedParticipants,
currentUserLogin: currentUserPersonalDetails.login,
currentUserAccountID: currentUserPersonalDetails.accountID,
Expand All @@ -449,7 +465,7 @@ function IOURequestStepConfirmation({
// Since the user is already viewing the report, we don't need to navigate them to the report
if (iouType === CONST.IOU.TYPE.SPLIT && !transaction?.isFromGlobalCreate) {
if (currentUserPersonalDetails.login && !!transaction) {
IOU.splitBill({
splitBill({
participants: splitParticipants,
currentUserLogin: currentUserPersonalDetails.login,
currentUserAccountID: currentUserPersonalDetails.accountID,
Expand All @@ -475,7 +491,7 @@ function IOURequestStepConfirmation({
// If the split expense is created from the global create menu, we also navigate the user to the group report
if (iouType === CONST.IOU.TYPE.SPLIT) {
if (currentUserPersonalDetails.login && !!transaction) {
IOU.splitBillAndOpenReport({
splitBillAndOpenReport({
participants: splitParticipants,
currentUserLogin: currentUserPersonalDetails.login,
currentUserAccountID: currentUserPersonalDetails.accountID,
Expand All @@ -498,7 +514,7 @@ function IOURequestStepConfirmation({
}

if (iouType === CONST.IOU.TYPE.INVOICE) {
IOU.sendInvoice(currentUserPersonalDetails.accountID, transaction, report, receiptFile, policy, policyTags, policyCategories);
sendInvoice(currentUserPersonalDetails.accountID, transaction, report, receiptFile, policy, policyTags, policyCategories);
return;
}

Expand Down Expand Up @@ -608,21 +624,21 @@ function IOURequestStepConfirmation({

if (paymentMethod === CONST.IOU.PAYMENT_TYPE.ELSEWHERE) {
setIsConfirmed(true);
IOU.sendMoneyElsewhere(report, transaction.amount, currency, trimmedComment, currentUserPersonalDetails.accountID, participant);
sendMoneyElsewhere(report, transaction.amount, currency, trimmedComment, currentUserPersonalDetails.accountID, participant);
return;
}

if (paymentMethod === CONST.IOU.PAYMENT_TYPE.EXPENSIFY) {
setIsConfirmed(true);
IOU.sendMoneyWithWallet(report, transaction.amount, currency, trimmedComment, currentUserPersonalDetails.accountID, participant);
sendMoneyWithWallet(report, transaction.amount, currency, trimmedComment, currentUserPersonalDetails.accountID, participant);
}
},
[transaction?.amount, transaction?.comment, transaction?.currency, participants, currentUserPersonalDetails.accountID, report],
);

const setBillable = useCallback(
(billable: boolean) => {
IOU.setMoneyRequestBillable(transactionID, billable);
setMoneyRequestBillable(transactionID, billable);
},
[transactionID],
);
Expand Down Expand Up @@ -655,7 +671,7 @@ function IOURequestStepConfirmation({

return (
<ScreenWrapper
shouldEnableMaxHeight={DeviceCapabilities.canUseTouchScreen()}
shouldEnableMaxHeight={canUseTouchScreen()}
testID={IOURequestStepConfirmation.displayName}
>
<View style={styles.flex1}>
Expand All @@ -681,7 +697,7 @@ function IOURequestStepConfirmation({
resetPermissionFlow={() => setStartLocationPermissionFlow(false)}
onGrant={() => createTransaction(selectedParticipantList, true)}
onDeny={() => {
IOU.updateLastLocationPermissionPrompt();
updateLastLocationPermissionPrompt();
createTransaction(selectedParticipantList, false);
}}
/>
Expand All @@ -703,8 +719,8 @@ function IOURequestStepConfirmation({
iouType={iouType}
reportID={reportID}
isPolicyExpenseChat={isPolicyExpenseChat}
policyID={IOU.getIOURequestPolicyID(transaction, report)}
bankAccountRoute={ReportUtils.getBankAccountRoute(report)}
policyID={getIOURequestPolicyID(transaction, report)}
bankAccountRoute={getBankAccountRoute(report)}
iouMerchant={transaction?.merchant}
iouCreated={transaction?.created}
isDistanceRequest={isDistanceRequest}
Expand Down
Loading

0 comments on commit 784da8e

Please sign in to comment.