// app/lasers/[id]/LaserDetailsClient.tsx "use client"; import Link from "next/link"; type Group = { title: string; fields: Record }; type Laser = Record; const CHOICE_LABELS: Record> = { op: { pm: "MOPA", pq: "Q-Switch" }, cooling: { aa: "Air, Active", ap: "Air, Passive", w: "Water" }, }; function resolveLabel(field: string, value: any) { if (value == null || value === "") return "—"; const map = CHOICE_LABELS[field]; if (map && typeof value === "string" && map[value]) return map[value]; if (typeof value === "boolean") return value ? "Yes" : "No"; if (typeof value === "number") return Number.isFinite(value) ? String(value) : "—"; return String(value); } export default function LaserDetailsClient({ laser, fieldGroups, }: { laser: Laser; fieldGroups: Group[]; }) { return (

{(laser.make as string) || "—"} {laser.model || ""}

{fieldGroups.map(({ title, fields }) => (

{title}

{Object.entries(fields).map(([key, label]) => (
{label}
{resolveLabel(key, laser[key])}
))}
))}
← Back to Laser Sources
); }