diff --git a/packages/frontend/src/shell/DashboardCalendarTab.module.css b/packages/frontend/src/shell/DashboardCalendarTab.module.css index ac30b7e..5c2fae4 100644 --- a/packages/frontend/src/shell/DashboardCalendarTab.module.css +++ b/packages/frontend/src/shell/DashboardCalendarTab.module.css @@ -778,6 +778,40 @@ margin-bottom: 0.5rem; } +.attendeeSuggestions { + display: flex; + flex-wrap: wrap; + gap: 0.375rem; + margin-bottom: 0.625rem; +} + +.attendeeChip { + padding: 0.2rem 0.625rem; + background: var(--color-bg); + border: 1px solid var(--color-border); + border-radius: 999px; + font-size: 0.75rem; + color: var(--color-text-secondary); + cursor: pointer; + transition: all 0.15s; + white-space: nowrap; + max-width: 180px; + overflow: hidden; + text-overflow: ellipsis; +} + +.attendeeChip:hover { + border-color: var(--color-primary); + color: var(--color-primary); +} + +.attendeeChipActive { + background: rgba(59, 130, 246, 0.1); + border-color: var(--color-primary); + color: var(--color-primary); + font-weight: 500; +} + .contactSearchWrap { margin-bottom: 0.375rem; } diff --git a/packages/frontend/src/shell/DashboardCalendarTab.tsx b/packages/frontend/src/shell/DashboardCalendarTab.tsx index d918cda..3cffe09 100644 --- a/packages/frontend/src/shell/DashboardCalendarTab.tsx +++ b/packages/frontend/src/shell/DashboardCalendarTab.tsx @@ -92,7 +92,13 @@ function CalendarEventModal({ onClose: () => void; }) { const createActivity = useCreateActivity(); - const [contactSearch, setContactSearch] = useState(''); + + // Organisator oder erster Teilnehmer als Startsuchbegriff + const initialSearch = + event.organizer?.emailAddress.name || + event.attendees?.[0]?.emailAddress.name || + ''; + const [contactSearch, setContactSearch] = useState(initialSearch); const [selectedContact, setSelectedContact] = useState(null); const [actStatus, setActStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); @@ -214,6 +220,31 @@ function CalendarEventModal({ {actStatus !== 'success' ? (
Als Aktivität bei Kontakt speichern
+ + {/* Teilnehmer-Chips für schnelle Auswahl */} + {event.attendees && event.attendees.length > 0 && ( +
+ {event.attendees.slice(0, 7).map((a, i) => { + const label = a.emailAddress.name || a.emailAddress.address; + const isActive = contactSearch === label; + return ( + + ); + })} +
+ )} +