DamusPurpleNewUserOnboardingView.swift (1401B)
1 // 2 // DamusPurpleNewUserOnboardingView.swift 3 // damus 4 // 5 // Created by Daniel D’Aquino on 2024-01-29. 6 // 7 8 import SwiftUI 9 10 struct DamusPurpleNewUserOnboardingView: View { 11 var damus_state: DamusState 12 @State var current_page: Int = 0 13 @Environment(\.dismiss) var dismiss 14 15 func next_page() { 16 current_page += 1 17 } 18 19 var body: some View { 20 NavigationView { 21 TabView(selection: $current_page) { 22 DamusPurpleWelcomeView(next_page: { 23 self.next_page() 24 }) 25 .tag(0) 26 27 DamusPurpleTranslationSetupView(damus_state: damus_state, next_page: { 28 dismiss() 29 }) 30 .tag(1) 31 } 32 .ignoresSafeArea() // Necessary to avoid weird white edges 33 } 34 .task { 35 guard let account = try? await damus_state.purple.fetch_account(pubkey: damus_state.pubkey), account.active else { 36 return 37 } 38 // Let's mark onboarding as "shown" 39 damus_state.purple.onboarding_status.onboarding_was_shown = true 40 // Let's notify other views across SwiftUI to update our user's Purple status. 41 notify(.purple_account_update(account)) 42 } 43 } 44 } 45 46 #Preview { 47 DamusPurpleNewUserOnboardingView(damus_state: test_damus_state) 48 }