import { Euro, Plus } from 'lucide-react'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Badge } from '@kit/ui/badge'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { createMemberManagementApi } from '@kit/member-management/api'; import { CmsPageShell } from '~/components/cms-page-shell'; import { EmptyState } from '~/components/empty-state'; interface PageProps { params: Promise<{ account: string }>; } export default async function DuesPage({ params }: PageProps) { 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 categories = await api.listDuesCategories(acct.id); return (

Beitragskategorien

Beiträge und Gebühren verwalten

{categories.length === 0 ? ( } title="Keine Beitragskategorien" description="Legen Sie Ihre erste Beitragskategorie an." actionLabel="Neue Kategorie" /> ) : ( Alle Kategorien ({categories.length})
{categories.map((cat: Record) => ( ))}
Name Beschreibung Betrag (€) Intervall Standard
{String(cat.name)} {String(cat.description ?? '—')} {cat.amount != null ? `${Number(cat.amount).toFixed(2)}` : '—'} {String(cat.interval ?? '—')} {cat.is_default ? '✓' : '✗'}
)}
); }