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:
parent
9a13e9c6fb
commit
366bc4bf12
1 changed files with 9 additions and 2 deletions
|
|
@ -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)
|
||||
}, [])
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue