Fix bug in room member search
authorAjay Bura <ajbura@gmail.com>
Sun, 30 Jan 2022 13:27:15 +0000 (18:57 +0530)
committerAjay Bura <ajbura@gmail.com>
Sun, 30 Jan 2022 13:27:15 +0000 (18:57 +0530)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
src/app/molecules/room-members/RoomMembers.jsx

index cd49f9bb5b8247f61f5ad93733f8b14e205d739e..f7dfbf20a43d1456a82d4c1d8180c7b50376bfc3 100644 (file)
@@ -84,15 +84,15 @@ function useMemberOfMembership(roomId, membership) {
   return [members];
 }
 
-const asyncSearch = new AsyncSearch();
 function useSearchMembers(members) {
   const [searchMembers, setSearchMembers] = useState(null);
+  const [asyncSearch] = useState(new AsyncSearch());
 
   const reSearch = useCallback(() => {
     if (searchMembers) {
       asyncSearch.search(searchMembers.term);
     }
-  }, [searchMembers]);
+  }, [searchMembers, asyncSearch]);
 
   useEffect(() => {
     asyncSearch.setup(members, {
@@ -100,7 +100,7 @@ function useSearchMembers(members) {
       limit: PER_PAGE_MEMBER,
     });
     reSearch();
-  }, [members]);
+  }, [members, asyncSearch]);
 
   useEffect(() => {
     const handleSearchData = (data, term) => setSearchMembers({ data, term });
@@ -108,7 +108,7 @@ function useSearchMembers(members) {
     return () => {
       asyncSearch.removeListener(asyncSearch.RESULT_SENT, handleSearchData);
     };
-  }, []);
+  }, [asyncSearch]);
 
   const handleSearch = (e) => {
     const term = e.target.value;