damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

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 }