Skip to content

Commit 401f00d

Browse files
create getPerDiemCustomUnits util
1 parent 349ed79 commit 401f00d

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

src/libs/PolicyUtils.ts

+11
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ function getActivePolicies(policies: OnyxCollection<Policy> | null, currentUserL
8686
!!policy && policy.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE && !!policy.name && !!policy.id && !!getPolicyRole(policy, currentUserLogin),
8787
);
8888
}
89+
90+
function getPerDiemCustomUnits(policies: OnyxCollection<Policy> | null, email: string | undefined): Array<{policyID: string; customUnit: CustomUnit}> {
91+
return (
92+
getActivePolicies(policies, email)
93+
.map((mappedPolicy) => ({policyID: mappedPolicy.id, customUnit: getPerDiemCustomUnit(mappedPolicy)}))
94+
// We filter out custom units that are undefine but ts cant' figure it out.
95+
.filter(({customUnit}) => !isEmptyObject(customUnit) && !!customUnit.enabled) as Array<{policyID: string; customUnit: CustomUnit}>
96+
);
97+
}
98+
8999
/**
90100
* Checks if the current user is an admin of the policy.
91101
*/
@@ -1338,6 +1348,7 @@ export {
13381348
extractPolicyIDFromPath,
13391349
escapeTagName,
13401350
getActivePolicies,
1351+
getPerDiemCustomUnits,
13411352
getAllSelfApprovers,
13421353
getAdminEmployees,
13431354
getCleanedTagName,

src/pages/iou/request/IOURequestStartPage.tsx

+2-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import useThemeStyles from '@hooks/useThemeStyles';
1515
import {canUseTouchScreen} from '@libs/DeviceCapabilities';
1616
import Navigation from '@libs/Navigation/Navigation';
1717
import OnyxTabNavigator, {TabScreenWithFocusTrapWrapper, TopTab} from '@libs/Navigation/OnyxTabNavigator';
18-
import {getActivePolicies, getPerDiemCustomUnit} from '@libs/PolicyUtils';
18+
import {getPerDiemCustomUnit, getPerDiemCustomUnits} from '@libs/PolicyUtils';
1919
import {getPayeeName} from '@libs/ReportUtils';
2020
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
2121
import type {IOURequestType} from '@userActions/IOU';
@@ -103,10 +103,7 @@ function IOURequestStartPage({
103103
return [headerWithBackBtnContainerElement, tabBarContainerElement, activeTabContainerElement].filter((element) => !!element) as HTMLElement[];
104104
}, [headerWithBackBtnContainerElement, tabBarContainerElement, activeTabContainerElement]);
105105

106-
const perDiemCustomUnits = getActivePolicies(allPolicies, session?.email)
107-
.map((mappedPolicy) => ({policyID: mappedPolicy.id, customUnit: getPerDiemCustomUnit(mappedPolicy)}))
108-
.filter(({customUnit}) => !isEmptyObject(customUnit) && !!customUnit.enabled);
109-
106+
const perDiemCustomUnits = getPerDiemCustomUnits(allPolicies, session?.email);
110107
const doesPerDiemPolicyExist = perDiemCustomUnits.length > 0;
111108

112109
const moreThanOnePerDiemExist = perDiemCustomUnits.length > 1;

src/pages/iou/request/step/IOURequestStepTime.tsx

+2-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import DateUtils from '@libs/DateUtils';
1313
import {addErrorMessage} from '@libs/ErrorUtils';
1414
import {isValidMoneyRequestType} from '@libs/IOUUtils';
1515
import Navigation from '@libs/Navigation/Navigation';
16-
import {getActivePolicies, getPerDiemCustomUnit} from '@libs/PolicyUtils';
16+
import {getPerDiemCustomUnits} from '@libs/PolicyUtils';
1717
import {getIOURequestPolicyID, setMoneyRequestDateAttribute} from '@userActions/IOU';
1818
import CONST from '@src/CONST';
1919
import ONYXKEYS from '@src/ONYXKEYS';
@@ -55,10 +55,7 @@ function IOURequestStepTime({
5555
const shouldShowNotFound = !isValidMoneyRequestType(iouType) || isEmptyObject(transaction?.comment?.customUnit) || isEmptyObject(policy);
5656
const isEditPage = name === SCREENS.MONEY_REQUEST.STEP_TIME_EDIT;
5757

58-
const perDiemCustomUnits = getActivePolicies(allPolicies, session?.email)
59-
.map((mappedPolicy) => ({policyID: mappedPolicy.id, customUnit: getPerDiemCustomUnit(mappedPolicy)}))
60-
.filter(({customUnit}) => !isEmptyObject(customUnit) && !!customUnit.enabled);
61-
58+
const perDiemCustomUnits = getPerDiemCustomUnits(allPolicies, session?.email);
6259
const moreThanOnePerDiemExist = perDiemCustomUnits.length > 1;
6360

6461
const navigateBack = () => {

0 commit comments

Comments
 (0)