import { createFileRoute } from '@tanstack/react-router' import { useQueryClient } from '@tanstack/react-query' import { Trash2 } from 'lucide-react' import { useListPairedClients, useUnpairClient, getListPairedClientsQueryKey, } from '@/api/gen/clients/clients' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table' import { Card, CardContent } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { QueryState } from '@/components/query-state' import { m } from '@/paraglide/messages' import { useLocale } from '@/lib/i18n' export const Route = createFileRoute('/clients')({ component: ClientsPage }) function ClientsPage() { useLocale() const qc = useQueryClient() const clients = useListPairedClients() const unpair = useUnpairClient() const rows = clients.data ?? [] const onUnpair = (fingerprint: string) => { if (!confirm(m.clients_unpair_confirm())) return unpair.mutate( { fingerprint }, { onSuccess: () => qc.invalidateQueries({ queryKey: getListPairedClientsQueryKey() }) }, ) } return (

{m.clients_title()}

{rows.length === 0 ? ( {m.clients_empty()} ) : ( {m.clients_name()} {m.clients_fingerprint()} {rows.map((c) => ( {c.subject || '—'} {c.fingerprint.slice(0, 16)}… ))}
)}
) }