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 CreateAccount
|
||||
case SaveKeys(account: CreateAccountModel)
|
||||
case Wallet(wallet: WalletModel)
|
||||
case WalletScanner(result: Binding<WalletScanResult>)
|
||||
|
||||
@ViewBuilder
|
||||
func view(navigationCordinator: NavigationCoordinator, damusState: DamusState) -> some View {
|
||||
@@ -98,6 +100,11 @@ enum Route: Hashable {
|
||||
case .SaveKeys(let account):
|
||||
SaveKeysView(account: account)
|
||||
.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
|
||||
case (.SaveKeys(let lhs_account), .SaveKeys(let rhs_account)):
|
||||
return lhs_account.pubkey == rhs_account.pubkey
|
||||
case (.Wallet(_), .Wallet(_)):
|
||||
return true
|
||||
case (.WalletScanner(_), .WalletScanner(_)):
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
@@ -234,6 +245,10 @@ enum Route: Hashable {
|
||||
case .SaveKeys(let account):
|
||||
hasher.combine("saveKeys")
|
||||
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")
|
||||
}
|
||||
|
||||
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")
|
||||
/*
|
||||
HStack {
|
||||
|
||||
@@ -9,6 +9,7 @@ import SwiftUI
|
||||
|
||||
struct ConnectWalletView: View {
|
||||
@Environment(\.openURL) private var openURL
|
||||
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
|
||||
@ObservedObject var model: WalletModel
|
||||
|
||||
@State var scanning: Bool = false
|
||||
@@ -63,17 +64,13 @@ struct ConnectWalletView: View {
|
||||
}
|
||||
|
||||
var ConnectWallet: some View {
|
||||
VStack {
|
||||
NavigationLink(destination: WalletScannerView(result: $wallet_scan_result), isActive: $scanning) {
|
||||
EmptyView()
|
||||
}
|
||||
|
||||
VStack {
|
||||
AlbyButton() {
|
||||
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.")) {
|
||||
scanning = true
|
||||
navigationCoordinator.push(route: Route.WalletScanner(result: $wallet_scan_result))
|
||||
}
|
||||
|
||||
if let err = self.error {
|
||||
|
||||
@@ -11,6 +11,7 @@ struct WalletView: View {
|
||||
let damus_state: DamusState
|
||||
@ObservedObject var model: WalletModel
|
||||
@ObservedObject var settings: UserSettingsStore
|
||||
@EnvironmentObject var navigationCoordinator: NavigationCoordinator
|
||||
|
||||
init(damus_state: DamusState, model: WalletModel? = nil) {
|
||||
self.damus_state = damus_state
|
||||
@@ -156,8 +157,10 @@ struct WalletView: View {
|
||||
switch model.connect_state {
|
||||
case .new:
|
||||
ConnectWalletView(model: model)
|
||||
.environmentObject(navigationCoordinator)
|
||||
case .none:
|
||||
ConnectWalletView(model: model)
|
||||
.environmentObject(navigationCoordinator)
|
||||
case .existing(let nwc):
|
||||
MainWalletView(nwc: nwc)
|
||||
.onAppear() {
|
||||
|
||||
Reference in New Issue
Block a user