import Link from "next/link"; import { serverFetch } from "../../lib/api"; function toText(value: unknown, fallback = "") { return typeof value === "string" && value ? value : fallback; } function asWorks(value: unknown): Array> { return Array.isArray(value) ? value as Array> : []; } export default async function ShowcasePage({ params }: { params: Promise<{ slug: string }> }) { const { slug } = await params; const { showcase } = await serverFetch<{ showcase: Record }>(`/showcases/${slug}`); const works = asWorks(showcase.works); const makerName = toText(showcase.maker_name, "Maker"); const title = toText(showcase.title, "Escaparate"); const coverImage = toText(showcase.cover_image_url, toText(works[0]?.image_url, "/demo/work-custom.svg")); const contactHref = `/consultas/nueva?makerId=${encodeURIComponent(String(showcase.maker_id))}&sourceType=showcase&sourceId=${encodeURIComponent(String(showcase.id))}&makerName=${encodeURIComponent(makerName)}&contextTitle=${encodeURIComponent(title)}&returnTo=${encodeURIComponent(`/showcases/${slug}`)}`; return (
<
Escaparate publico

{title}

{toText(showcase.description, "Coleccion de trabajos destacados del maker.")}

{works.length}Trabajos
1.284Visitas
38Consultas
4,9Valoracion
{works[0] ? (
Trabajo destacado {toText(works[0].title)}
{toText(works[0].title)} {toText(works[0].technology, "FDM")} | {toText(works[0].material, "PLA")}
>
) : null}

Todos los trabajos

{works.length}
{works.map((work) => ( {toText(work.title)} {toText(work.title)} {toText(work.technology, "FDM")} | {toText(work.material, "PLA")} ))}
Compartir escaparate
WhatsApp
Iniciar consulta desde este escaparate
); }