1.9 KiB
1.9 KiB
F-128 — CMS plantillas: contenido por defecto editable
Cambios
apps/admin/src/app/(dashboard)/cms/page.tsx
- Añadido
defaultBody(HTML) a cada uno de los 4 templates en el arrayTEMPLATES:- home: bienvenida + descripción de envío
- products: intro sobre filtros y atributos
- categories: intro sobre las categorías principales
- brands: intro sobre las marcas
openTemplate(tpl)modificado: cuando no existe CMS page para el slug, ahora pre-rellenaform.body = tpl.defaultBody(antes era'').
const openTemplate = (tpl: typeof TEMPLATES[number]) => {
const existing = items.find(p => p.slug === tpl.slug);
if (existing) { openEdit(existing); return; }
setEditing(null);
- setForm({ slug: tpl.slug, title: tpl.defaultTitle, body: '' });
+ setForm({ slug: tpl.slug, title: tpl.defaultTitle, body: tpl.defaultBody });
setShowForm(true);
};
Por qué defaultBody y no auto-crear la página
- El operador debe poder revisar/ajustar el contenido antes de guardarlo en DB.
- Si auto-creáramos la página al abrir el template, cada apertura accidental ensucia la DB con contenido placeholder.
- Con el body pre-rellenado, el botón Guardar se habilita (porque
!form.bodyya no es true) y el operador puede ajustar y guardar cuando quiera.
Verificación
cd apps/admin && npx tsc --noEmit→ exit 0.cd apps/admin && NEXT_PUBLIC_API_URL=http://192.168.18.93:3000 npm run build→ exit 0.
Notas
- Sin cambios en backend: el endpoint
/api/cms/pagesya devuelvebodycorrectamente para las páginas existentes (privacy, terms, etc.). - Las 6 páginas existentes (about, contact, cookies, privacy, shipping, terms) no se ven afectadas: siguen apareciendo en la lista inferior con su contenido real.
- El operador debe reiniciar el admin (
./scripts/monolith.sh prod restart) para desplegar el nuevo CMS.