Skip to content

fix(sessions): cards de NPC cortados no dashboard desktop - #76

Open
egionCode wants to merge 2 commits into
mainfrom
fix/session-npc-card-layout
Open

egionCode wants to merge 2 commits into
mainfrom
fix/session-npc-card-layout

Conversation

@egionCode

Copy link
Copy Markdown
Owner

Problema

No dashboard de sessão em desktop, os cards de "NPCs em Combate" apareciam cortados: só o ícone do NPC e os botões de ação ficavam visíveis, sem nome nem barra de HP.

Causa: o grid de NPCs usava crossAxisCount: 2 fixo. Dentro da coluna central do layout de 3 colunas (~414px), cada card ficava com ~199px. Descontando padding (32), avatar (44), espaçamento (16) e os três IconButton de 48px (156), a Expanded do meio recebia largura negativa e colapsava para zero, escondendo nome e HP.

Solução

  • O número de colunas passa a ser calculado a partir da largura real disponível (LayoutBuilder), reduzindo para menos colunas quando os cards ficariam abaixo da largura mínima legível (320px). O parâmetro crossAxisCount virou maxColumns: mobile continua com 1, desktop usa até 2 conforme couber.
  • Os botões de ação do Mestre passam a usar VisualDensity.compact e alvo de toque de 36px, liberando espaço para nome e HP em cards estreitos.

Testes

Novo caso em session_dashboard_screen_test.dart: renderiza a sessão com um NPC a 1568px de largura e verifica que nome e barra de HP mantêm largura maior que zero. Confirmado que o teste falha contra o código anterior.

  • flutter analyze: sem issues
  • flutter test: 140 testes passando

Validação pendente

Correção verificada por teste de widget (geometria), não por inspeção visual no app rodando.

🤖 Generated with Claude Code

egionCode and others added 2 commits August 10, 2026 10:03
The NPC grid used a hardcoded 2-column layout, so in the 3-column desktop
dashboard each card ended up around 200px wide: the middle section was
squeezed to zero and the name and the HP bar disappeared. The column count is
now derived from the width actually available, dropping to fewer columns when
the cards would go below the minimum readable width, and the GM action
buttons use a compact 36px tap target instead of the 48px default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Renders a session with one NPC instance at 1568px and asserts the name and
the HP bar keep a non-zero width. Fails against the previous hardcoded
2-column grid.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@egionCode egionCode added bug Something isn't working tests New test cases or test updates labels Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working tests New test cases or test updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant