fix bug updating default wallet

This commit is contained in:
Benjamin Hakes
2022-12-29 16:21:55 -06:00
parent 79c42544d9
commit fe90d02ea8
3 changed files with 20 additions and 14 deletions

View File

@@ -10,18 +10,23 @@ import Foundation
class UserSettingsStore: ObservableObject { class UserSettingsStore: ObservableObject {
@Published var defaultWallet: Wallet { @Published var defaultWallet: Wallet {
didSet { didSet {
UserDefaults.standard.set(defaultWallet.rawValue, forKey: "defaultwallet") UserDefaults.standard.set(defaultWallet.rawValue, forKey: "default_wallet")
} }
} }
@Published var showWalletSelector: Bool { @Published var showWalletSelector: Bool {
didSet { didSet {
UserDefaults.standard.set(showWalletSelector, forKey: "showwalletselector") UserDefaults.standard.set(showWalletSelector, forKey: "show_wallet_selector")
} }
} }
init() { init() {
self.defaultWallet = UserDefaults.standard.object(forKey: "defaultwallet") as? Wallet ?? .systemdefaultwallet if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"),
self.showWalletSelector = UserDefaults.standard.object(forKey: "showwalletselector") as? Bool ?? true 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 import Foundation
// New url prefixes needed to be added to LSApplicationQueriesSchemes enum Wallet: String, CaseIterable, Identifiable {
enum Wallet: String, CaseIterable { var id: String { self.rawValue }
struct Model: Identifiable, Hashable { struct Model: Identifiable, Hashable {
var id: String { self.tag } var id: String { self.tag }
@@ -20,6 +20,7 @@ enum Wallet: String, CaseIterable {
var image: String var image: String
} }
// New url prefixes needed to be added to LSApplicationQueriesSchemes
case systemdefaultwallet case systemdefaultwallet
case strike case strike
case cashapp case cashapp

View File

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