Fix iCloud sync: chart and next check-in date stale on secondary device (build 32)
- completedMonthKeys: remove UserDefaults-based MonthlyCheckInStore check (not synced via iCloud) - MonthlyCheckInCard.effectiveLastCheckInDate: use max() instead of ?? to prefer newer synced snapshot date - MonthlyCheckInView.lastCompletionDate: use max() of local + latest CoreData snapshot via @FetchRequest - FirebaseService.logPaywallShown: fix parameter key to paywall_trigger (matches GA4 custom dimension) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -599,7 +599,10 @@ struct MonthlyCheckInCard: View {
|
||||
@State private var cachedCompletionDate: Date?
|
||||
|
||||
private var effectiveLastCheckInDate: Date? {
|
||||
cachedCompletionDate ?? lastUpdatedDate
|
||||
// Use whichever is more recent: local completion record or latest snapshot date from CoreData.
|
||||
// cachedCompletionDate lives in UserDefaults (device-local, not iCloud-synced), so on a
|
||||
// secondary device after iCloud sync the snapshot date may be newer than the local record.
|
||||
[cachedCompletionDate, lastUpdatedDate].compactMap { $0 }.max()
|
||||
}
|
||||
|
||||
private var checkInProgress: Double {
|
||||
|
||||
Reference in New Issue
Block a user