"use client"; import DisabledNotice from "@/components/disabled-notice"; import { FEATURES } from "@/lib/features"; import { useEffect, useState } from "react"; import Link from "next/link"; import { apiFetch, archiveKind, type ArchiveEntry } from "@/lib/api"; function ArchivePageInner() { const [entries, setEntries] = useState(null); useEffect(() => { apiFetch("/api/archive").then(setEntries).catch(() => setEntries([])); }, []); return (

포스터 숏폼 아카이브

만들어진 모든 포스터 숏폼이 메타태그와 함께 쌓입니다. 행사·지역·키워드로 축적되는 온라인 숏폼 광고판입니다.

{entries === null &&

불러오는 중…

} {entries?.length === 0 &&

아직 아카이브된 영상이 없습니다.

}
{entries?.map((e) => (
{/* eslint-disable-next-line @next/next/no-img-element */} {e.name}
{archiveKind(e)}

{e.metadata?.event_name ?? e.name}

{e.metadata?.place}{e.metadata?.category ? ` · ${e.metadata.category}` : ""}

{(e.metadata?.keywords ?? []).slice(0, 3).map((k) => ( {k} ))} {(e.metadata?.keywords?.length ?? 0) > 3 && ( +{(e.metadata!.keywords.length - 3)} )}
))}
); } export default function ArchivePage() { if (!FEATURES.archive) return ; return ; }