'use client' import { useState } from 'react' interface Site { id: string site_id: string site_name: string site_url: string is_active: boolean } interface SiteSelectorProps { sites: Site[] activeSiteId: string | null onSiteChange: (siteId: string) => void onCreateSite: (data: { site_id: string; site_name: string; site_url: string }) => Promise } export function SiteSelector({ sites, activeSiteId, onSiteChange, onCreateSite }: SiteSelectorProps) { const [showCreate, setShowCreate] = useState(false) const [newSite, setNewSite] = useState({ site_id: '', site_name: '', site_url: '' }) const [creating, setCreating] = useState(false) const handleCreate = async () => { if (!newSite.site_id || !newSite.site_name) return setCreating(true) try { await onCreateSite(newSite) setNewSite({ site_id: '', site_name: '', site_url: '' }) setShowCreate(false) } finally { setCreating(false) } } return (
{showCreate && (
setNewSite({ ...newSite, site_id: e.target.value })} placeholder="Site-ID (z.B. main-website)" className="px-3 py-2 text-sm border border-gray-200 rounded-lg" /> setNewSite({ ...newSite, site_name: e.target.value })} placeholder="Name (z.B. Hauptwebsite)" className="px-3 py-2 text-sm border border-gray-200 rounded-lg" />
setNewSite({ ...newSite, site_url: e.target.value })} placeholder="URL (z.B. https://example.com)" className="flex-1 px-3 py-2 text-sm border border-gray-200 rounded-lg" />
)}
) }