import MutaSDK
import SwiftUI
struct OnboardingView: View {
@State private var isPremiumUser = false
@State private var surveyData: [String: Any] = [:]
var body: some View {
VStack {
// Your content
}
.onAppear {
setupCustomEventHandlers()
}
}
private func setupCustomEventHandlers() {
// Listen for custom events
let subscription = Muta.shared.on(CustomEvent.self) { event in
switch event.type {
case "signup_started":
// Handle signup button click
print("User started signup process")
navigateToSignup()
case "premium_selected":
// Handle premium selection with custom data
if let planType = event.eventData?["planType"] as? String,
let price = event.eventData?["price"] as? Double {
print("User selected \(planType) plan at $\(price)")
isPremiumUser = true
}
case "survey_completed":
// Handle survey completion
if let answers = event.eventData?["answers"] as? [String: Any] {
print("Survey completed with answers: \(answers)")
surveyData = answers
saveSurveyToBackend(answers)
}
case "form_submitted":
// Handle form submission
if let formData = event.eventData {
processFormData(formData)
}
default:
print("Received custom event: \(event.type)")
}
}
// Show the placement
Muta.shared.displayPlacement(
placementId: "your-placement-id",
backgroundColor: .white
)
}
}