diff --git a/apps/admin/data/fitai.db b/apps/admin/data/fitai.db index c544997..cbd7a62 100644 Binary files a/apps/admin/data/fitai.db and b/apps/admin/data/fitai.db differ diff --git a/apps/mobile/src/contexts/ChatContext.tsx b/apps/mobile/src/contexts/ChatContext.tsx index e86f271..0d39fad 100644 --- a/apps/mobile/src/contexts/ChatContext.tsx +++ b/apps/mobile/src/contexts/ChatContext.tsx @@ -78,6 +78,9 @@ export function ChatProvider({ children }: { children: React.ReactNode }) { const activeThreadIdRef = useRef(null); const currentUserIdRef = useRef(undefined); const refreshThreadsRef = useRef<() => Promise>(async () => {}); + const refreshMessagesRef = useRef<(threadId: string) => Promise>( + async () => {}, + ); const markThreadReadRef = useRef< (threadId: string, lastReadMessageId?: string) => Promise >(async () => {}); @@ -283,6 +286,10 @@ export function ChatProvider({ children }: { children: React.ReactNode }) { refreshThreadsRef.current = refreshThreads; }, [refreshThreads]); + useEffect(() => { + refreshMessagesRef.current = refreshMessages; + }, [refreshMessages]); + useEffect(() => { markThreadReadRef.current = markThreadRead; }, [markThreadRead]); @@ -587,7 +594,7 @@ export function ChatProvider({ children }: { children: React.ReactNode }) { socketRef.current.emit("chat:subscribe", { threadId: activeThreadId }); } - void refreshMessages(activeThreadId); + void refreshMessagesRef.current(activeThreadId); setThreads((prev) => prev.map((thread) => @@ -602,7 +609,7 @@ export function ChatProvider({ children }: { children: React.ReactNode }) { }); } }; - }, [activeThreadId, refreshMessages, socketConnected]); + }, [activeThreadId, socketConnected]); useEffect(() => { if (!activeThreadId) {