'use client' import { useState, useEffect } from 'react' import { Building2, Plus, Trash2, Loader2 } from 'lucide-react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog' import { getPartners, createPartner, deletePartner } from '@/lib/actions/partners' export default function PartnersPage() { const [partners, setPartners] = useState([]) const [loading, setLoading] = useState(true) const [isCreateOpen, setIsCreateOpen] = useState(false) const [name, setName] = useState('') const [creating, setCreating] = useState(false) const [createError, setCreateError] = useState(null) const [deletingId, setDeletingId] = useState(null) const loadPartners = async () => { setLoading(true) try { const data = await getPartners() setPartners(data) } catch (err) { console.error('Fehler beim Laden der Partner:', err) } finally { setLoading(false) } } useEffect(() => { loadPartners() }, []) const handleCreate = async (e: React.FormEvent) => { e.preventDefault() setCreating(true) setCreateError(null) try { await createPartner(name) setIsCreateOpen(false) setName('') loadPartners() } catch (err: any) { setCreateError(err.message || 'Fehler beim Anlegen.') } finally { setCreating(false) } } const handleDelete = async (id: string, partnerName: string) => { if (!confirm(`Partner "${partnerName}" wirklich löschen?`)) return setDeletingId(id) try { await deletePartner(id) loadPartners() } catch (err) { console.error('Fehler beim Löschen:', err) } finally { setDeletingId(null) } } return (
{/* Header */}

Partnerverwaltung

Verwalten Sie Partner.

{/* Partner Table */}
{loading ? (
Lade Partner…
) : partners.length === 0 ? (
Noch keine Partner angelegt.
) : ( {partners.map((partner) => ( ))}
Partnername Erstellt am Aktionen
{partner.name}
{partner.created_at ? new Date(partner.created_at).toLocaleDateString('de-DE') : '–'}
)}
{/* Dialog: Neuer Partner */} Neuen Partner anlegen Geben Sie den Namen des Partners ein.
setName(e.target.value)} className="bg-slate-50 dark:bg-white/5 border-slate-200 dark:border-white/10" />
{createError && (

{createError}

)}
) }