diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index e2126652abf44..59468316b5e0d 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -1202,17 +1202,6 @@ function getAdminEmployees(policy: OnyxEntry): PolicyEmployee[] { .filter((employee) => employee.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE && employee.role === CONST.POLICY.ROLE.ADMIN); } -/** - * Returns the policy of the report - * @deprecated Get the data straight from Onyx - This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850 - */ -function getPolicy(policyID: string | undefined, policies: OnyxCollection = allPolicies): OnyxEntry { - if (!policies || !policyID) { - return undefined; - } - return policies[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`]; -} - /** Return active policies where current user is an admin */ function getActiveAdminWorkspaces(policies: OnyxCollection | null, currentUserLogin: string | undefined): Policy[] { const activePolicies = getActivePolicies(policies, currentUserLogin); @@ -2076,9 +2065,6 @@ export { // This will be fixed as part of https://github.com/Expensify/App/issues/66397 // eslint-disable-next-line @typescript-eslint/no-deprecated getPersonalPolicy, - // This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850 - // eslint-disable-next-line @typescript-eslint/no-deprecated - getPolicy, getPolicyBrickRoadIndicatorStatus, getPolicyEmployeeListByIdWithoutCurrentUser, getSortedTagKeys, diff --git a/src/pages/iou/request/step/IOURequestStepDistance.tsx b/src/pages/iou/request/step/IOURequestStepDistance.tsx index c6d61391339a8..9ff3ba6594947 100644 --- a/src/pages/iou/request/step/IOURequestStepDistance.tsx +++ b/src/pages/iou/request/step/IOURequestStepDistance.tsx @@ -28,7 +28,7 @@ import useSelfDMReport from '@hooks/useSelfDMReport'; import useShowNotFoundPageInIOUStep from '@hooks/useShowNotFoundPageInIOUStep'; import useThemeStyles from '@hooks/useThemeStyles'; import useWaypointItems from '@hooks/useWaypointItems'; -import {getIOURequestPolicyID, setMoneyRequestAmount, updateMoneyRequestDistance} from '@libs/actions/IOU'; +import {setMoneyRequestAmount, updateMoneyRequestDistance} from '@libs/actions/IOU'; import {handleMoneyRequestStepDistanceNavigation} from '@libs/actions/IOU/MoneyRequest'; import {setDraftSplitTransaction, setSplitShares} from '@libs/actions/IOU/Split'; import {init, stop} from '@libs/actions/MapboxToken'; @@ -41,7 +41,6 @@ import {getLatestErrorField} from '@libs/ErrorUtils'; import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID'; import {shouldUseTransactionDraft} from '@libs/IOUUtils'; import Navigation from '@libs/Navigation/Navigation'; -import {getPolicy} from '@libs/PolicyUtils'; import {isArchivedReport, isPolicyExpenseChat as isPolicyExpenseChatUtil} from '@libs/ReportUtils'; import {getDistanceInMeters, getRateID, getRequestType, hasRoute, isCustomUnitRateIDForP2P, isWaypointNullIsland} from '@libs/TransactionUtils'; import CONST from '@src/CONST'; @@ -80,7 +79,6 @@ function IOURequestStepDistance({ const {isOffline} = useNetwork(); const {translate} = useLocalize(); const {isBetaEnabled} = usePermissions(); - const [allReports] = useOnyx(ONYXKEYS.COLLECTION.REPORT); const [reportNameValuePairs] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${report?.reportID}`); const isArchived = isArchivedReport(reportNameValuePairs); const [parentReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${getNonEmptyStringOnyxID(report?.parentReportID)}`); @@ -184,17 +182,10 @@ function IOURequestStepDistance({ (participants: Participant[]) => { // Get policy report based on transaction participants const isPolicyExpenseChat = participants?.some((participant) => participant.isPolicyExpenseChat); - const selectedReportID = participants?.length === 1 ? (participants.at(0)?.reportID ?? reportID) : reportID; - const policyReport = participants.at(0) ? allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${selectedReportID}`] : report; - - const IOUpolicyID = getIOURequestPolicyID(transaction, policyReport); - // This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850 - // eslint-disable-next-line @typescript-eslint/no-deprecated - const IOUpolicy = getPolicy(report?.policyID ?? IOUpolicyID); const policyCurrency = policy?.outputCurrency ?? personalPolicy?.outputCurrency ?? CONST.CURRENCY.USD; - const mileageRates = DistanceRequestUtils.getMileageRates(IOUpolicy); - const defaultMileageRate = DistanceRequestUtils.getDefaultMileageRate(IOUpolicy); + const mileageRates = DistanceRequestUtils.getMileageRates(policy); + const defaultMileageRate = DistanceRequestUtils.getDefaultMileageRate(policy); const mileageRate: MileageRate | undefined = isCustomUnitRateIDForP2P(transaction) ? DistanceRequestUtils.getRateForP2P(policyCurrency, transaction) : // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing @@ -211,7 +202,7 @@ function IOURequestStepDistance({ setSplitShares(transaction, amount, currency ?? '', participantAccountIDs ?? []); } }, - [report, allReports, transaction, transactionID, isSplitRequest, policy?.outputCurrency, reportID, customUnitRateID, personalPolicy?.outputCurrency], + [policy, personalPolicy?.outputCurrency, transaction, customUnitRateID, transactionID, isSplitRequest], ); // For quick button actions, we'll skip the confirmation page unless the report is archived or this is a workspace diff --git a/src/pages/iou/request/step/IOURequestStepDistanceMap.tsx b/src/pages/iou/request/step/IOURequestStepDistanceMap.tsx index 752fdecd9f4df..b5a0a6760548a 100644 --- a/src/pages/iou/request/step/IOURequestStepDistanceMap.tsx +++ b/src/pages/iou/request/step/IOURequestStepDistanceMap.tsx @@ -28,7 +28,7 @@ import useSelfDMReport from '@hooks/useSelfDMReport'; import useShowNotFoundPageInIOUStep from '@hooks/useShowNotFoundPageInIOUStep'; import useThemeStyles from '@hooks/useThemeStyles'; import useWaypointItems from '@hooks/useWaypointItems'; -import {getIOURequestPolicyID, setMoneyRequestAmount, updateMoneyRequestDistance} from '@libs/actions/IOU'; +import {setMoneyRequestAmount, updateMoneyRequestDistance} from '@libs/actions/IOU'; import {handleMoneyRequestStepDistanceNavigation} from '@libs/actions/IOU/MoneyRequest'; import {setDraftSplitTransaction, setSplitShares} from '@libs/actions/IOU/Split'; import {init, stop} from '@libs/actions/MapboxToken'; @@ -41,7 +41,6 @@ import {getLatestErrorField} from '@libs/ErrorUtils'; import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID'; import {shouldUseTransactionDraft} from '@libs/IOUUtils'; import Navigation from '@libs/Navigation/Navigation'; -import {getPolicy} from '@libs/PolicyUtils'; import {isArchivedReport, isPolicyExpenseChat as isPolicyExpenseChatUtil} from '@libs/ReportUtils'; import {getDistanceInMeters, getRateID, getRequestType, hasRoute, isCustomUnitRateIDForP2P, isWaypointNullIsland} from '@libs/TransactionUtils'; import CONST from '@src/CONST'; @@ -80,7 +79,6 @@ function IOURequestStepDistanceMap({ const {translate} = useLocalize(); const {isBetaEnabled} = usePermissions(); const {policyForMovingExpenses} = usePolicyForMovingExpenses(); - const [allReports] = useOnyx(ONYXKEYS.COLLECTION.REPORT); const [reportNameValuePairs] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${report?.reportID}`); const isArchived = isArchivedReport(reportNameValuePairs); const [parentReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${getNonEmptyStringOnyxID(report?.parentReportID)}`); @@ -179,19 +177,11 @@ function IOURequestStepDistanceMap({ // Sets `amount` and `split` share data before moving to the next step to avoid briefly showing `0.00` as the split share for participants const setDistanceRequestData = useCallback( (participants: Participant[]) => { - // Get policy report based on transaction participants const isPolicyExpenseChat = participants?.some((participant) => participant.isPolicyExpenseChat); - const selectedReportID = participants?.length === 1 ? (participants.at(0)?.reportID ?? reportID) : reportID; - const policyReport = participants.at(0) ? allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${selectedReportID}`] : report; - - const IOUpolicyID = getIOURequestPolicyID(transaction, policyReport); - // This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850 - // eslint-disable-next-line @typescript-eslint/no-deprecated - const IOUpolicy = getPolicy(report?.policyID ?? IOUpolicyID); const policyCurrency = policy?.outputCurrency ?? personalPolicy?.outputCurrency ?? CONST.CURRENCY.USD; - const mileageRates = DistanceRequestUtils.getMileageRates(IOUpolicy); - const defaultMileageRate = DistanceRequestUtils.getDefaultMileageRate(IOUpolicy); + const mileageRates = DistanceRequestUtils.getMileageRates(policy); + const defaultMileageRate = DistanceRequestUtils.getDefaultMileageRate(policy); const mileageRate: MileageRate | undefined = isCustomUnitRateIDForP2P(transaction) ? DistanceRequestUtils.getRateForP2P(policyCurrency, transaction) : // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing @@ -208,7 +198,7 @@ function IOURequestStepDistanceMap({ setSplitShares(transaction, amount, currency ?? '', participantAccountIDs ?? []); } }, - [report, allReports, transaction, transactionID, isSplitRequest, policy?.outputCurrency, reportID, customUnitRateID, personalPolicy?.outputCurrency], + [policy, personalPolicy?.outputCurrency, transaction, customUnitRateID, transactionID, isSplitRequest], ); // For quick button actions, we'll skip the confirmation page unless the report is archived or this is a workspace diff --git a/tests/unit/ModifiedExpenseMessageTest.ts b/tests/unit/ModifiedExpenseMessageTest.ts index 15ce68ddcbaea..9bc4d52484428 100644 --- a/tests/unit/ModifiedExpenseMessageTest.ts +++ b/tests/unit/ModifiedExpenseMessageTest.ts @@ -18,11 +18,10 @@ import {createRandomReport} from '../utils/collections/reports'; import {translateLocal} from '../utils/TestHelper'; import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; -// Mock PolicyUtils so getPolicy and isPolicyAdmin are controllable in tests. ModifiedExpenseMessage +// Mock PolicyUtils so isPolicyAdmin are controllable in tests. ModifiedExpenseMessage // uses named imports from this module; spies alone do not affect those references, so we need a module mock. jest.mock('@libs/PolicyUtils', () => ({ ...jest.requireActual('@libs/PolicyUtils'), - getPolicy: jest.fn(), isPolicyAdmin: jest.fn(), }));