From 278fd5bd59bdcefe7b51d285643d3e77eac78109 Mon Sep 17 00:00:00 2001 From: ajbura Date: Sun, 13 Feb 2022 13:32:57 +0530 Subject: [PATCH] Fix member load triggering re-renders (#261) Signed-off-by: ajbura --- src/app/molecules/room-members/RoomMembers.jsx | 4 ++++ src/app/organisms/room/PeopleDrawer.jsx | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app/molecules/room-members/RoomMembers.jsx b/src/app/molecules/room-members/RoomMembers.jsx index a1ffd21c..ac004f46 100644 --- a/src/app/molecules/room-members/RoomMembers.jsx +++ b/src/app/molecules/room-members/RoomMembers.jsx @@ -58,8 +58,10 @@ function useMemberOfMembership(roomId, membership) { useEffect(() => { let isMounted = true; + let isLoadingMembers = false; const updateMemberList = (event) => { + if (isLoadingMembers) return; if (event && event?.getRoomId() !== roomId) return; const memberOfMembership = normalizeMembers( room.getMembersWithMembership(membership) @@ -69,7 +71,9 @@ function useMemberOfMembership(roomId, membership) { }; updateMemberList(); + isLoadingMembers = true; room.loadMembersIfNeeded().then(() => { + isLoadingMembers = false; if (!isMounted) return; updateMemberList(); }); diff --git a/src/app/organisms/room/PeopleDrawer.jsx b/src/app/organisms/room/PeopleDrawer.jsx index 026173d4..ee966146 100644 --- a/src/app/organisms/room/PeopleDrawer.jsx +++ b/src/app/organisms/room/PeopleDrawer.jsx @@ -103,10 +103,10 @@ function PeopleDrawer({ roomId }) { }, [memberList]); useEffect(() => { - let isGettingMembers = true; + let isLoadingMembers = false; let isRoomChanged = false; const updateMemberList = (event) => { - if (isGettingMembers) return; + if (isLoadingMembers) return; if (event && event?.getRoomId() !== roomId) return; setMemberList( simplyfiMembers( @@ -117,8 +117,9 @@ function PeopleDrawer({ roomId }) { }; searchRef.current.value = ''; updateMemberList(); + isLoadingMembers = true; room.loadMembersIfNeeded().then(() => { - isGettingMembers = false; + isLoadingMembers = false; if (isRoomChanged) return; updateMemberList(); });