1
0
mirror of git://jb55.com/damus synced 2024-09-30 17:00:43 +00:00

fix bug updating default wallet

This commit is contained in:
Benjamin Hakes 2022-12-29 16:21:55 -06:00
parent 79c42544d9
commit fe90d02ea8
No known key found for this signature in database
GPG Key ID: 303A85CC0ACDB796
3 changed files with 20 additions and 14 deletions

View File

@ -10,18 +10,23 @@ import Foundation
class UserSettingsStore: ObservableObject {
@Published var defaultWallet: Wallet {
didSet {
UserDefaults.standard.set(defaultWallet.rawValue, forKey: "defaultwallet")
UserDefaults.standard.set(defaultWallet.rawValue, forKey: "default_wallet")
}
}
@Published var showWalletSelector: Bool {
didSet {
UserDefaults.standard.set(showWalletSelector, forKey: "showwalletselector")
UserDefaults.standard.set(showWalletSelector, forKey: "show_wallet_selector")
}
}
init() {
self.defaultWallet = UserDefaults.standard.object(forKey: "defaultwallet") as? Wallet ?? .systemdefaultwallet
self.showWalletSelector = UserDefaults.standard.object(forKey: "showwalletselector") as? Bool ?? true
if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"),
let defaultWallet = Wallet(rawValue: defaultWalletName) {
self.defaultWallet = defaultWallet
} else {
self.defaultWallet = .systemdefaultwallet
}
self.showWalletSelector = UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true
}
}

View File

@ -7,8 +7,8 @@
import Foundation
// New url prefixes needed to be added to LSApplicationQueriesSchemes
enum Wallet: String, CaseIterable {
enum Wallet: String, CaseIterable, Identifiable {
var id: String { self.rawValue }
struct Model: Identifiable, Hashable {
var id: String { self.tag }
@ -20,6 +20,7 @@ enum Wallet: String, CaseIterable {
var image: String
}
// New url prefixes needed to be added to LSApplicationQueriesSchemes
case systemdefaultwallet
case strike
case cashapp

View File

@ -18,8 +18,8 @@ struct ConfigView: View {
@State var privkey_copied: Bool = false
@State var pubkey_copied: Bool = false
@EnvironmentObject var user_settings: UserSettingsStore
@State var walletModels: [Wallet.Model] = Wallet.allModels
@State var allWallets: [Wallet] = Wallet.allCases
let generator = UIImpactFeedbackGenerator(style: .light)
@ -83,13 +83,13 @@ struct ConfigView: View {
Section("Wallet Selector") {
Toggle("Show wallet selector", isOn: $user_settings.showWalletSelector).toggleStyle(.switch)
Picker(selection: $user_settings.defaultWallet,
label: Text("Select default wallet"), content: {
ForEach(walletModels) { wallet in
Text(wallet.displayName)
.tag(wallet.tag)
Picker("Select default wallet",
selection: $user_settings.defaultWallet) {
ForEach(allWallets, id: \.self) { wallet in
Text(wallet.model.displayName)
.tag(wallet.model.tag)
}
})
}
}
Section("Reset") {