"use client"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import type { DevicePayload, DocumentPayload, DocumentType, KnowledgeDevice, KnowledgeDocument, KnowledgeManufacturer, KnowledgeNote, ManufacturerPayload, NotePayload, NoteType, } from "@/types/knowledge"; const documentTypes: Array<[DocumentType, string]> = [ ["manual", "Bedienungsanleitung"], ["service_manual", "Service Manual"], ["schematic", "Schaltplan"], ["alignment", "Abgleichanleitung"], ["parts_list", "Ersatzteilliste"], ["firmware", "Firmware"], ["datasheet", "Datenblatt"], ["service_bulletin", "Service Bulletin"], ["other", "Sonstiges"], ]; const noteTypes: Array<[NoteType, string]> = [ ["repair", "Reparaturhinweis"], ["known_fault", "Bekannter Fehler"], ["alignment", "Abgleichhinweis"], ["spare_part", "Ersatzteilhinweis"], ["general", "Allgemein"], ]; function tagsToText(tags: string[]) { return tags.join(", "); } function textToTags(value: string) { return value.split(",").map((tag) => tag.trim()).filter(Boolean); } function fieldClass() { return "grid gap-2"; } export function ManufacturerFormDialog({ open, manufacturer, pending, error, onOpenChange, onSubmit, }: { open: boolean; manufacturer: KnowledgeManufacturer | null; pending: boolean; error: string; onOpenChange: (open: boolean) => void; onSubmit: (payload: ManufacturerPayload) => void; }) { const [name, setName] = useState(""); const [website, setWebsite] = useState(""); const [notes, setNotes] = useState(""); useEffect(() => { queueMicrotask(() => { setName(manufacturer?.name ?? ""); setWebsite(manufacturer?.website ?? ""); setNotes(manufacturer?.notes ?? ""); }); }, [manufacturer, open]); return ( {manufacturer ? "Hersteller bearbeiten" : "Hersteller erstellen"}
setName(event.target.value)} />
setWebsite(event.target.value)} />