import MutaSDK
import SwiftUI
struct OnboardingView: View {
@State private var errorMessage: String?
@State private var showError = false
@State private var showRetry = false
var body: some View {
VStack {
// Your content
}
.alert("Error", isPresented: $showError) {
if showRetry {
Button("Retry") {
retryPlacement()
}
}
Button("OK", role: .cancel) { }
} message: {
Text(errorMessage ?? "An unknown error occurred")
}
.onAppear {
setupErrorHandling()
}
}
private func setupErrorHandling() {
let subscription = Muta.shared.on { event in
if case .error(let error) = event {
switch error {
case .network(let message, _):
errorMessage = "Please check your internet connection and try again."
showError = true
showRetry = true
case .placement(let message, _, _, _):
errorMessage = "Unable to load the onboarding flow. Please try again later."
showError = true
showRetry = false
}
}
}
// Show the placement
Muta.shared.displayPlacement(
placementId: "your-placement-id",
backgroundColor: .white
)
}
private func retryPlacement() {
Muta.shared.displayPlacement(
placementId: "your-placement-id",
backgroundColor: .white
)
}
}