Painel - Cadastro de Rotas
Esta nota mostra como a tela de rotas deixou de trabalhar com slug bruto e passou a trabalhar com namespace operacional.
Leitura pensada para explicar responsabilidades, ordem de execução e trechos reais do código com foco no fluxo da implementação.
O que você encontra aqui
Esta nota mostra como a tela de rotas deixou de trabalhar com slug bruto e passou a trabalhar com namespace operacional.
Arquivos principais
src/features/ecommpanel/components/SiteRoutesManager.tsxsrc/features/ecommpanel/siteNamespaces.ts
Trecho 1 - definicao dos namespaces
export const SITE_ROUTE_NAMESPACES: SiteRouteNamespace[] = [
{
id: 'landing',
prefix: 'landing',
examplePath: 'landing/black-friday',
layoutPreset: 'three_horizontal',
starterPlan: [['hero'], ['banner'], ['cta']],
},
{
id: 'institutional',
prefix: 'institucional',
examplePath: 'institucional/quem-somos',
layoutPreset: 'three_vertical',
starterPlan: [['hero'], ['rich_text'], ['cta']],
},
];Leitura guiada
Aqui o painel define um vocabulário operacional.
Ele não diz apenas "como fica a URL". Ele também diz:
- qual é o tipo de página;
- qual preset de layout combina com ela;
- quais blocos iniciais fazem sentido.
Trecho 2 - montagem do caminho final
const selectedNamespace = getSiteRouteNamespace(namespaceId);
const composedPath = buildNamespacedRoutePath({ namespaceId, customPrefix, leafPath });O que isso muda na prática
A tela de rotas agora trabalha com intenção e não só com string.
O usuário monta a rota a partir de:
- um contexto operacional;
- um caminho final;
- e, no caso
custom, um prefixo manual.
Trecho 3 - criação da rota
const req = await fetch('/api/ecommpanel/site/routes', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-csrf-token': csrfToken,
},
body: JSON.stringify({ title, slug: composedPath }),
});Ordem de execução
- a tela carrega rotas e lixeira;
- o operador escolhe namespace;
- digita o
leafPath; - o sistema monta
composedPath; - o POST envia o caminho final já normalizado para a API.
Explicando de forma simples
"A tela de rotas não cria só URL. Ela cria uma página dentro de um sistema operacional de caminhos. Isso torna o builder mais consistente e prepara a migração futura para banco."