Skip to content

fix(ui): limita altura do chat e adiciona rolagem interna no lobby (#70) - #74

Merged
caioross merged 1 commit into
mainfrom
auto/issue-70-chat-height
Jul 26, 2026
Merged

fix(ui): limita altura do chat e adiciona rolagem interna no lobby (#70)#74
caioross merged 1 commit into
mainfrom
auto/issue-70-chat-height

Conversation

@caioross

Copy link
Copy Markdown
Owner

Problema

O painel de chat (src/components/Chat.tsx, usado no lobby) não tinha teto de altura em todas as resoluções: no desktop (lg) o <aside> já limitava via lg:max-h-[calc(100vh-100px)], mas abaixo de lg (layout de coluna única, empilhado) nada limitava — o chat crescia com as mensagens e empurrava o resto da página, obrigando a rolar a tela inteira. Pior em salas cheias/ativas.

O que mudou e por quê

Um único ponto, na lista de mensagens de Chat.tsx:

  • max-h-[45vh] abaixo de lg → o painel para de crescer e passa a rolar por dentro, mantendo o resto da página estático.
  • lg:max-h-none → no desktop o <aside> já limita a altura, então soltamos o teto e deixamos o flex-1 preencher como antes (comportamento desktop inalterado).
  • min-h-0 → garante que o overflow-y-auto role dentro do flex column (sem isso o item de flex pode não encolher).

O auto-scroll para a última mensagem e o overflow-y-auto já existiam — faltava só o teto de altura fora do desktop.

Critérios de aceite

  • Altura máxima definida para o chat (max-h-[45vh] abaixo de lg; no desktop o aside já limita).
  • Barra de rolagem interna (overflow-y-auto, já presente, agora efetiva em todas as resoluções).
  • Novas mensagens continuam aparecendo automaticamente (auto-scroll via listRef.scrollTo, inalterado).
  • O restante da página não sofre alteração de tamanho (o painel deixa de crescer).
  • Funciona em desktop e mobile (breakpoint lg cobre os dois casos).

Gate (resultado real, no worktree)

  • pnpm install --frozen-lockfile
  • pnpm typecheck
  • pnpm build
  • pnpm test ✅ 34/34
  • pnpm lint = N/A (sem config ESLint no repo; a CI não roda lint)

Riscos e verificação

Baixo. Diff = uma linha de className em Chat.tsx (Tailwind puro). Área sagrada (input da corrida) intacta — o chat durante a corrida é o FloatingChat (fixed), não este painel. Sem tocar banco/RLS/anti-cheat.

Verificação em browser do lobby fica atrás de uma sala Supabase ao vivo (sem .env.local no worktree e sem o harness dev proposto na #37, a tela é inalcançável headless — a mesma limitação que a #37 existe para destravar). Validado por typecheck+build+test e inspeção do markup.

Closes #70

Sem um teto de altura, o painel de chat cresce com as mensagens e empurra o
resto da página — pior em salas cheias e ativas. No desktop (lg) o `<aside>`
já limitava a altura; abaixo de lg (layout empilhado) não havia limite.

Agora a lista de mensagens tem `max-h-[45vh]` abaixo de lg (com `min-h-0`
para o scroll funcionar no flex) e `lg:max-h-none` para seguir preenchendo o
aside já limitado no desktop. Auto-scroll e rolagem interna já existiam.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
code-racer Ready Ready Preview, Comment Jul 26, 2026 12:40pm

@caioross

Copy link
Copy Markdown
Owner Author

✅ PR Doctor — APROVADA (Normal §7.3)

Diff lido. Só Chat.tsx: teto de altura + rolagem interna (max-h-[45vh] lg:max-h-none min-h-0), sem lógica nova. É lobby/sala, não a textarea da corrida — área sagrada intacta. CI + Vercel verdes. Closes #70. Squash-merge.

@caioross
caioross merged commit 2d94cbc into main Jul 26, 2026
3 checks passed
@caioross
caioross deleted the auto/issue-70-chat-height branch July 26, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI] Limitar altura do chat durante a partida e adicionar rolagem interna

1 participant