fix: corrige contador de mensagens nao lidas e chat desktop abrindo expandido
- Web: adiciona ref hasMarkedReadRef para evitar chamadas duplicadas ao markChatRead e garante que mensagens sejam marcadas como lidas mesmo quando o chat carrega apos isOpen se tornar true - Desktop: aumenta periodo de estabilizacao do resize handler para 500ms, evitando que eventos transitórios alterem o estado isMinimized 🤖 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
082f2d67f1
commit
efc3af3fde
2 changed files with 49 additions and 14 deletions
|
|
@ -133,12 +133,15 @@ export function ChatWidget({ ticketId, ticketRef }: ChatWidgetProps) {
|
|||
// 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
|
||||
// Ignorar todos os eventos de resize nos primeiros 500ms apos a montagem
|
||||
// Isso da tempo ao Tauri de aplicar o tamanho correto da janela
|
||||
// e evita que resizes transitórios durante a criação da janela alterem o estado
|
||||
const mountTime = Date.now()
|
||||
const STABILIZATION_DELAY = 500 // ms para a janela estabilizar
|
||||
|
||||
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
|
||||
// Ignorar eventos de resize durante o periodo de estabilizacao
|
||||
if (Date.now() - mountTime < STABILIZATION_DELAY) {
|
||||
return
|
||||
}
|
||||
const h = window.innerHeight
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue