"use client"; import { distributionBoardInfoFieldLabels, distributionBoardInfoFieldMaxLengths, distributionBoardInfoFields, type DistributionBoardInfoField, } from "../../shared/constants/distribution-board"; import type { DistributionBoardInfoDto } from "../types"; export type DistributionBoardInfoDraft = Record; const placeholders: Record = { boardNumber: "z. B. UV 1.1", location: "z. B. Raum 003 Technik", fedFrom: "z. B. HV 0.1 oder HAK / Zähleranlage", remark: "", }; export function toDistributionBoardInfoDraft( info: DistributionBoardInfoDto ): DistributionBoardInfoDraft { return { boardNumber: info.boardNumber ?? "", location: info.location ?? "", fedFrom: info.fedFrom ?? "", remark: info.remark ?? "", }; } export function fromDistributionBoardInfoDraft( draft: DistributionBoardInfoDraft ): DistributionBoardInfoDto { const value = (field: DistributionBoardInfoField) => draft[field].trim() ? draft[field].trim() : null; return { boardNumber: value("boardNumber"), location: value("location"), fedFrom: value("fedFrom"), remark: value("remark"), }; } /** * Descriptive board data used by the print view title block. The values are * local planning values; a later Revit import may prefill them only through * an explicit, previewed decision. */ export function DistributionBoardInfoCard({ draft, onChange, }: { draft: DistributionBoardInfoDraft; onChange: (draft: DistributionBoardInfoDraft) => void; }) { return (
Infokarte
{distributionBoardInfoFields.map((field) => (
{field === "remark" ? (