import { useEffect, useRef, useState, type FormEvent } from 'react' import { useOverlayDismiss } from '../../hooks/useOverlayDismiss' import type { CalendarItem } from '../../api/client' const palette = ['#4285f4', '#ea4335', '#fbbc04', '#34a853', '#a142f4', '#ff6d00', '#00acc1', '#607d8b'] interface Props { calendar?: CalendarItem onSave: (name: string, color: string) => void onCancel: () => void } export default function CalendarDialog({ calendar, onSave, onCancel }: Props) { const overlay = useOverlayDismiss(onCancel) const inputRef = useRef(null) const [name, setName] = useState(calendar?.name ?? '') const [color, setColor] = useState(calendar?.color ?? palette[0]) useEffect(() => { function onKey(e: KeyboardEvent) { if (e.key === 'Escape') onCancel() } window.addEventListener('keydown', onKey) return () => window.removeEventListener('keydown', onKey) }, [onCancel]) function handleSubmit(e: FormEvent) { e.preventDefault() if (!name.trim()) return onSave(name.trim(), color) } return (

{calendar ? 'Kalender bearbeiten' : 'Neuer Kalender'}

setName(e.target.value)} autoFocus style={{ width: '100%', boxSizing: 'border-box', marginBottom: 16, background: 'var(--color-surface-2)', border: '1px solid var(--color-border)', borderRadius: 8, padding: '8px 10px', fontSize: 13.5, color: 'var(--color-text)', }} />
{palette.map(c => (
) }