about summary refs log tree commit diff
path: root/src/state/queries/messages/list-converations.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/queries/messages/list-converations.ts')
-rw-r--r--src/state/queries/messages/list-converations.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts
index e66551ceb..32107c0cd 100644
--- a/src/state/queries/messages/list-converations.ts
+++ b/src/state/queries/messages/list-converations.ts
@@ -111,6 +111,23 @@ export function useOnCreateConvo() {
   }, [queryClient])
 }
 
+export function useOnMarkAsRead() {
+  const queryClient = useQueryClient()
+
+  return useCallback(
+    (chatId: string) => {
+      queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => {
+        return optimisticUpdate(chatId, old, convo => ({
+          ...convo,
+          unreadCount: 0,
+        }))
+      })
+      queryClient.invalidateQueries({queryKey: RQKEY})
+    },
+    [queryClient],
+  )
+}
+
 function optimisticUpdate(
   chatId: string,
   old: ConvoListQueryData,