error fixed

we must refresh for new msg
This commit is contained in:
echo 2026-04-03 04:41:38 +02:00
parent 9cbdc35903
commit 76fa04d129
2 changed files with 9 additions and 2 deletions

Binary file not shown.

View File

@ -78,6 +78,9 @@ export function ChatProvider({ children }: { children: React.ReactNode }) {
const activeThreadIdRef = useRef<string | null>(null); const activeThreadIdRef = useRef<string | null>(null);
const currentUserIdRef = useRef<string | undefined>(undefined); const currentUserIdRef = useRef<string | undefined>(undefined);
const refreshThreadsRef = useRef<() => Promise<void>>(async () => {}); const refreshThreadsRef = useRef<() => Promise<void>>(async () => {});
const refreshMessagesRef = useRef<(threadId: string) => Promise<void>>(
async () => {},
);
const markThreadReadRef = useRef< const markThreadReadRef = useRef<
(threadId: string, lastReadMessageId?: string) => Promise<void> (threadId: string, lastReadMessageId?: string) => Promise<void>
>(async () => {}); >(async () => {});
@ -283,6 +286,10 @@ export function ChatProvider({ children }: { children: React.ReactNode }) {
refreshThreadsRef.current = refreshThreads; refreshThreadsRef.current = refreshThreads;
}, [refreshThreads]); }, [refreshThreads]);
useEffect(() => {
refreshMessagesRef.current = refreshMessages;
}, [refreshMessages]);
useEffect(() => { useEffect(() => {
markThreadReadRef.current = markThreadRead; markThreadReadRef.current = markThreadRead;
}, [markThreadRead]); }, [markThreadRead]);
@ -587,7 +594,7 @@ export function ChatProvider({ children }: { children: React.ReactNode }) {
socketRef.current.emit("chat:subscribe", { threadId: activeThreadId }); socketRef.current.emit("chat:subscribe", { threadId: activeThreadId });
} }
void refreshMessages(activeThreadId); void refreshMessagesRef.current(activeThreadId);
setThreads((prev) => setThreads((prev) =>
prev.map((thread) => prev.map((thread) =>
@ -602,7 +609,7 @@ export function ChatProvider({ children }: { children: React.ReactNode }) {
}); });
} }
}; };
}, [activeThreadId, refreshMessages, socketConnected]); }, [activeThreadId, socketConnected]);
useEffect(() => { useEffect(() => {
if (!activeThreadId) { if (!activeThreadId) {