An ATproto social media client -- with an independent Appview.
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

debounce refetching listconvos (#4455)

authored by

Samuel Newman and committed by
GitHub
1317d881 01b7a94a

+16 -3
+16 -3
src/state/queries/messages/list-converations.tsx
··· 16 16 useInfiniteQuery, 17 17 useQueryClient, 18 18 } from '@tanstack/react-query' 19 + import debounce from 'lodash.debounce' 19 20 20 21 import {useCurrentConvoId} from '#/state/messages/current-convo-id' 21 22 import {useMessagesEventBus} from '#/state/messages/events' ··· 89 90 const {currentConvoId} = useCurrentConvoId() 90 91 const {currentAccount} = useSession() 91 92 93 + const debouncedRefetch = useMemo( 94 + () => debounce(() => refetch, 500), 95 + [refetch], 96 + ) 97 + 92 98 useEffect(() => { 93 99 const unsub = messagesBus.on( 94 100 events => { ··· 96 102 97 103 events.logs.forEach(log => { 98 104 if (ChatBskyConvoDefs.isLogBeginConvo(log)) { 99 - refetch() 105 + debouncedRefetch() 100 106 } else if (ChatBskyConvoDefs.isLogLeaveConvo(log)) { 101 107 queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => 102 108 optimisticDelete(log.convoId, old), ··· 170 176 }), 171 177 } 172 178 } else { 173 - refetch() 179 + debouncedRefetch() 174 180 } 175 181 }) 176 182 } ··· 183 189 ) 184 190 185 191 return () => unsub() 186 - }, [messagesBus, currentConvoId, refetch, queryClient, currentAccount?.did]) 192 + }, [ 193 + messagesBus, 194 + currentConvoId, 195 + refetch, 196 + queryClient, 197 + currentAccount?.did, 198 + debouncedRefetch, 199 + ]) 187 200 188 201 const ctx = useMemo(() => { 189 202 return data?.pages.flatMap(page => page.convos) ?? []