about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-05-08 21:19:45 +0100
committerGitHub <noreply@github.com>2024-05-08 21:19:45 +0100
commit750a5c899b31fec215064836be548aa71e83c82d (patch)
tree311801af93197207bdc50357bf306d9e332cf08f
parent7d06fb94322dd5141adc897081b0b9f3b26d4240 (diff)
downloadvoidsky-750a5c899b31fec215064836be548aa71e83c82d.tar.zst
actually optimistic mark as read (#3917)
-rw-r--r--src/state/queries/messages/conversation.ts13
-rw-r--r--src/state/queries/messages/list-converations.ts1
2 files changed, 9 insertions, 5 deletions
diff --git a/src/state/queries/messages/conversation.ts b/src/state/queries/messages/conversation.ts
index 551fbe98e..b4861b572 100644
--- a/src/state/queries/messages/conversation.ts
+++ b/src/state/queries/messages/conversation.ts
@@ -1,8 +1,9 @@
 import {BskyAgent} from '@atproto-labs/api'
-import {useMutation, useQuery} from '@tanstack/react-query'
+import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
 
 import {useOnMarkAsRead} from '#/state/queries/messages/list-converations'
 import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage'
+import {RQKEY as LIST_CONVOS_KEY} from './list-converations'
 import {useHeaders} from './temp-headers'
 
 const RQKEY_ROOT = 'convo'
@@ -28,7 +29,8 @@ export function useConvoQuery(convoId: string) {
 export function useMarkAsReadMutation() {
   const headers = useHeaders()
   const {serviceUrl} = useDmServiceUrlStorage()
-  const onMarkAsRead = useOnMarkAsRead()
+  const optimisticUpdate = useOnMarkAsRead()
+  const queryClient = useQueryClient()
 
   return useMutation({
     mutationFn: async ({
@@ -50,8 +52,11 @@ export function useMarkAsReadMutation() {
         },
       )
     },
-    onSuccess(_, {convoId}) {
-      onMarkAsRead(convoId)
+    onMutate({convoId}) {
+      optimisticUpdate(convoId)
+    },
+    onSettled() {
+      queryClient.invalidateQueries({queryKey: LIST_CONVOS_KEY})
     },
   })
 }
diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts
index 32107c0cd..936dd3a4a 100644
--- a/src/state/queries/messages/list-converations.ts
+++ b/src/state/queries/messages/list-converations.ts
@@ -122,7 +122,6 @@ export function useOnMarkAsRead() {
           unreadCount: 0,
         }))
       })
-      queryClient.invalidateQueries({queryKey: RQKEY})
     },
     [queryClient],
   )