analytics(deeplink): route report notification tap to its report (KC-51 ph4c)
Some checks failed
CI / build-and-test (push) Has been cancelled
Some checks failed
CI / build-and-test (push) Has been cancelled
Completes deep-link routing (goal #7): AnalyticsDeepLink is Identifiable; a tapped weekly/monthly report notification is consumed in ContentView on launch/active and presents AnalyticsView opened to that area. Core round-trip re-verified standalone; SwiftUI wiring needs an Xcode build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ struct ContentView: View {
|
||||
return 0
|
||||
}()
|
||||
@State private var showQuickAddTask = false
|
||||
@State private var analyticsLink: AnalyticsDeepLink?
|
||||
@StateObject private var tabState = FloatingTabState()
|
||||
@ObservedObject private var shortcuts = ShortcutHandler.shared
|
||||
@ObservedObject private var tutorial = TutorialManager.shared
|
||||
@@ -108,6 +109,7 @@ struct ContentView: View {
|
||||
// Backfill any missing analytics reports (idempotent), then notify.
|
||||
let generated = AnalyticsService.shared.reconcile(using: workoutVM)
|
||||
NotificationManager.shared.scheduleAnalyticsReports(generated)
|
||||
if let link = NotificationManager.shared.consumePendingAnalyticsDeepLink() { analyticsLink = link }
|
||||
// Pull workouts from Health, then reschedule so a detected workout updates reminders.
|
||||
Task {
|
||||
await workoutVM.syncFromHealthKit()
|
||||
@@ -166,6 +168,11 @@ struct ContentView: View {
|
||||
.presentationDetents([.height(150)])
|
||||
.presentationDragIndicator(.visible)
|
||||
}
|
||||
.sheet(item: $analyticsLink) { link in
|
||||
AnalyticsView(initialLink: link)
|
||||
.presentationDetents([.large])
|
||||
.presentationDragIndicator(.visible)
|
||||
}
|
||||
#if DEBUG
|
||||
.onAppear {
|
||||
// Test hook: auto-open Quick Add (used to verify the voice→field binding
|
||||
|
||||
Reference in New Issue
Block a user