import { useState, useMemo } from 'react' import { useNavigate } from 'react-router-dom' import { AdminTable, type Column } from '../../components/admin/AdminTable' import { DeleteConfirmModal } from '../../components/admin/DeleteConfirmModal' import { useGenlockes } from '../../hooks/useGenlockes' import { useDeleteGenlocke } from '../../hooks/useAdmin' import type { GenlockeListItem } from '../../types/game' export function AdminGenlockes() { const { data: genlockes = [], isLoading } = useGenlockes() const deleteGenlocke = useDeleteGenlocke() const navigate = useNavigate() const [deleting, setDeleting] = useState(null) const [statusFilter, setStatusFilter] = useState('') const filtered = useMemo(() => { if (!statusFilter) return genlockes return genlockes.filter((g) => g.status === statusFilter) }, [genlockes, statusFilter]) const columns: Column[] = [ { header: 'Name', accessor: (g) => g.name, sortKey: (g) => g.name }, { header: 'Status', accessor: (g) => ( {g.status} ), sortKey: (g) => g.status, }, { header: 'Legs', accessor: (g) => `${g.completedLegs} / ${g.totalLegs}`, sortKey: (g) => g.totalLegs, }, { header: 'Created', accessor: (g) => new Date(g.createdAt).toLocaleDateString(), sortKey: (g) => g.createdAt, }, ] return (

Genlockes

{statusFilter && ( )} {filtered.length} genlockes
g.id} onRowClick={(g) => navigate(`/admin/genlockes/${g.id}`)} /> {deleting && ( deleteGenlocke.mutate(deleting.id, { onSuccess: () => setDeleting(null), }) } onCancel={() => setDeleting(null)} isDeleting={deleteGenlocke.isPending} /> )}
) }