implement calendar event display with day indicators and overlay

- Add ExpandedEvent type to shared package for recurring event instances
- Implement EventController and EventService with full CRUD operations
- Server-side recurring event expansion via recurrenceExpander
- Calendar grid shows orange dot indicator for days with events
- Tap on day opens modal overlay with EventCards
- EventCard component with Feather icons (calendar, clock, repeat, edit, trash)
- EventsStore with Zustand for client-side event state management
- Load events for visible grid range including adjacent month days
- Add textPrimary, borderPrimary, eventIndicator to theme
- Update test responses for multiple events on Saturdays
This commit is contained in:
2026-01-04 17:19:58 +01:00
parent e3f7a778c7
commit 1532acab78
12 changed files with 601 additions and 99 deletions

View File

@@ -9,8 +9,11 @@ type Theme = {
rejectButton: string;
disabledButton: string;
buttonText: string;
textPrimary: string;
textSecondary: string;
textMuted: string;
eventIndicator: string;
borderPrimary: string;
};
const defaultLight: Theme = {
@@ -24,8 +27,11 @@ const defaultLight: Theme = {
rejectButton: "#ef4444",
disabledButton: "#ccc",
buttonText: "#fff",
textPrimary: "#000000",
textSecondary: "#666",
textMuted: "#888",
eventIndicator: "#DE6C20",
borderPrimary: "#000000",
};
let currentTheme: Theme = defaultLight;