import Link from "next/link"; import { notFound } from "next/navigation"; import { getMagazine } from "@/server/repo"; import { Link45deg, Archive } from "react-bootstrap-icons"; import ZxdbBreadcrumbs from "@/app/zxdb/components/ZxdbBreadcrumbs"; export const metadata = { title: "ZXDB Magazine" }; export const revalidate = 3600; export default async function Page({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; const magazineId = Number(id); if (!Number.isFinite(magazineId) || magazineId <= 0) return notFound(); const mag = await getMagazine(magazineId); if (!mag) return notFound(); return (

{mag.title}

Language: {mag.languageId}
← Back to list {mag.linkSite && ( Official site )}

Issues

{mag.issues.length === 0 ? (
No issues found.
) : (
{mag.issues.map((i) => ( ))}
Magazine issues
Issue Volume Number Special Supplement Links
{i.dateYear ?? ""} {i.dateMonth ? `/${String(i.dateMonth).padStart(2, "0")}` : ""} {" "} (open issue) {i.volume ?? ""} {i.number ?? ""} {i.special ?? ""} {i.supplement ?? ""}
{i.linkMask && ( Link )} {i.archiveMask && ( Archive )}
)}
); }