Convert wallet NavigationLinks
This commit is contained in:
committed by
William Casarin
parent
c50ccef56d
commit
f361f55bd5
@@ -35,6 +35,8 @@ enum Route: Hashable {
|
|||||||
case Login
|
case Login
|
||||||
case CreateAccount
|
case CreateAccount
|
||||||
case SaveKeys(account: CreateAccountModel)
|
case SaveKeys(account: CreateAccountModel)
|
||||||
|
case Wallet(wallet: WalletModel)
|
||||||
|
case WalletScanner(result: Binding<WalletScanResult>)
|
||||||
|
|
||||||
@ViewBuilder
|
@ViewBuilder
|
||||||
func view(navigationCordinator: NavigationCoordinator, damusState: DamusState) -> some View {
|
func view(navigationCordinator: NavigationCoordinator, damusState: DamusState) -> some View {
|
||||||
@@ -98,6 +100,11 @@ enum Route: Hashable {
|
|||||||
case .SaveKeys(let account):
|
case .SaveKeys(let account):
|
||||||
SaveKeysView(account: account)
|
SaveKeysView(account: account)
|
||||||
.environmentObject(navigationCordinator)
|
.environmentObject(navigationCordinator)
|
||||||
|
case .Wallet(let walletModel):
|
||||||
|
WalletView(damus_state: damusState, model: walletModel)
|
||||||
|
.environmentObject(navigationCordinator)
|
||||||
|
case .WalletScanner(let walletScanResult):
|
||||||
|
WalletScannerView(result: walletScanResult)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,6 +164,10 @@ enum Route: Hashable {
|
|||||||
return true
|
return true
|
||||||
case (.SaveKeys(let lhs_account), .SaveKeys(let rhs_account)):
|
case (.SaveKeys(let lhs_account), .SaveKeys(let rhs_account)):
|
||||||
return lhs_account.pubkey == rhs_account.pubkey
|
return lhs_account.pubkey == rhs_account.pubkey
|
||||||
|
case (.Wallet(_), .Wallet(_)):
|
||||||
|
return true
|
||||||
|
case (.WalletScanner(_), .WalletScanner(_)):
|
||||||
|
return true
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -234,6 +245,10 @@ enum Route: Hashable {
|
|||||||
case .SaveKeys(let account):
|
case .SaveKeys(let account):
|
||||||
hasher.combine("saveKeys")
|
hasher.combine("saveKeys")
|
||||||
hasher.combine(account.pubkey)
|
hasher.combine(account.pubkey)
|
||||||
|
case .Wallet(_):
|
||||||
|
hasher.combine("wallet")
|
||||||
|
case .WalletScanner(_):
|
||||||
|
hasher.combine("walletScanner")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ struct SideMenuView: View {
|
|||||||
navLabel(title: NSLocalizedString("Profile", comment: "Sidebar menu label for Profile view."), img: "user")
|
navLabel(title: NSLocalizedString("Profile", comment: "Sidebar menu label for Profile view."), img: "user")
|
||||||
}
|
}
|
||||||
|
|
||||||
NavigationLink(destination: WalletView(damus_state: damus_state, model: damus_state.wallet)) {
|
NavigationLink(value: Route.Wallet(wallet: damus_state.wallet)) {
|
||||||
navLabel(title: NSLocalizedString("Wallet", comment: "Sidebar menu label for Wallet view."), img: "wallet")
|
navLabel(title: NSLocalizedString("Wallet", comment: "Sidebar menu label for Wallet view."), img: "wallet")
|
||||||
/*
|
/*
|
||||||
HStack {
|
HStack {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import SwiftUI
|
|||||||
|
|
||||||
struct ConnectWalletView: View {
|
struct ConnectWalletView: View {
|
||||||
@Environment(\.openURL) private var openURL
|
@Environment(\.openURL) private var openURL
|
||||||
|
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
|
||||||
@ObservedObject var model: WalletModel
|
@ObservedObject var model: WalletModel
|
||||||
|
|
||||||
@State var scanning: Bool = false
|
@State var scanning: Bool = false
|
||||||
@@ -63,17 +64,13 @@ struct ConnectWalletView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConnectWallet: some View {
|
var ConnectWallet: some View {
|
||||||
VStack {
|
VStack {
|
||||||
NavigationLink(destination: WalletScannerView(result: $wallet_scan_result), isActive: $scanning) {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
|
|
||||||
AlbyButton() {
|
AlbyButton() {
|
||||||
openURL(URL(string:"https://nwc.getalby.com/apps/new?c=Damus")!)
|
openURL(URL(string:"https://nwc.getalby.com/apps/new?c=Damus")!)
|
||||||
}
|
}
|
||||||
|
|
||||||
BigButton(NSLocalizedString("Attach Wallet", comment: "Text for button to attach Nostr Wallet Connect lightning wallet.")) {
|
BigButton(NSLocalizedString("Attach Wallet", comment: "Text for button to attach Nostr Wallet Connect lightning wallet.")) {
|
||||||
scanning = true
|
navigationCoordinator.push(route: Route.WalletScanner(result: $wallet_scan_result))
|
||||||
}
|
}
|
||||||
|
|
||||||
if let err = self.error {
|
if let err = self.error {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ struct WalletView: View {
|
|||||||
let damus_state: DamusState
|
let damus_state: DamusState
|
||||||
@ObservedObject var model: WalletModel
|
@ObservedObject var model: WalletModel
|
||||||
@ObservedObject var settings: UserSettingsStore
|
@ObservedObject var settings: UserSettingsStore
|
||||||
|
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
|
||||||
|
|
||||||
init(damus_state: DamusState, model: WalletModel? = nil) {
|
init(damus_state: DamusState, model: WalletModel? = nil) {
|
||||||
self.damus_state = damus_state
|
self.damus_state = damus_state
|
||||||
@@ -156,8 +157,10 @@ struct WalletView: View {
|
|||||||
switch model.connect_state {
|
switch model.connect_state {
|
||||||
case .new:
|
case .new:
|
||||||
ConnectWalletView(model: model)
|
ConnectWalletView(model: model)
|
||||||
|
.environmentObject(navigationCoordinator)
|
||||||
case .none:
|
case .none:
|
||||||
ConnectWalletView(model: model)
|
ConnectWalletView(model: model)
|
||||||
|
.environmentObject(navigationCoordinator)
|
||||||
case .existing(let nwc):
|
case .existing(let nwc):
|
||||||
MainWalletView(nwc: nwc)
|
MainWalletView(nwc: nwc)
|
||||||
.onAppear() {
|
.onAppear() {
|
||||||
|
|||||||
Reference in New Issue
Block a user