damus

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

DamusPurpleURLSheetView.swift (1232B)


      1 //
      2 //  DamusPurpleURLSheetView.swift
      3 //  damus
      4 //
      5 //  Created by Daniel D’Aquino on 2024-01-13.
      6 //
      7 
      8 import Foundation
      9 
     10 import SwiftUI
     11 
     12 struct DamusPurpleURLSheetView: View {
     13     @Environment(\.dismiss) var dismiss
     14     let damus_state: DamusState
     15     let purple_url: DamusPurpleURL
     16     
     17     var body: some View {
     18         switch self.purple_url.variant {
     19             case .verify_npub(let checkout_id):
     20                 DamusPurpleVerifyNpubView(damus_state: damus_state, checkout_id: checkout_id)
     21             case .welcome(_):
     22                 // Forcibly pass the dismiss environment object,
     23                 // because SwiftUI has a weird quirk that makes the `dismiss` Environment object unavailable in deeply nested views
     24                 // this problem only exists in real devices.
     25                 DamusPurpleNewUserOnboardingView(damus_state: damus_state, dismiss: _dismiss)
     26             case .landing:
     27                 DamusPurpleView(damus_state: damus_state)
     28         }
     29     }
     30 }
     31 
     32 struct DamusPurpleURLSheetView_Previews: PreviewProvider {
     33     static var previews: some View {
     34         DamusPurpleURLSheetView(damus_state: test_damus_state, purple_url: .init(is_staging: false, variant: .verify_npub(checkout_id: "123")))
     35     }
     36 }
     37