From 7f23c37839eac1436bac31f52ea0834d77ed9a55 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Thu, 30 May 2024 11:35:53 +0700 Subject: [PATCH] Fix removed user in offline is not crossed --- src/pages/RoomMembersPage.tsx | 97 +++++++++++++++++------------------ 1 file changed, 46 insertions(+), 51 deletions(-) diff --git a/src/pages/RoomMembersPage.tsx b/src/pages/RoomMembersPage.tsx index aefd2603e859..e737f1b1f94e 100644 --- a/src/pages/RoomMembersPage.tsx +++ b/src/pages/RoomMembersPage.tsx @@ -169,63 +169,58 @@ function RoomMembersPage({report, session, policies}: RoomMembersPageProps) { const participants = ReportUtils.getVisibleChatMemberAccountIDs(report.reportID); - participants - .flatMap((accountID) => { - const pendingMember = report?.pendingChatMembers?.findLast((member) => member.accountID === accountID.toString()); - return !pendingMember || pendingMember.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE ? accountID : []; - }) - ?.forEach((accountID) => { - const details = personalDetails[accountID]; + participants?.forEach((accountID) => { + const details = personalDetails[accountID]; - if (!details) { - Log.hmmm(`[RoomMembersPage] no personal details found for room member with accountID: ${accountID}`); - return; - } + if (!details) { + Log.hmmm(`[RoomMembersPage] no personal details found for room member with accountID: ${accountID}`); + return; + } - // If search value is provided, filter out members that don't match the search value - if (searchValue.trim()) { - let memberDetails = ''; - if (details.login) { - memberDetails += ` ${details.login.toLowerCase()}`; - } - if (details.firstName) { - memberDetails += ` ${details.firstName.toLowerCase()}`; - } - if (details.lastName) { - memberDetails += ` ${details.lastName.toLowerCase()}`; - } - if (details.displayName) { - memberDetails += ` ${PersonalDetailsUtils.getDisplayNameOrDefault(details).toLowerCase()}`; - } - if (details.phoneNumber) { - memberDetails += ` ${details.phoneNumber.toLowerCase()}`; - } + // If search value is provided, filter out members that don't match the search value + if (searchValue.trim()) { + let memberDetails = ''; + if (details.login) { + memberDetails += ` ${details.login.toLowerCase()}`; + } + if (details.firstName) { + memberDetails += ` ${details.firstName.toLowerCase()}`; + } + if (details.lastName) { + memberDetails += ` ${details.lastName.toLowerCase()}`; + } + if (details.displayName) { + memberDetails += ` ${PersonalDetailsUtils.getDisplayNameOrDefault(details).toLowerCase()}`; + } + if (details.phoneNumber) { + memberDetails += ` ${details.phoneNumber.toLowerCase()}`; + } - if (!OptionsListUtils.isSearchStringMatch(searchValue.trim(), memberDetails)) { - return; - } + if (!OptionsListUtils.isSearchStringMatch(searchValue.trim(), memberDetails)) { + return; } - const pendingChatMember = report?.pendingChatMembers?.findLast((member) => member.accountID === accountID.toString()); + } + const pendingChatMember = report?.pendingChatMembers?.findLast((member) => member.accountID === accountID.toString()); - result.push({ - keyForList: String(accountID), - accountID, - isSelected: selectedMembers.includes(accountID), - isDisabled: accountID === session?.accountID || pendingChatMember?.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, - text: formatPhoneNumber(PersonalDetailsUtils.getDisplayNameOrDefault(details)), - alternateText: details?.login ? formatPhoneNumber(details.login) : '', - icons: [ - { - source: details.avatar ?? FallbackAvatar, - name: details.login ?? '', - type: CONST.ICON_TYPE_AVATAR, - id: accountID, - }, - ], - pendingAction: pendingChatMember?.pendingAction, - errors: pendingChatMember?.errors, - }); + result.push({ + keyForList: String(accountID), + accountID, + isSelected: selectedMembers.includes(accountID), + isDisabled: accountID === session?.accountID || pendingChatMember?.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, + text: formatPhoneNumber(PersonalDetailsUtils.getDisplayNameOrDefault(details)), + alternateText: details?.login ? formatPhoneNumber(details.login) : '', + icons: [ + { + source: details.avatar ?? FallbackAvatar, + name: details.login ?? '', + type: CONST.ICON_TYPE_AVATAR, + id: accountID, + }, + ], + pendingAction: pendingChatMember?.pendingAction, + errors: pendingChatMember?.errors, }); + }); result = result.sort((value1, value2) => localeCompare(value1.text ?? '', value2.text ?? ''));