import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { createMemberManagementApi } from '@kit/member-management/api'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { Button } from '@kit/ui/button'; import { Badge } from '@kit/ui/badge'; import { CreditCard, Download } from 'lucide-react'; import { CmsPageShell } from '~/components/cms-page-shell'; import { EmptyState } from '~/components/empty-state'; interface Props { params: Promise<{ account: string }>; } export default async function MemberCardsPage({ params }: Props) { const { account } = await params; const client = getSupabaseServerClient(); const { data: acct } = await client.from('accounts').select('id').eq('slug', account).single(); if (!acct) return
Konto nicht gefunden
; const api = createMemberManagementApi(client); const result = await api.listMembers(acct.id, { status: 'active', pageSize: 100 }); const members = result.data; return (

{members.length} aktive Mitglieder

{members.length === 0 ? ( } title="Keine aktiven Mitglieder" description="Erstellen Sie zuerst Mitglieder, um Ausweise zu generieren." actionLabel="Mitglieder verwalten" actionHref={`/home/${account}/members-cms`} /> ) : (
{members.map((m: Record) => (

{String(m.last_name)}, {String(m.first_name)}

Nr. {String(m.member_number ?? '—')}

Aktiv
))}
)} PDF-Generierung

Die PDF-Generierung erfordert die Installation von @react-pdf/renderer. Nach der Installation können Mitgliedsausweise einzeln oder als Stapel erstellt werden.

); }