"use client"; import { useState } 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 { createLayoutSectionField } from "@/app/actions/layout-configurations"; interface AddFieldDialogProps { sectionId: number; open: boolean; onOpenChange: (open: boolean) => void; onSuccess: () => void; } export function AddFieldDialog({ sectionId, open, onOpenChange, onSuccess, }: AddFieldDialogProps) { const [loading, setLoading] = useState(false); const [formData, setFormData] = useState({ name: "", dataType: "STRING", dataTypeFormat: "", cellPosition: "", importTableColumnName: "", importColumnOrderNumber: 0, }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { const result = await createLayoutSectionField(sectionId, { ...formData, importColumnOrderNumber: parseInt(formData.importColumnOrderNumber.toString()), }); if (result.success) { onSuccess(); setFormData({ name: "", dataType: "STRING", dataTypeFormat: "", cellPosition: "", importTableColumnName: "", importColumnOrderNumber: 0, }); } } catch (error) { console.error("Error adding field:", error); } finally { setLoading(false); } }; return ( Add New Field Add a new field to this section configuration.
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} />
); }