Files
hermes/mobile/ios-app/Features/Onboarding/OnboardingView.swift
T

45 lines
1.7 KiB
Swift

import SwiftUI
struct OnboardingView: View {
@EnvironmentObject private var localization: LocalizationStore
@EnvironmentObject private var analytics: HermesAnalyticsClient
let onStartSession: () -> Void
var body: some View {
VStack(alignment: .leading, spacing: HermesTheme.sectionSpacing) {
HermesSectionHeader(
title: localization.string(for: "onboarding.title"),
subtitle: localization.string(for: "onboarding.subtitle")
)
VStack(alignment: .leading, spacing: 12) {
Label {
Text(localization.string(for: "onboarding.consent_body"))
} icon: {
Image(systemName: "checkmark.shield.fill")
.foregroundStyle(HermesTheme.accent)
}
Text(localization.string(for: "onboarding.consent_note"))
.font(.callout)
.foregroundStyle(HermesTheme.textSecondary)
}
Button {
analytics.track("consent_accepted", attributes: ["screen_name": "onboarding"])
analytics.track("cta_pressed", attributes: ["screen_name": "onboarding", "action": "start_session"])
onStartSession()
} label: {
Text(localization.string(for: "onboarding.start_session"))
}
.buttonStyle(HermesPrimaryButtonStyle())
}
.hermesCard(elevated: true)
.onAppear {
analytics.track("screen_viewed", attributes: ["screen_name": "onboarding"])
analytics.track("consent_viewed", attributes: ["screen_name": "onboarding"])
}
}
}