import { useState } from 'react'; import { useQuery } from '@tanstack/react-query'; import { Search } from 'lucide-react'; import { api } from '../../lib/api-client'; import { AppShell, PageHeader, PageBody } from '../../layout/AppShell'; import { Badge, Card, Input, Select } from '../../components/ui/primitives'; import { Table, THead, TBody, TR, TH, TD } from '../../components/ui/table'; interface Subscriber { id: number; email: string; subscribed: boolean; source: string | null; created_at: string; unsubscribed_at: string | null; } export function SubscribersList() { const [q, setQ] = useState(''); const [subscribed, setSubscribed] = useState<'' | 'true' | 'false'>(''); const { data } = useQuery({ queryKey: ['subscribers', q, subscribed], queryFn: () => api.get<{ subscribers: Subscriber[]; total: number }>('/subscribers', { q: q || undefined, subscribed: subscribed || undefined, limit: 200, }), }); const subs = data?.subscribers ?? []; return (
setQ(e.target.value)} />
{subs.map((s) => ( ))}
E-mail Bron Status Aangemeld Uitgeschreven
{s.email} {s.source ?? '—'} {s.subscribed ? actief : uit} {new Date(s.created_at).toLocaleDateString('nl-NL')} {s.unsubscribed_at ? new Date(s.unsubscribed_at).toLocaleDateString('nl-NL') : '—'}
); }