Mejoras en el panel de administración y editor de contenido
En esta iteración ampliamos las capacidades de edición del panel de administración y de cliente, y añadimos controles que faltaban.
El panel de administración de Epica tenía funcionalidad básica para gestionar informes y posts del blog. En esta iteración ampliamos las capacidades de edición y añadimos controles que faltaban.
Editor de blog con vista previa
El editor de posts del blog usaba un textarea simple donde había que escribir Markdown sin ver el resultado. Lo reemplazamos por un editor WYSIWYG basado en @uiw/react-md-editor que muestra la vista previa en tiempo real. El editor soporta tanto Markdown como HTML directo para casos que requieren mayor control sobre el formato.
Añadimos soporte para rehype-raw en el renderizado de posts, permitiendo que el HTML embebido se procese correctamente en la vista pública.
Gestión de imágenes de informes
Los informes ahora tienen controles CRUD completos para sus imágenes desde el panel admin. Se puede subir una imagen nueva, reemplazar la existente o eliminarla. Las imágenes se almacenan en Supabase Storage.
También expusimos el prompt de generación de imágenes con IA como campo editable. Esto permite ajustar el estilo visual de las imágenes generadas sin modificar código.
Sistema de logos
Implementamos administración de logos con soporte para variantes de modo claro y oscuro. El sistema detecta el tema del usuario y sirve el logo apropiado. La configuración se almacena en la tabla site_settings de Supabase.
Otros cambios
- Aumentamos el límite de caracteres para descripción de negocio de 200 a 300
- Añadimos botón de cancelación durante la generación de informes
- Implementamos recuperación de sesiones interrumpidas (si el navegador se cierra durante la generación, al volver se detecta y ofrece continuar)
- Corregimos el ordenamiento de posts en admin para usar fecha de publicación
Cambios técnicos
- Editor WYSIWYG con
@uiw/react-md-editor - Soporte HTML en posts con
rehype-raw - CRUD de imágenes en Supabase Storage
- Prompt de imagen editable en tabla
ai_prompts - Sistema de logos con variantes claro/oscuro
- Detección de generaciones interrumpidas vía `localStorage