feat: add sync and logout toolbar to calendar screen
- Add CalendarToolbar component between header and weekdays in calendar.tsx - Sync button with CalDAV sync, spinner during sync, green checkmark on success, red X on error (3s feedback) - Sync button disabled/greyed out when no CalDAV config present - Logout button with redirect to login screen - Buttons styled with border and shadow - Update CLAUDE.md with CalendarToolbar documentation
This commit is contained in:
@@ -76,7 +76,7 @@ src/
|
||||
│ ├── (tabs)/ # Tab navigation group
|
||||
│ │ ├── _layout.tsx # Tab bar configuration (themed)
|
||||
│ │ ├── chat.tsx # Chat screen (AI conversation)
|
||||
│ │ ├── calendar.tsx # Calendar overview
|
||||
│ │ ├── calendar.tsx # Calendar overview (with CalendarToolbar: sync + logout)
|
||||
│ │ └── settings.tsx # Settings screen (theme switcher, logout, CalDAV config with feedback)
|
||||
│ ├── editEvent.tsx # Event edit screen (dual-mode: calendar/chat)
|
||||
│ ├── event/
|
||||
@@ -637,6 +637,7 @@ NODE_ENV=development # development = pretty logs, production = JSON
|
||||
- `EventCard`: Uses EventCardBase + edit/delete buttons (TouchableOpacity with delayPressIn for scroll-friendly touch handling)
|
||||
- `ProposedEventCard`: Uses EventCardBase + confirm/reject/edit buttons for chat proposals, displays green highlighted text for new changes ("Neue Ausnahme: [date]" for single delete, "Neues Ende: [date]" for UNTIL updates), shows yellow conflict warnings when proposed time overlaps with existing events. Edit button allows modifying proposals before confirming.
|
||||
- `DeleteEventModal`: Delete confirmation modal using ModalBase - shows three options for recurring events (single/future/all), simple confirm for non-recurring
|
||||
- `CalendarToolbar` (in calendar.tsx): Toolbar between header and weekdays with Sync button (CalDAV sync with spinner/green checkmark/red X feedback, disabled without config) and Logout button
|
||||
- `EventOverlay` (in calendar.tsx): Day events overlay using ModalBase - shows EventCards for selected day
|
||||
- `Themes.tsx`: Theme definitions with THEMES object (defaultLight, defaultDark) including all color tokens (textPrimary, borderPrimary, eventIndicator, secondaryBg, shadowColor, etc.)
|
||||
- `EventsStore`: Zustand store with setEvents(), addEvent(), updateEvent(), deleteEvent() - stores ExpandedEvent[], preloaded by AuthGuard
|
||||
|
||||
Reference in New Issue
Block a user