"use client"; import { useState } from "react"; export function AdminCallButton({ eventSlug }: { eventSlug: string }) { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [copied, setCopied] = useState(false); const [url, setUrl] = useState(null); async function startCall() { setLoading(true); setError(null); setCopied(false); try { const response = await fetch("/api/admin/meetings/start", { method: "POST", headers: { "Content-Type": "application/json" }, credentials: "include", body: JSON.stringify({ eventSlug }), }); const data = await response.json().catch(() => ({})); if (!response.ok) { setError(data.error || "Der Videoanruf konnte nicht gestartet werden."); return; } setUrl(data.testUrl); try { await navigator.clipboard.writeText(data.testUrl); setCopied(true); } catch { setError("Der Link wurde erzeugt. Bitte kopiere ihn aus dem Feld."); } } catch { setError("Verbindung fehlgeschlagen."); } finally { setLoading(false); } } return ( {url && !copied && ( event.currentTarget.select()} className="w-56 rounded border border-anouma-taupe/30 bg-white px-2 py-1 text-xs text-anouma-plum" /> )} {error && {error}} ); }