Skip to content

Adiciona layout base do painel: menu lateral, barra superior e seletor de edição (A03) - #89

Merged
tecrodrigocastro merged 1 commit into
mainfrom
feat/a03-layout-base-admin
Nov 5, 2026
Merged

tecrodrigocastro merged 1 commit into
mainfrom
feat/a03-layout-base-admin

Conversation

@tecrodrigocastro

@tecrodrigocastro tecrodrigocastro commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Closes #52

Base: main (depende de #50 e #51, já mergeados).

O que muda (front-admin)

  • Menu lateral de 264 px com as seções do design (Edição, Conteúdo, Vendas, Organização, Sistema), item ativo com aria-current e rodapé com a edição ativa.
  • Barra superior com seletor de edição, busca, "Ver site da edição", notificações e menu do usuário.
  • Telas estreitas: o menu vira gaveta (<dialog> nativo) aberta por botão.
  • Guarda de rota (auth.global): sem token vai para /login?redirect= e volta depois; papel sem permissão recebe 403.
  • Papéis: o menu mostra só o que o papel da pessoa na edição permite.
  • Troca de edição: descarta o cache e recarrega, mantendo a rota.
  • Erro global (error.vue): 404, 403 e 500 com ação de voltar.
  • Docs em front-admin/docs/LAYOUT.md; CLAUDE.md atualizado.

Integração com o #51

  • useEdition() manteve o contrato do A04 · Cliente de API tipado, autenticação e tratamento de erros #51 (current, setCurrent, clear) e ganhou editions, status, role, load, ensureLoaded e select. O editionStore agora também guarda a lista de edições e o estado de carga; CurrentEdition ganhou campos opcionais (city, state, yearBadge, siteUrl, role).
  • Logout limpa a edição.
  • Token continua Bearer no cliente (ADR 0005).

Decisões a revisar

  • O painel passa a ser SPA (ssr: false): a sessão está no localStorage, então não há o que renderizar no servidor, e assim a guarda (403) roda antes de qualquer 404 de SSR.
  • GET /editions ainda não existe no backend/OpenAPI; editionService está tipado à mão até lá. Sem edição carregada só a Visão geral aparece.

Testes

  • npm test: 177 passando.
  • npm run test:e2e: 20 passando (menu, barra, troca de edição, 403, 404, retorno do login, gaveta em 390 px, teclado).
  • Lint sem erros, typecheck e build OK.

Generated by Claude Code

…r de edição (#52)

Menu lateral de 264 px com seções e item ativo, barra superior com seletor de
edição, busca, ver site, notificações e menu do usuário, gaveta em telas
estreitas, guarda de rota (login com retorno e 403 por papel), página de erro
global (404, 403, 500) e docs/LAYOUT.md. O painel passa a rodar como SPA.
@tecrodrigocastro
tecrodrigocastro changed the base branch from feat/a02-biblioteca-componentes-sertao to main November 5, 2026 01:54
@tecrodrigocastro
tecrodrigocastro force-pushed the feat/a03-layout-base-admin branch from 4aeeeb6 to 33817d5 Compare November 5, 2026 01:54
@tecrodrigocastro
tecrodrigocastro merged commit 9ddcbee into main Nov 5, 2026
8 checks passed
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.

A03 · Layout base: menu lateral, barra superior e seletor de edição

1 participant