mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-15 10:43:07 +00:00
4.9 KiB
4.9 KiB
Sidebar — papel no perfil + Sair como ícone
Status: registrada
Atualizado em: 2026-08-02
Issue: #272
Priority: P2
Model: composer-2.5
Impeccable: B — encaixe no rodapé da sidebar (CampaignSidebar)
Appetite: ~0,5 dia eng; um ajuste de shell, sem fluxo novo
Responsável: —
Intenção
No rodapé da sidebar de /campanha, o botão “Sair” ocupa uma linha inteira abaixo do link de perfil, e o subtítulo fixo “Meu perfil” não informa quem está logado além do nome. Querem densificar: sair vira ícone à direita da mesma linha do perfil, e o subtítulo passa a mostrar o papel do usuário (Coordenador Geral, Assessor, Candidato, Liderança).
Persona e fluxo
- Persona / contexto: qualquer
campaignUsercom a sidebar aberta (mesa desktop ou Sheet mobile) — staff ou liderança. - Job principal: ver quem sou (nome + papel) e sair da sessão sem gastar uma linha extra.
- Fluxo desejado:
- Olha o rodapé → vê avatar, nome, papel.
- Toca o bloco de perfil (exceto o ícone de sair) → vai a
/campanha/perfil. - Toca o ícone de sair (não um botão com texto “Sair”) → mesmo fluxo de logout de hoje (limpa caches/históricos locais e encerra a sessão).
- Anti-goals de produto: redesign da sidebar inteira; segundo botão “Sair” em outro lugar; manter o botão full-width “Sair”; trocar o destino do perfil; inventar papéis novos na UI.
Esboço de fluxo (B)
[rodapé sidebar]
[avatar + nome + papel …………… ⏻]
│ │
└→ /campanha/perfil └→ logout (comportamento = atual; UI = só ícone)
Objetivo e aceite
- O subtítulo sob o nome deixa de ser “Meu perfil” e mostra o rótulo pt-BR do papel do usuário logado (os mesmos rótulos já usados no escopo: Coordenador Geral / Assessor / Candidato / Liderança).
- “Sair” não é mais botão full-width com label “Sair” abaixo do perfil: vira somente ícone à direita da mesma linha do perfil (sem texto visível no controle).
- O ícone tem rótulo acessível (“Sair” / estado “Saindo…”), alvo tocável adequado (≈
min-h-11), e o funcionamento de logout (incluindo limpeza client-side já existente) permanece — só a apresentação muda. - O link/área de perfil continua levando a
/campanha/perfilsem disparar logout por acidente (alvos distintos). - Sem mudança de auth, rotas ou papéis.
Dados (intenção)
- Vou apresentar dados? Não — só rótulo de papel já conhecido da sessão.
- Decisões desbloqueadas: N/A (identidade visual / densidade de shell, não decisão operacional).
- Forma: adiada ao plano de implementação.
Direção no codebase (hipótese)
- Áreas prováveis:
src/components/campaign/shell/CampaignSidebar.tsx(rodapé); rótulos já existem emcampaignRoleLabels(campaignUserProfile). - Precedente a olhar: o próprio footer atual; badge de escopo no topo da sidebar (já mostra o papel).
- Risco de acoplamento: logout client-side (recent visits, PWA caches, filtros salvos) não pode sumir; leader lockdown intocado.
Dependências
- Nenhuma dura. Soft: B130 (#271) também mexe no shell da sidebar (logo / chips de escopo) — se o badge de escopo sair dali, o subtítulo com papel neste item fica ainda mais importante; não bloqueia.
Fora de escopo
- Remover ou redesenhar o
CampaignScopeBadgedo topo da sidebar (papel pode continuar lá — ver questão aberta). - Alterar
/campanha/perfil, bottom nav, FAB/drawer de ações rápidas. - Collapsed/icon-only sidebar (tablet) além do necessário para não quebrar o footer atual.
- Copy nova de papéis ou mudança de RBAC.
Rabbit holes de produto
- “Já que estamos no footer…”. Menu de conta, troca de usuário, confirmação de logout. Corte: só realocar Sair + trocar subtítulo.
- Deduplicar papel no badge. Pode ser tentador tirar o badge porque o subtítulo passa a mostrar o papel. Corte neste item: não mexer no badge salvo decisão explícita no gate.
Questões em aberto (produto)
- Papel duplicado (badge no topo + subtítulo no rodapé)? Opções: A) manter badge e mostrar papel no rodapé (pedido literal) | B) mostrar papel só no rodapé e remover/alterar o badge | C) subtítulo = papel só se o badge sumir em algum viewport. Recomendação: A — este item é densificar o footer; o badge de escopo é outro sinal de “com que ótica estou vendo a árvore”. (assumido — validar)
- Texto do subtítulo: papel curto (“Assessor”) vs. frase (“Perfil · Assessor”)? Opções: A) só o rótulo do papel | B) “Meu perfil · {papel}”. Recomendação: A — pedido explícito; o link já implica perfil. (assumido)
Referências
- GitHub Issue #272
src/components/campaign/shell/CampaignSidebar.tsxsrc/utilities/campaignUserProfile.ts(campaignRoleLabels)- Plano histórico de perfil:
docs/plans/reset-senha-foto-perfil.md