From 3d907f0120622092410a1724aaf50a465b36d39d Mon Sep 17 00:00:00 2001 From: ShridharGoel <35566748+ShridharGoel@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:23:52 +0530 Subject: [PATCH 1/3] Show valid menu options on selection to change access --- src/pages/ReportParticipantsPage.tsx | 30 ++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index 9c0e19e85ee4..1edf9631b519 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -226,22 +226,32 @@ function ReportParticipantsPage({report, personalDetails, session}: ReportPartic icon: Expensicons.RemoveMembers, onSelected: () => setRemoveMembersConfirmModalVisible(true), }, - { - text: translate('workspace.people.makeAdmin'), - value: CONST.POLICY.MEMBERS_BULK_ACTION_TYPES.MAKE_ADMIN, - icon: Expensicons.MakeAdmin, - onSelected: () => changeUserRole(CONST.REPORT.ROLE.ADMIN), - }, - { + ]; + + const isAtleastOneAdminSelected = selectedMembers.some((accountId) => report.participants?.[accountId]?.role === CONST.REPORT.ROLE.ADMIN); + + if (isAtleastOneAdminSelected) { + options.push({ text: translate('workspace.people.makeMember'), value: CONST.POLICY.MEMBERS_BULK_ACTION_TYPES.MAKE_MEMBER, icon: Expensicons.MakeAdmin, onSelected: () => changeUserRole(CONST.REPORT.ROLE.MEMBER), - }, - ]; + }) + } + + const isAtleastOneMemberSelected = selectedMembers.some((accountId) => report.participants?.[accountId]?.role === CONST.REPORT.ROLE.MEMBER); + + if (isAtleastOneMemberSelected) { + options.push({ + text: translate('workspace.people.makeAdmin'), + value: CONST.POLICY.MEMBERS_BULK_ACTION_TYPES.MAKE_ADMIN, + icon: Expensicons.MakeAdmin, + onSelected: () => changeUserRole(CONST.REPORT.ROLE.ADMIN), + }) + } return options; - }, [changeUserRole, translate, setRemoveMembersConfirmModalVisible]); + }, [changeUserRole, translate, setRemoveMembersConfirmModalVisible, selectedMembers]); const headerButtons = useMemo(() => { if (!isGroupChat) { From ac80bdd2324198842d6f66c45a8a6c556c8a3139 Mon Sep 17 00:00:00 2001 From: Shridhar Goel <35566748+ShridharGoel@users.noreply.github.com> Date: Tue, 30 Apr 2024 18:27:13 +0530 Subject: [PATCH 2/3] Update --- src/pages/ReportParticipantsPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index 1edf9631b519..9228cd4b3bf1 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -251,7 +251,7 @@ function ReportParticipantsPage({report, personalDetails, session}: ReportPartic } return options; - }, [changeUserRole, translate, setRemoveMembersConfirmModalVisible, selectedMembers]); + }, [changeUserRole, translate, setRemoveMembersConfirmModalVisible, selectedMembers, report.participants]); const headerButtons = useMemo(() => { if (!isGroupChat) { From 2950d5ea0e109152400702d1a3414c82baef9a14 Mon Sep 17 00:00:00 2001 From: ShridharGoel <35566748+ShridharGoel@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:52:00 +0530 Subject: [PATCH 3/3] Fixes --- src/pages/ReportParticipantsPage.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index 9228cd4b3bf1..63b1a924fe29 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -236,7 +236,7 @@ function ReportParticipantsPage({report, personalDetails, session}: ReportPartic value: CONST.POLICY.MEMBERS_BULK_ACTION_TYPES.MAKE_MEMBER, icon: Expensicons.MakeAdmin, onSelected: () => changeUserRole(CONST.REPORT.ROLE.MEMBER), - }) + }); } const isAtleastOneMemberSelected = selectedMembers.some((accountId) => report.participants?.[accountId]?.role === CONST.REPORT.ROLE.MEMBER); @@ -247,7 +247,7 @@ function ReportParticipantsPage({report, personalDetails, session}: ReportPartic value: CONST.POLICY.MEMBERS_BULK_ACTION_TYPES.MAKE_ADMIN, icon: Expensicons.MakeAdmin, onSelected: () => changeUserRole(CONST.REPORT.ROLE.ADMIN), - }) + }); } return options;