"use client"; import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { updateLayoutSectionField } from "@/app/actions/layout-configurations"; interface LayoutSectionField { id: number; name: string; dataType: string; dataTypeFormat: string | null; cellPosition: string; importTableColumnName: string; importColumnOrderNumber: number; } interface EditFieldDialogProps { field: LayoutSectionField | null; open: boolean; onOpenChange: (open: boolean) => void; onSuccess: () => void; } export function EditFieldDialog({ field, open, onOpenChange, onSuccess, }: EditFieldDialogProps) { const [loading, setLoading] = useState(false); const [formData, setFormData] = useState({ name: "", dataType: "STRING", dataTypeFormat: "", cellPosition: "", importTableColumnName: "", importColumnOrderNumber: 0, }); useEffect(() => { if (field) { setFormData({ name: field.name, dataType: field.dataType, dataTypeFormat: field.dataTypeFormat || "", cellPosition: field.cellPosition, importTableColumnName: field.importTableColumnName, importColumnOrderNumber: field.importColumnOrderNumber, }); } }, [field]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!field) return; setLoading(true); try { const result = await updateLayoutSectionField(field.id, { name: formData.name, dataType: formData.dataType, dataTypeFormat: formData.dataTypeFormat || undefined, cellPosition: formData.cellPosition, importTableColumnName: formData.importTableColumnName, importColumnOrderNumber: parseInt(formData.importColumnOrderNumber.toString()), }); if (result.success) { onSuccess(); setFormData({ name: "", dataType: "STRING", dataTypeFormat: "", cellPosition: "", importTableColumnName: "", importColumnOrderNumber: 0, }); } } catch (error) { console.error("Error updating field:", error); } finally { setLoading(false); } }; if (!field) return null; return ( Edit Field Update the details for this field.
setFormData({ ...formData, name: e.target.value })} required />
setFormData({ ...formData, dataTypeFormat: e.target.value })} placeholder="e.g., YYYY-MM-DD" />
setFormData({ ...formData, cellPosition: e.target.value })} required placeholder="e.g., A1" />
setFormData({ ...formData, importTableColumnName: e.target.value })} required />
setFormData({ ...formData, importColumnOrderNumber: parseInt(e.target.value) || 0 })} required min={0} />
); }