fix: load events from cache before syncing

This commit is contained in:
Kainoa Kanter
2025-10-08 19:33:59 -07:00
parent d19f6ee15f
commit 30a940e45b
+27 -1
View File
@@ -41,10 +41,15 @@ Singleton {
cacheAdapter.cachedCalendars = ([])
cacheAdapter.lastUpdate = ""
}
onLoaded: {
loadFromCache()
}
}
Component.onCompleted: {
Logger.log("Calendar", "Service initialized")
loadFromCache()
checkAvailability()
}
@@ -59,6 +64,23 @@ Singleton {
saveDebounce.restart()
}
// Load events and calendars from cache
function loadFromCache() {
if (cacheAdapter.cachedEvents && cacheAdapter.cachedEvents.length > 0) {
root.events = cacheAdapter.cachedEvents
Logger.log("Calendar", `Loaded ${cacheAdapter.cachedEvents.length} cached event(s)`)
}
if (cacheAdapter.cachedCalendars && cacheAdapter.cachedCalendars.length > 0) {
root.calendars = cacheAdapter.cachedCalendars
Logger.log("Calendar", `Loaded ${cacheAdapter.cachedCalendars.length} cached calendar(s)`)
}
if (cacheAdapter.lastUpdate) {
Logger.log("Calendar", `Cache last updated: ${cacheAdapter.lastUpdate}`)
}
}
// Auto-refresh timer (every 5 minutes)
Timer {
id: refreshTimer
@@ -150,7 +172,11 @@ Singleton {
Logger.log("Calendar", `Found ${result.length} calendar(s)`)
// Auto-load events after discovering calendars
if (result.length > 0) {
// Only load if we have calendars and no cached events
if (result.length > 0 && root.events.length === 0) {
loadEvents()
} else if (result.length > 0) {
// If we already have cached events, load in background
loadEvents()
}
} catch (e) {