"use client"; import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Card } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Plus, Edit, Eye, Loader2 } from "lucide-react"; import Link from "next/link"; import { NumberingTemplate } from "@/types/numbering"; import { numberingApi } from "@/lib/api/numbering"; import { TemplateTester } from "@/components/numbering/template-tester"; export default function NumberingPage() { const [templates, setTemplates] = useState([]); const [loading, setLoading] = useState(true); const [testerOpen, setTesterOpen] = useState(false); const [selectedTemplate, setSelectedTemplate] = useState(null); useEffect(() => { const fetchTemplates = async () => { setLoading(true); try { const data = await numberingApi.getTemplates(); setTemplates(data); } catch (error) { console.error("Failed to fetch templates", error); } finally { setLoading(false); } }; fetchTemplates(); }, []); const handleTest = (template: NumberingTemplate) => { setSelectedTemplate(template); setTesterOpen(true); }; return (

Document Numbering Configuration

Manage document numbering templates and sequences

{loading ? (
) : (
{templates.map((template) => (

{template.document_type_name}

{template.discipline_code || "All"} {template.is_active ? "Active" : "Inactive"}
{template.template_format}
Example: {template.example_number}
Current Sequence: {template.current_number}
Annual Reset: {template.reset_annually ? "Yes" : "No"}
Padding: {template.padding_length} digits
))}
)}
); }