From 7a1f0837f50215202ffbe1d691a3f17d31a3bbbe Mon Sep 17 00:00:00 2001 From: marc Date: Sat, 5 Sep 2026 00:04:30 +0200 Subject: [PATCH] feat(calendar): Kalenderwahl im Termin mit Farbe statt nur Text Die Farbe ist das, woran man einen Kalender im Raster wiedererkennt -- im Termindialog stand aber nur der Name in einem Auswahlfeld. Wer "Arbeit" waehlt, soll dabei schon das Blau sehen, in dem der Termin gleich erscheint. Deshalb Plaketten statt setCalId(e.target.value)} style={inputStyle}> - {calendars.map(c => )} - + {!!event && calId !== calendarId && (

Wird beim Speichern nach „{calendars.find(c => c.id === calId)?.name}" verschoben diff --git a/frontend/src/components/calendar/controls.tsx b/frontend/src/components/calendar/controls.tsx index 8a3bbe0..a254190 100644 --- a/frontend/src/components/calendar/controls.tsx +++ b/frontend/src/components/calendar/controls.tsx @@ -93,3 +93,57 @@ export function ColorSwatches({ value, onChange, inherit, disabled }: { ) } + +/** + * Kalenderwahl als farbige Plaketten statt als Auswahlfeld. + * + * Ein Auswahlfeld zeigt nur den Namen – die Farbe aber ist das, woran man + * einen Kalender im Raster wiedererkennt. Wer „Arbeit" wählt, soll dabei + * schon das Blau sehen, in dem der Termin gleich erscheint. + * + * Der Punkt spricht dieselbe Sprache wie überall sonst im Kalender: gefüllt + * heißt gewählt, ein leerer Ring heißt nicht gewählt. + */ +export function CalendarPicker({ calendars, value, onChange, disabled }: { + calendars: { id: string; name: string; color: string }[] + value: string + onChange: (id: string) => void + disabled?: boolean +}) { + return ( +

+ {calendars.map(cal => { + const on = cal.id === value + return ( + + ) + })} +
+ ) +}