From 366bc4bf1256504f8b570eeae12605107c1f2f1a Mon Sep 17 00:00:00 2001 From: rever-tecnologia Date: Thu, 11 Dec 2025 15:42:33 -0300 Subject: [PATCH] fix: corrige chat desktop abrindo expandido ao inves de minimizado MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O problema era que o resize handler executava imediatamente na montagem do componente, potencialmente lendo window.innerHeight incorreto antes do Tauri aplicar o tamanho da janela. Isso fazia o isMinimized ser setado como false (expandido) mesmo quando a janela foi criada minimizada pelo Rust. Correcao: - Ignorar a primeira execucao do resize handler - Preservar o estado inicial isMinimized=true definido no useState - Sincronizar apenas em resizes reais (interacao do usuario) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- apps/desktop/src/chat/ChatWidget.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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) }, [])