Implement browser notification system for calendar event alarms

- Add comprehensive alarm scheduling and notification system
- Support for VAlarm data structures from calendar events
- Browser notification API integration with permission handling
- localStorage persistence for alarms across sessions
- Background service worker for alarm checking when app inactive
- Real-time alarm detection with 30-second intervals
- Debug logging for troubleshooting notification issues
- Automatic permission requests when events with alarms are created
- Support for Display action alarms with Duration and DateTime triggers
- Clean alarm management (create, update, remove, expire)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Connor Johnstone
2025-09-21 21:09:14 -04:00
parent 7ce7d4c9d9
commit 1538869f4a
8 changed files with 1211 additions and 2 deletions

View File

@@ -32,6 +32,23 @@ web-sys = { version = "0.3", features = [
"CssStyleDeclaration",
"MediaQueryList",
"MediaQueryListEvent",
# Notification API for browser notifications
"Notification",
"NotificationOptions",
"NotificationPermission",
# Service Worker API for background processing
"ServiceWorkerContainer",
"ServiceWorkerRegistration",
"MessageEvent",
# IndexedDB API for persistent alarm storage
"IdbDatabase",
"IdbObjectStore",
"IdbTransaction",
"IdbRequest",
"IdbKeyRange",
"IdbFactory",
"IdbOpenDbRequest",
"IdbVersionChangeEvent",
] }
wasm-bindgen = "0.2"
js-sys = "0.3"
@@ -73,3 +90,6 @@ gloo-storage = "0.3"
gloo-timers = "0.3"
wasm-bindgen-futures = "0.4"
# IndexedDB for persistent alarm storage
indexed_db_futures = "0.4"