import { createClient } from '@supabase/supabase-js'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { Button } from '@kit/ui/button'; import { UserCircle, FileText, CreditCard, Shield } from 'lucide-react'; import Link from 'next/link'; import { PortalLoginForm } from '@kit/site-builder/components'; interface Props { params: Promise<{ slug: string }>; } export default async function MemberPortalPage({ params }: Props) { const { slug } = await params; const supabase = createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_PUBLIC_KEY!, ); const { data: account } = await supabase.from('accounts').select('id, name').eq('slug', slug).single(); if (!account) return
Organisation nicht gefunden
; // Check if user is already logged in const { data: { user } } = await supabase.auth.getUser(); if (user) { // Check if this user is a member of this club const { data: member } = await supabase.from('members') .select('id, first_name, last_name, status') .eq('account_id', account.id) .eq('user_id', user.id) .maybeSingle(); if (member) { // Logged in member — show portal dashboard return (

Mitgliederbereich — {String(account.name)}

{String(member.first_name)} {String(member.last_name)}

Willkommen, {String(member.first_name)}!

Mein Profil

Kontaktdaten und Datenschutz

Dokumente

Rechnungen und Bescheinigungen

Mitgliedsausweis

Digital anzeigen

); } } // Not logged in or not a member — show login form return (

Mitgliederbereich

); }