import { useQuery } from '@tanstack/react-query'; import { getIssuers } from '../api/client'; import PageHeader from '../components/PageHeader'; import DataTable from '../components/DataTable'; import type { Column } from '../components/DataTable'; import StatusBadge from '../components/StatusBadge'; import ErrorState from '../components/ErrorState'; import { formatDateTime } from '../api/utils'; import type { Issuer } from '../api/types'; const typeLabels: Record = { local_ca: 'Local CA', acme: 'ACME', vault: 'Vault PKI', manual: 'Manual', }; export default function IssuersPage() { const { data, isLoading, error, refetch } = useQuery({ queryKey: ['issuers'], queryFn: () => getIssuers(), }); const columns: Column[] = [ { key: 'name', label: 'Issuer', render: (i) => (
{i.name}
{i.id}
), }, { key: 'type', label: 'Type', render: (i) => ( {typeLabels[i.type] || i.type} ), }, { key: 'status', label: 'Status', render: (i) => , }, { key: 'config', label: 'Config', render: (i) => { if (!i.config || Object.keys(i.config).length === 0) return ; return ( {JSON.stringify(i.config).slice(0, 60)} ); }, }, { key: 'created', label: 'Created', render: (i) => {formatDateTime(i.created_at)}, }, ]; return ( <>
{error ? ( refetch()} /> ) : ( )}
); }