"use client"; import { useState, useEffect } from "react"; import { TemplateEditor } from "@/components/numbering/template-editor"; import { SequenceViewer } from "@/components/numbering/sequence-viewer"; import { numberingApi } from "@/lib/api/numbering"; import { NumberingTemplate } from "@/lib/api/numbering"; // Correct import import { useRouter } from "next/navigation"; import { Loader2 } from "lucide-react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useCorrespondenceTypes, useContracts, useDisciplines } from "@/hooks/use-master-data"; import { useProjects } from "@/hooks/use-projects"; export default function EditTemplatePage({ params }: { params: { id: string } }) { const router = useRouter(); const [loading, setLoading] = useState(true); const [template, setTemplate] = useState(null); // Master Data const { data: correspondenceTypes = [] } = useCorrespondenceTypes(); const { data: projects = [] } = useProjects(); const projectId = template?.projectId || 1; const { data: contracts = [] } = useContracts(projectId); const contractId = contracts[0]?.id; const { data: disciplines = [] } = useDisciplines(contractId); const selectedProjectName = projects.find((p: any) => p.id === projectId)?.projectName || 'LCBP3'; useEffect(() => { const fetchTemplate = async () => { setLoading(true); try { const data = await numberingApi.getTemplate(parseInt(params.id)); if (data) { setTemplate(data); } } catch (error) { console.error("Failed to fetch template", error); } finally { setLoading(false); } }; fetchTemplate(); }, [params.id]); const handleSave = async (data: Partial) => { try { await numberingApi.saveTemplate({ ...data, templateId: parseInt(params.id) }); router.push("/admin/numbering"); } catch (error) { console.error("Failed to update template", error); alert("Failed to update template"); } }; const handleCancel = () => { router.push("/admin/numbering"); }; if (loading) { return (
); } if (!template) { return (

Template not found

); } return (

Edit Numbering Template

Configuration Sequences
); }