From e31012d6b7fb9ceeeb3defb07ab1f44a0f86f9f1 Mon Sep 17 00:00:00 2001 From: "parasharrajat (via MelvinBot)" Date: Sun, 15 Mar 2026 13:57:30 +0000 Subject: [PATCH 1/3] Fetch announcement room members data via API on ReportParticipantsPage When viewing the #announcement room member list, only cached participant data was shown. Members without cached personal details were silently dropped. This adds an API call to openRoomMembersPage for announcement rooms so the server returns the full member data, matching how RoomMembersPage already fetches data. Hidden participant filtering remains unchanged. Co-authored-by: parasharrajat --- src/pages/ReportParticipantsPage.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index a1a51016fd73f..fe354e4ba80ad 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -29,7 +29,7 @@ import useSearchBackPress from '@hooks/useSearchBackPress'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; -import {removeFromGroupChat, updateGroupChatMemberRoles} from '@libs/actions/Report'; +import {openRoomMembersPage, removeFromGroupChat, updateGroupChatMemberRoles} from '@libs/actions/Report'; import {clearUserSearchPhrase} from '@libs/actions/RoomMembersUserSearchPhrase'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; @@ -39,6 +39,7 @@ import {getDisplayNameOrDefault, getPersonalDetailsByIDs} from '@libs/PersonalDe import {getReportName} from '@libs/ReportNameUtils'; import { getReportPersonalDetailsParticipants, + isAnnounceRoom, isArchivedNonExpenseReport, isChatRoom, isChatThread, @@ -133,6 +134,13 @@ function ReportParticipantsPage({report, route}: ReportParticipantsPageProps) { } }, [isFocused, setSearchValue, shouldShowTextInput, userSearchPhrase]); + useEffect(() => { + if (isAnnounceRoom(report)) { + openRoomMembersPage(report.reportID); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useSearchBackPress({ onClearSelection: () => setSelectedMembers([]), onNavigationCallBack: () => { From 09daf24ea16ace7693a5bf14db6757e5af03f50a Mon Sep 17 00:00:00 2001 From: "parasharrajat (via MelvinBot)" Date: Sun, 15 Mar 2026 13:58:28 +0000 Subject: [PATCH 2/3] Fix ESLint prefer-early-return in announcement room useEffect Co-authored-by: parasharrajat --- src/pages/ReportParticipantsPage.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index fe354e4ba80ad..621beb83abee1 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -135,9 +135,10 @@ function ReportParticipantsPage({report, route}: ReportParticipantsPageProps) { }, [isFocused, setSearchValue, shouldShowTextInput, userSearchPhrase]); useEffect(() => { - if (isAnnounceRoom(report)) { - openRoomMembersPage(report.reportID); + if (!isAnnounceRoom(report)) { + return; } + openRoomMembersPage(report.reportID); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From 3e98b924fb6e145d168b7b19e4902a45941e0506 Mon Sep 17 00:00:00 2001 From: "parasharrajat (via MelvinBot)" Date: Mon, 16 Mar 2026 10:25:24 +0000 Subject: [PATCH 3/3] Add justification comment for eslint-disable react-hooks/exhaustive-deps Co-authored-by: parasharrajat --- src/pages/ReportParticipantsPage.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index 621beb83abee1..90128a4ef9935 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -139,6 +139,7 @@ function ReportParticipantsPage({report, route}: ReportParticipantsPageProps) { return; } openRoomMembersPage(report.reportID); + // We only want to fetch room members once on mount, not when report changes // eslint-disable-next-line react-hooks/exhaustive-deps }, []);