"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 { CreateTemplateDto } from "@/types/numbering"; import { useRouter } from "next/navigation"; import { Loader2 } from "lucide-react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; export default function EditTemplatePage({ params }: { params: { id: string } }) { const router = useRouter(); const [loading, setLoading] = useState(true); const [initialData, setInitialData] = useState | null>(null); useEffect(() => { const fetchTemplate = async () => { setLoading(true); try { const data = await numberingApi.getTemplate(parseInt(params.id)); if (data) { setInitialData({ document_type_id: data.document_type_id, discipline_code: data.discipline_code, template_format: data.template_format, reset_annually: data.reset_annually, padding_length: data.padding_length, starting_number: 1, // Default for edit view as we don't usually reset this }); } } catch (error) { console.error("Failed to fetch template", error); } finally { setLoading(false); } }; fetchTemplate(); }, [params.id]); const handleSave = async (data: CreateTemplateDto) => { try { await numberingApi.updateTemplate(parseInt(params.id), data); router.push("/admin/numbering"); } catch (error) { console.error("Failed to update template", error); alert("Failed to update template"); } }; if (loading) { return (
); } return (

Edit Numbering Template

Configuration Sequences {initialData && ( )}
); }