about summary refs log tree commit diff
path: root/src/screens/Messages/Temp/query/query.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/screens/Messages/Temp/query/query.ts')
-rw-r--r--src/screens/Messages/Temp/query/query.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/screens/Messages/Temp/query/query.ts b/src/screens/Messages/Temp/query/query.ts
index a51929bca..a4d78e0bb 100644
--- a/src/screens/Messages/Temp/query/query.ts
+++ b/src/screens/Messages/Temp/query/query.ts
@@ -73,6 +73,8 @@ export function useChat(chatId: string) {
       const chatJson =
         (await chatResponse.json()) as TempDmChatGetChat.OutputSchema
 
+      queryClient.setQueryData(['chatQuery', chatId], chatJson.chat)
+
       const newChat = {
         chatId,
         messages: messagesJson.messages,
@@ -275,3 +277,25 @@ export function useListChats() {
     getNextPageParam: lastPage => lastPage.cursor,
   })
 }
+
+export function useChatQuery(chatId: string) {
+  const headers = useHeaders()
+  const {serviceUrl} = useDmServiceUrlStorage()
+
+  return useQuery({
+    queryKey: ['chatQuery', chatId],
+    queryFn: async () => {
+      const chatResponse = await fetch(
+        `${serviceUrl}/xrpc/temp.dm.getChat?chatId=${chatId}`,
+        {
+          headers,
+        },
+      )
+
+      if (!chatResponse.ok) throw new Error('Failed to fetch chat')
+
+      const json = (await chatResponse.json()) as TempDmChatGetChat.OutputSchema
+      return json.chat
+    },
+  })
+}