"use client" import { useEffect, useState } from "react" import { AppLayout } from "@/components/app-layout" import { Card, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Building2, MapPin, FileText, Loader2 } from "lucide-react" import Link from "next/link" export default function CatalogosPage() { const [counts, setCounts] = useState({ formasJuridicas: 0, organismos: 0, jurisdicciones: 0 }) const [isLoading, setIsLoading] = useState(true) useEffect(() => { const fetchCounts = async () => { try { const token = localStorage.getItem("token") if (!token) return const [formasRes, organismosRes, jurisdiccionesRes] = await Promise.all([ fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/formas-juridicas`, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } }), fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/organismos`, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } }), fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/jurisdicciones`, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } }) ]) const [formas, organismos, jurisdicciones] = await Promise.all([ formasRes.json(), organismosRes.json(), jurisdiccionesRes.json() ]) setCounts({ formasJuridicas: formas.data?.length || 0, organismos: organismos.data?.length || 0, jurisdicciones: jurisdicciones.data?.length || 0 }) } catch (err) { console.error("Error fetching catalog counts:", err) } finally { setIsLoading(false) } } fetchCounts() }, []) const catalogos = [ { title: "Formas Jurídicas", description: "Gestionar tipos de formas jurídicas disponibles", icon: Building2, count: counts.formasJuridicas, href: "/catalogos/formas-juridicas", }, { title: "Organismos", description: "Administrar organismos y entidades", icon: FileText, count: counts.organismos, href: "/catalogos/organismos", }, { title: "Jurisdicciones", description: "Configurar jurisdicciones (nación, provincias, municipios)", icon: MapPin, count: counts.jurisdicciones, href: "/catalogos/jurisdicciones", }, ] return (

Configuraciones

Gestión de catálogos y datos maestros del sistema

{catalogos.map((catalogo) => { const Icon = catalogo.icon return (
{isLoading ? ( ) : ( {catalogo.count} )}
{catalogo.title} {catalogo.description}
) })}
) }