teqo-backup/docs/plans/sidebar-sem-logo-escopo-impl.md
2026-08-02 19:17:14 +00:00

2.9 KiB

Impl: Sidebar /campanha — sem logo nem chip de escopo no topo

Status: aprovado Atualizado em: 2026-08-02 Issue: #271 Intenção: docs/plans/sidebar-sem-logo-escopo.md Appetite restante: ~0,5 dia (herdado)

Leitura da intenção

  • Outcome: O topo da sidebar (desktop e Sheet mobile) não exibe logo nem badge de papel; a lista de navegação começa no topo, alinhada com o header da área principal. Login mantém logo; chips de escopo em páginas permanecem.
  • O que NÃO negociar: CampaignScopeBadge e CampaignLogo seguem vivos fora da sidebar; leader lockdown e nav por role intactos; auth shell inalterado.
  • O que reavaliar: A hipótese de editar só CampaignSidebar.tsx confirma-se — não há outro call site de logo/badge na sidebar.

Abordagem recomendada

flowchart LR
  A[CampaignSidebar] --> B[Remove SidebarHeader + logo]
  A --> C[Remove CampaignScopeBadge do grupo nav]
  D[CampaignAuthPageShell] --> E[logo intacto]
  F[páginas de lista] --> G[CampaignScopeBadge intacto]

Opções consideradas:

  • A — Remover SidebarHeader inteiro e o badge do primeiro SidebarGroup em CampaignSidebar.tsx
  • B — Esconder via CSS (hidden) mantendo DOM
  • C — Mover logo para o rodapé

Recomendação: A — remoção direta no dono; menos DOM, sem degrau vertical, sem código morto. Rejeitadas: B (DOM fantasma, testes frágeis); C (fora do escopo de produto).

Componentes / mudanças

  • CampaignSidebar (src/components/campaign/shell/CampaignSidebar.tsx): remover SidebarHeader (logo link), CampaignScopeBadge e imports órfãos (CampaignLogo, CampaignScopeBadge, SidebarHeader, campaignRoleLabels).
  • Migration: sem migration
  • Access / Consent: N/A
  • UI: Impeccable B — encaixe no shell; nav cola no topo do SidebarContent; footer com avatar/perfil inalterado.

Dados → forma

N/A — chrome estrutural.

Fases verificáveis

  1. UI — editar CampaignSidebar.tsx; limpar imports
  2. Gates — pnpm gate:fast; push via pnpm push

Rabbit holes / Não escopo (engenharia)

  • Não tocar CampaignScopeBadge em páginas de conteúdo
  • Não alterar CampaignAuthPageShell nem campaign-logo.tsx
  • Não redesenhar padding do SidebarGroup além do que a remoção naturalmente resolve

Riscos e mitigação

  • Teste de convenção que pinne logo na sidebar: campaignComponents.unit.spec.ts lê o source — verificar que pins de shell (collapsible, print:hidden, tokens) permanecem válidos.
  • Alinhamento vertical: remover SidebarHeader com border-b elimina o degrau; header principal já é min-h-11 — aceite visual coberto pela remoção, sem padding compensatório artificial.

Aceite de engenharia

  • Aceite de produto da intenção ainda coberto
  • Invariantes AGENTS/engineering-standards
  • Testes de domínio previstos (unit source pins existentes; sem access/write)