import Link from "next/link"; import { notFound } from "next/navigation"; import { ArrowLeft, Blocks } from "lucide-react"; import { BausteinEditor } from "@/components/bausteine/baustein-editor"; import { BausteinKopf } from "@/components/bausteine/baustein-kopf"; import { VersionStatus } from "@/generated/prisma/enums"; import { darf } from "@/server/auth/rollen"; import { sitzungErforderlich } from "@/server/auth/sitzungspflicht"; import { bausteinHolen, bausteinVerwendungen } from "@/server/queries/bausteine"; /** * Ein Baustein (#030). * * Oben die Kopfdaten, dann der Entwurf, dann die Fassungen und zuletzt die * Verwendungen. Die Reihenfolge ist die der Fragen: woran arbeite ich, was gab * es vorher, und wen trifft eine Änderung. */ const ZEITPUNKT = new Intl.DateTimeFormat("de-DE", { day: "2-digit", month: "2-digit", year: "numeric", hour: "2-digit", minute: "2-digit", }); export default async function BausteinSeite({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; const { benutzer } = await sitzungErforderlich("lesen", `/vorlagen/bausteine/${id}`); const baustein = await bausteinHolen(id); if (!baustein) notFound(); const darfBearbeiten = darf(benutzer.rolle, "vorlagenBearbeiten"); const verwendungen = await bausteinVerwendungen(id); const entwurf = baustein.versionen.find((version) => version.status === VersionStatus.ENTWURF); const veroeffentlichte = baustein.versionen.filter( (version) => version.status === VersionStatus.VEROEFFENTLICHT, ); return ( <>