"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { createLayoutSection } from "@/app/actions/layout-configurations"; 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 { Textarea } from "@/components/ui/textarea"; import { useToast } from "@/hooks/use-toast"; interface AddSectionDialogProps { configurationId: number; open: boolean; onOpenChange: (open: boolean) => void; } export function AddSectionDialog({ configurationId, open, onOpenChange, }: AddSectionDialogProps) { const router = useRouter(); const { toast } = useToast(); const [isLoading, setIsLoading] = useState(false); const [formData, setFormData] = useState({ name: "", type: "table", sheetName: "", tableName: "", startingRow: "", endingRow: "", }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); try { const result = await createLayoutSection(configurationId, { name: formData.name, type: formData.type, sheetName: formData.sheetName, tableName: formData.tableName, startingRow: formData.startingRow ? parseInt(formData.startingRow) : undefined, endingRow: formData.endingRow ? parseInt(formData.endingRow) : undefined, }); if (result.success) { toast({ title: "Section added successfully", description: `Section "${formData.name}" has been added to the configuration.`, }); // Reset form and close dialog setFormData({ name: "", type: "table", sheetName: "", tableName: "", startingRow: "", endingRow: "", }); onOpenChange(false); // Refresh the page to show the new section router.refresh(); } else { toast({ title: "Error adding section", description: result.error || "Failed to add section", variant: "destructive", }); } } catch (error) { toast({ title: "Error", description: "An unexpected error occurred", variant: "destructive", }); } finally { setIsLoading(false); } }; const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); }; return ( Add New Section Create a new section for this layout configuration
); }