'use client'; /** Formular zum Bearbeiten/Deaktivieren eines Kalenders (Admin). */ import { appFetch } from '@/lib/client-fetch'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Button, Card, ErrorMessage, Input, Label } from '@/components/ui/ui'; export function EditCalendarForm({ calendarId, initialTitle, initialDescription, initialTimezone, initialIsActive, }: { calendarId: string; initialTitle: string; initialDescription: string; initialTimezone: string; initialIsActive: boolean; }) { const router = useRouter(); const [error, setError] = useState(null); const [busy, setBusy] = useState(false); async function handleSubmit(event: React.FormEvent) { event.preventDefault(); setBusy(true); setError(null); const formData = new FormData(event.currentTarget); try { const response = await appFetch(`/api/calendars/${calendarId}`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ title: formData.get('title'), description: formData.get('description') || null, timezone: formData.get('timezone'), isActive: formData.get('isActive') === 'on', }), }); if (!response.ok) { const data = (await response.json()) as { error?: string }; setError(data.error ?? 'Speichern fehlgeschlagen.'); return; } router.refresh(); } catch { setError('Netzwerkfehler. Bitte erneut versuchen.'); } finally { setBusy(false); } } return (

Kalender bearbeiten

); }