'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 { getCompanies, createCompany, deleteCompany } from '@/lib/actions/companies' export default function CompaniesPage() { const [companies, setCompanies] = 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 loadCompanies = async () => { setLoading(true) try { const data = await getCompanies() setCompanies(data) } catch (err) { console.error('Fehler beim Laden der Firmen:', err) } finally { setLoading(false) } } useEffect(() => { loadCompanies() }, []) const handleCreate = async (e: React.FormEvent) => { e.preventDefault() setCreating(true) setCreateError(null) try { await createCompany(name) setIsCreateOpen(false) setName('') loadCompanies() } catch (err: any) { setCreateError(err.message || 'Fehler beim Anlegen.') } finally { setCreating(false) } } const handleDelete = async (id: string, firmName: string) => { if (!confirm(`Firma "${firmName}" wirklich löschen? Alle zugewiesenen Partner werden getrennt.`)) return setDeletingId(id) try { await deleteCompany(id) loadCompanies() } catch (err) { console.error('Fehler beim Löschen:', err) } finally { setDeletingId(null) } } return (
{/* Header */}

Firmenverwaltung

Verwalten Sie Firmen und weisen Sie Partner zu.

{/* Firmen-Tabelle */}
{loading ? (
Lade Firmen...
) : companies.length === 0 ? (
Noch keine Firmen angelegt.
) : ( {companies.map((company) => ( ))}
Firmenname Erstellt am Aktionen
{company.name}
{company.created_at ? new Date(company.created_at).toLocaleDateString('de-DE') : '–'}
)}
{/* Dialog: Neue Firma */} Neue Firma anlegen Geben Sie den Namen der Firma ein. Partner können danach zugewiesen werden.
setName(e.target.value)} className="bg-slate-50 dark:bg-white/5 border-slate-200 dark:border-white/10" />
{createError && (

{createError}

)}
) }