import { useQuery } from '@tanstack/react-query'; import { getPolicies } from '../api/client'; import PageHeader from '../components/PageHeader'; import DataTable from '../components/DataTable'; import type { Column } from '../components/DataTable'; import ErrorState from '../components/ErrorState'; import { formatDateTime } from '../api/utils'; import type { PolicyRule } from '../api/types'; const severityStyles: Record = { low: 'badge-info', medium: 'badge-warning', high: 'badge-danger', critical: 'badge-danger', }; export default function PoliciesPage() { const { data, isLoading, error, refetch } = useQuery({ queryKey: ['policies'], queryFn: () => getPolicies(), }); const columns: Column[] = [ { key: 'name', label: 'Rule', render: (p) => (
{p.name}
{p.id}
), }, { key: 'type', label: 'Type', render: (p) => {p.type.replace(/_/g, ' ')} }, { key: 'severity', label: 'Severity', render: (p) => {p.severity}, }, { key: 'enabled', label: 'Enabled', render: (p) => ( {p.enabled ? 'Yes' : 'No'} ), }, { key: 'created', label: 'Created', render: (p) => {formatDateTime(p.created_at)} }, ]; return ( <>
{error ? ( refetch()} /> ) : ( )}
); }