Skip to content

Commit e43a372

Browse files
authored
Merge pull request #36672 from ArekChr/refactor/collect_ws_menu_items
feat: display members(admin) and profile only for collect group policy
2 parents 6474d29 + 3babafa commit e43a372

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/libs/PolicyUtils.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ function isExpensifyGuideTeam(email: string): boolean {
108108
*/
109109
const isPolicyAdmin = (policy: OnyxEntry<Policy> | EmptyObject): boolean => policy?.role === CONST.POLICY.ROLE.ADMIN;
110110

111+
/**
112+
* Checks if the policy is a free group policy.
113+
*/
114+
const isFreeGroupPolicy = (policy: OnyxEntry<Policy> | EmptyObject): boolean => policy?.type === CONST.POLICY.TYPE.FREE;
115+
111116
const isPolicyMember = (policyID: string, policies: OnyxCollection<Policy>): boolean => Object.values(policies ?? {}).some((policy) => policy?.id === policyID);
112117

113118
/**
@@ -258,6 +263,7 @@ export {
258263
isExpensifyTeam,
259264
isExpensifyGuideTeam,
260265
isInstantSubmitEnabled,
266+
isFreeGroupPolicy,
261267
isPolicyAdmin,
262268
isSubmitAndClose,
263269
getMemberAccountIDsForWorkspace,

src/pages/workspace/WorkspaceInitialPage.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,10 @@ function WorkspaceInitialPage({policyDraft, policy: policyProp, policyMembers, r
9898
const hasGeneralSettingsError = !isEmptyObject(policy?.errorFields?.generalSettings ?? {}) || !isEmptyObject(policy?.errorFields?.avatar ?? {});
9999

100100
const shouldShowProtectedItems = PolicyUtils.isPolicyAdmin(policy);
101+
const isPaidGroupPolicy = PolicyUtils.isPaidGroupPolicy(policy);
102+
const isFreeGroupPolicy = PolicyUtils.isFreeGroupPolicy(policy);
101103

102-
const protectedMenuItems: WorkspaceMenuItem[] = [
104+
const protectedFreePolicyMenuItems: WorkspaceMenuItem[] = [
103105
{
104106
translationKey: 'workspace.common.card',
105107
icon: Expensicons.ExpensifyCard,
@@ -148,6 +150,16 @@ function WorkspaceInitialPage({policyDraft, policy: policyProp, policyMembers, r
148150
},
149151
];
150152

153+
const protectedCollectPolicyMenuItems: WorkspaceMenuItem[] = [
154+
{
155+
translationKey: 'workspace.common.members',
156+
icon: Expensicons.Users,
157+
action: singleExecution(waitForNavigate(() => Navigation.navigate(ROUTES.WORKSPACE_MEMBERS.getRoute(policyID)))),
158+
brickRoadIndicator: hasMembersError ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined,
159+
routeName: SCREENS.WORKSPACE.MEMBERS,
160+
},
161+
];
162+
151163
const menuItems: WorkspaceMenuItem[] = [
152164
{
153165
translationKey: 'workspace.common.profile',
@@ -156,7 +168,8 @@ function WorkspaceInitialPage({policyDraft, policy: policyProp, policyMembers, r
156168
brickRoadIndicator: hasGeneralSettingsError ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined,
157169
routeName: SCREENS.WORKSPACE.PROFILE,
158170
},
159-
...(shouldShowProtectedItems ? protectedMenuItems : []),
171+
...(isPaidGroupPolicy && shouldShowProtectedItems ? protectedCollectPolicyMenuItems : []),
172+
...(isFreeGroupPolicy && shouldShowProtectedItems ? protectedFreePolicyMenuItems : []),
160173
];
161174

162175
const prevPolicy = usePrevious(policy);

0 commit comments

Comments
 (0)