fix: adjust seo_titulo max length to 60, add banner options to tipo enum, and resolve RSC plain object error

This commit is contained in:
Carlos (Almeira) 2026-06-22 11:54:51 -05:00
parent da4fbaa9e8
commit 31bf643d3b
4 changed files with 8 additions and 5 deletions

Binary file not shown.

View File

@ -126,6 +126,7 @@ export default async function EntityPage({
});
return enriched;
});
documents = JSON.parse(JSON.stringify(documents));
} catch (error) {
console.error(`Error fetching entity ${entity}:`, error);
}

View File

@ -110,7 +110,7 @@ export const PublicationLayout: React.FC<PublicationLayoutProps> = ({
useEffect(() => {
if (!seoDirty.titulo && titulo) {
setSeoTitulo(titulo.substring(0, 70));
setSeoTitulo(titulo.substring(0, 60));
}
}, [titulo, seoDirty.titulo]);
@ -314,7 +314,7 @@ export const PublicationLayout: React.FC<PublicationLayoutProps> = ({
<FieldWrapper
label="SEO Título"
error={validationErrors.seo_titulo}
hint="Máximo 70 caracteres."
hint="Máximo 60 caracteres."
>
<input
type="text"
@ -324,7 +324,7 @@ export const PublicationLayout: React.FC<PublicationLayoutProps> = ({
setSeoTitulo(e.target.value);
setSeoDirty(prev => ({ ...prev, titulo: true }));
}}
maxLength={70}
maxLength={60}
placeholder="Título para buscadores..."
className={inputClass}
/>
@ -395,6 +395,8 @@ export const PublicationLayout: React.FC<PublicationLayoutProps> = ({
<option value="aviso">Aviso</option>
<option value="clasificado">Clasificado</option>
<option value="blog">Blog</option>
<option value="Display Banner">Display Banner</option>
<option value="Display Slider">Display Slider</option>
</select>
</FieldWrapper>

View File

@ -36,7 +36,7 @@ export const PostSchema = z.object({
message: 'Estado inválido.',
}),
tipo: z.enum(['noticia', 'evento', 'aviso', 'clasificado', 'blog'], {
tipo: z.enum(['noticia', 'evento', 'aviso', 'clasificado', 'blog', 'Display Banner', 'Display Slider'], {
message: 'Tipo de contenido inválido.',
}),
@ -56,7 +56,7 @@ export const PostSchema = z.object({
url_destino: z.string().url('La URL de destino no es válida.').optional().or(z.literal('')),
video_url: z.string().url('La URL de video no es válida.').optional().or(z.literal('')),
og_image_url: z.string().url('La OG Image URL no es válida.').optional().or(z.literal('')),
seo_titulo: z.string().max(70, 'El SEO título no puede superar 70 caracteres.').optional(),
seo_titulo: z.string().max(60, 'El SEO título no puede superar 60 caracteres.').optional(),
seo_descripcion: z.string().max(160, 'La SEO descripción no puede superar 160 caracteres.').optional(),
});