import { useEffect, useState } from 'react' import { Link } from 'react-router-dom' import { identity } from '@/api/client' import type { User } from '@/types/api' import { PageHeader } from '@/components/PageHeader' import { Loading } from '@/components/Loading' import { ErrorBox } from '@/components/ErrorBox' import { DataTable, type Column } from '@/components/DataTable' export function UsersPage() { const [rows, setRows] = useState([]) const [error, setError] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { identity .listUsers() .then(setRows) .catch((e: unknown) => setError(e instanceof Error ? e : new Error(String(e)))) .finally(() => setLoading(false)) }, []) const columns: Column[] = [ { header: 'Username', key: 'username', render: (r) => ( {r.username} ), }, { header: 'Display name', key: 'displayName' }, { header: 'Email', key: 'email', render: (r) => r.email ?? '—' }, { header: 'Enabled', key: 'enabled', render: (r) => r.enabled ? ( Active ) : ( Disabled ), }, ] return (
+ New User} /> {loading && } {error && } {!loading && !error && }
) }