import type { Metadata } from 'next' import { getTranslations, setRequestLocale } from 'next-intl/server' import { getContentCreator } from '@/lib/content-creator' import { cleanPostHtml } from '@/lib/forum-sanitize' export const dynamic = 'force-dynamic' export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params const t = await getTranslations({ locale, namespace: 'Misc' }) return { title: t('creators.pageTitle') } } /** * Creadores de contenido (el menú VIDEOS) — réplica del partial Django * `partials/videos.html`. Enseña el primer creador de `contentcreator`, y * si no hay ninguno, el mismo aviso que Django. */ export default async function ContentCreatorsPage({ params }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations('Misc') const cc = await getContentCreator() return (
{/* El título va SIEMPRE, haya creadores o no: Django lo metía dentro del `if` y sin datos la página quedaba con un

suelto, sin cabecera ni caja. Sin creador se usa el título de la sección. */}

{cc ? cc.title : t('creators.pageTitle')}

{!cc ? (

{t('creators.empty')}


) : ( <>
{/* La descripción es HTML de CKEditor (lo edita un admin): se sanea con la misma allowlist que los mensajes del foro. */}


{(cc.youtubeVideoUrl || cc.avatarImageUrl) && (
{cc.avatarImageUrl && ( // eslint-disable-next-line @next/next/no-img-element Avatar )} {cc.youtubeVideoUrl && (