Reload after saving the way the manual button already does
Saving ran loadEvents(force: true), which skips the isCached check but leaves the existing cache in place. The manual reload button clears the cache first, and that is the one that reliably shows a newly created Home Assistant event. Rather than keep reasoning about why bypassing the cache is not enough, saving now takes the path that demonstrably works — the only difference between the two was invalidateCache(). reloadVisible had no callers left and is gone. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5977ad0928
commit
75ae038529
BIN
Binary file not shown.
+3
-3
@@ -17,12 +17,12 @@
|
||||
<key>CalendarrWatch.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>CalendarrWatchComplications.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>CalendarrWatchExtension.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
@@ -32,7 +32,7 @@
|
||||
<key>CalendarrWidgets.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>4</integer>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
|
||||
@@ -464,7 +464,9 @@ struct CalendarHostView: View {
|
||||
showNewBirthday: $showNewBirthday,
|
||||
api: api,
|
||||
reload: { await onNavigate() },
|
||||
reloadForce: { await reloadVisible(force: true) })
|
||||
// Same path as the manual reload button, which is the
|
||||
// one that demonstrably shows a new Home Assistant event.
|
||||
reloadForce: { await forceReload() })
|
||||
}
|
||||
|
||||
// MARK: – Loading logic
|
||||
@@ -525,13 +527,6 @@ struct CalendarHostView: View {
|
||||
await store.loadEvents(api: api, start: s, end: e)
|
||||
}
|
||||
|
||||
/// Re-fetch the visible range. With `force` it bypasses the cache so a just
|
||||
/// created/edited event shows up immediately (the server is authoritative).
|
||||
private func reloadVisible(force: Bool) async {
|
||||
let (s, e) = store.rangeForCurrentView()
|
||||
await store.loadEvents(api: api, start: s, end: e, force: force)
|
||||
}
|
||||
|
||||
/// Called when cacheMonths setting changes – clear cache and re-prefetch.
|
||||
private func recache() async {
|
||||
store.invalidateCache()
|
||||
|
||||
Reference in New Issue
Block a user