import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { getTeams, deleteTeam } 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 { Team } from '../api/types'; export default function TeamsPage() { const queryClient = useQueryClient(); const { data, isLoading, error, refetch } = useQuery({ queryKey: ['teams'], queryFn: () => getTeams(), }); const deleteMutation = useMutation({ mutationFn: deleteTeam, onSuccess: () => queryClient.invalidateQueries({ queryKey: ['teams'] }), onError: (err: Error) => alert(`Delete failed: ${err.message}`), }); const columns: Column[] = [ { key: 'name', label: 'Team', render: (t) => (
{t.name}
{t.id}
), }, { key: 'description', label: 'Description', render: (t) => ( {t.description || '\u2014'} ), }, { key: 'created', label: 'Created', render: (t) => {formatDateTime(t.created_at)}, }, { key: 'actions', label: '', render: (t) => ( ), }, ]; return ( <>
{error ? ( refetch()} /> ) : ( )}
); }