fix: corrige chat desktop abrindo expandido ao inves de minimizado

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 <noreply@anthropic.com>
This commit is contained in:
rever-tecnologia 2025-12-11 15:42:33 -03:00
parent 9a13e9c6fb
commit 366bc4bf12

View file

@ -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)
}, [])