about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-06-10 15:08:13 +0100
committerGitHub <noreply@github.com>2024-06-10 16:08:13 +0200
commit1317d881ed2f583a65bffeb835b2d57670cce235 (patch)
tree920b1e7eaaa9a9f1fa6a8924022a5dbc9477c2c6 /src
parent01b7a94a7eb95e9cf74fdcfe9cc350e62d0f7be2 (diff)
downloadvoidsky-1317d881ed2f583a65bffeb835b2d57670cce235.tar.zst
debounce refetching listconvos (#4455)
Diffstat (limited to 'src')
-rw-r--r--src/state/queries/messages/list-converations.tsx19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/state/queries/messages/list-converations.tsx b/src/state/queries/messages/list-converations.tsx
index ce2cd7079..306d4cae5 100644
--- a/src/state/queries/messages/list-converations.tsx
+++ b/src/state/queries/messages/list-converations.tsx
@@ -16,6 +16,7 @@ import {
   useInfiniteQuery,
   useQueryClient,
 } from '@tanstack/react-query'
+import debounce from 'lodash.debounce'
 
 import {useCurrentConvoId} from '#/state/messages/current-convo-id'
 import {useMessagesEventBus} from '#/state/messages/events'
@@ -89,6 +90,11 @@ export function ListConvosProviderInner({
   const {currentConvoId} = useCurrentConvoId()
   const {currentAccount} = useSession()
 
+  const debouncedRefetch = useMemo(
+    () => debounce(() => refetch, 500),
+    [refetch],
+  )
+
   useEffect(() => {
     const unsub = messagesBus.on(
       events => {
@@ -96,7 +102,7 @@ export function ListConvosProviderInner({
 
         events.logs.forEach(log => {
           if (ChatBskyConvoDefs.isLogBeginConvo(log)) {
-            refetch()
+            debouncedRefetch()
           } else if (ChatBskyConvoDefs.isLogLeaveConvo(log)) {
             queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) =>
               optimisticDelete(log.convoId, old),
@@ -170,7 +176,7 @@ export function ListConvosProviderInner({
                   }),
                 }
               } else {
-                refetch()
+                debouncedRefetch()
               }
             })
           }
@@ -183,7 +189,14 @@ export function ListConvosProviderInner({
     )
 
     return () => unsub()
-  }, [messagesBus, currentConvoId, refetch, queryClient, currentAccount?.did])
+  }, [
+    messagesBus,
+    currentConvoId,
+    refetch,
+    queryClient,
+    currentAccount?.did,
+    debouncedRefetch,
+  ])
 
   const ctx = useMemo(() => {
     return data?.pages.flatMap(page => page.convos) ?? []