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