diff --git a/apps/desktop/src/chat/ChatWidget.tsx b/apps/desktop/src/chat/ChatWidget.tsx index eda9f95..333ed78 100644 --- a/apps/desktop/src/chat/ChatWidget.tsx +++ b/apps/desktop/src/chat/ChatWidget.tsx @@ -130,15 +130,22 @@ export function ChatWidget({ ticketId, ticketRef }: ChatWidgetProps) { } }, [ticketId]) // Removido isMinimized - evita memory leak de resubscriptions - // Sincroniza estado de minimizado com o tamanho da janela (Tauri pode alterar por fora) + // Sincroniza estado de minimizado com o tamanho da janela (apenas em resizes reais, nao na montagem) + // O estado inicial isMinimized=true e definido no useState e nao deve ser sobrescrito na montagem useEffect(() => { + let isFirstRender = true const handler = () => { + // Ignorar a primeira chamada para preservar o estado inicial (isMinimized=true) + // Isso evita condicao de corrida onde window.innerHeight pode estar incorreto antes do Tauri aplicar o tamanho + if (isFirstRender) { + isFirstRender = false + return + } const h = window.innerHeight // thresholds alinhados com set_chat_minimized (52px minimizado, 520px expandido) setIsMinimized(h < 100) } window.addEventListener("resize", handler) - handler() return () => window.removeEventListener("resize", handler) }, [])