"use client"; import { useState, useEffect } from "react"; import { Card } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { RefreshCw, Loader2 } from "lucide-react"; import { numberingApi } from "@/lib/api/numbering"; import { NumberingSequence } from "@/types/numbering"; export function SequenceViewer({ templateId }: { templateId: number }) { const [sequences, setSequences] = useState([]); const [loading, setLoading] = useState(false); const [search, setSearch] = useState(""); const fetchSequences = async () => { setLoading(true); try { const data = await numberingApi.getSequences(templateId); setSequences(data); } catch (error) { console.error("Failed to fetch sequences", error); } finally { setLoading(false); } }; useEffect(() => { if (templateId) { fetchSequences(); } }, [templateId]); return (

Number Sequences

setSearch(e.target.value)} />
{loading && sequences.length === 0 ? (
) : (
{sequences.length === 0 ? (

No sequences found.

) : ( sequences.map((seq) => (
{seq.year} {seq.organization_code && ( {seq.organization_code} )} {seq.discipline_code && ( {seq.discipline_code} )}
Current: {seq.current_number} | Last Generated:{" "} {seq.last_generated_number}
Updated {new Date(seq.updated_at).toLocaleDateString()}
)) )}
)}
); }