From a42f97962b634123afe82bbe3804d391b4cc4712 Mon Sep 17 00:00:00 2001 From: benya Date: Sun, 8 Mar 2026 01:05:45 +0300 Subject: [PATCH] fix(web): resolve React #310 hook order crash in MessageList - move forwardTargets useMemo above conditional early return - keep hooks call order stable after login/activeChat switch --- web/src/components/MessageList.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/web/src/components/MessageList.tsx b/web/src/components/MessageList.tsx index 382abb6..98c0094 100644 --- a/web/src/components/MessageList.tsx +++ b/web/src/components/MessageList.tsx @@ -34,12 +34,6 @@ export function MessageList() { const messagesMap = useMemo(() => new Map(messages.map((m) => [m.id, m])), [messages]); const activeChat = chats.find((chat) => chat.id === activeChatId); - - if (!activeChatId) { - return
Select a chat
; - } - const chatId = activeChatId; - const forwardTargets = useMemo(() => { const q = forwardQuery.trim().toLowerCase(); if (!q) return chats; @@ -50,6 +44,11 @@ export function MessageList() { }); }, [chats, forwardQuery]); + if (!activeChatId) { + return
Select a chat
; + } + const chatId = activeChatId; + async function handleForward(targetChatId: number) { if (!forwardMessageId) return; setIsForwarding(true);