refactor: settings and translation view
This commit is contained in:
@@ -20,6 +20,7 @@ struct DamusState {
|
||||
let previews: PreviewCache
|
||||
let zaps: Zaps
|
||||
let lnurls: LNUrls
|
||||
let settings: UserSettingsStore
|
||||
|
||||
var pubkey: String {
|
||||
return keypair.pubkey
|
||||
@@ -31,6 +32,6 @@ struct DamusState {
|
||||
|
||||
|
||||
static var empty: DamusState {
|
||||
return DamusState.init(pool: RelayPool(), keypair: Keypair(pubkey: "", privkey: ""), likes: EventCounter(our_pubkey: ""), boosts: EventCounter(our_pubkey: ""), contacts: Contacts(our_pubkey: ""), tips: TipCounter(our_pubkey: ""), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: ""), previews: PreviewCache(), zaps: Zaps(our_pubkey: ""), lnurls: LNUrls())
|
||||
return DamusState.init(pool: RelayPool(), keypair: Keypair(pubkey: "", privkey: ""), likes: EventCounter(our_pubkey: ""), boosts: EventCounter(our_pubkey: ""), contacts: Contacts(our_pubkey: ""), tips: TipCounter(our_pubkey: ""), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: ""), previews: PreviewCache(), zaps: Zaps(our_pubkey: ""), lnurls: LNUrls(), settings: UserSettingsStore())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ struct LightningInvoice<T> {
|
||||
switch description {
|
||||
case .description(let string):
|
||||
return string
|
||||
case .description_hash(let data):
|
||||
case .description_hash:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,22 @@ func get_default_wallet(_ pubkey: String) -> Wallet {
|
||||
}
|
||||
}
|
||||
|
||||
func get_libretranslate_server(_ pubkey: String) -> LibreTranslateServer? {
|
||||
guard let server_name = UserDefaults.standard.string(forKey: "libretranslate_server") else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return LibreTranslateServer(rawValue: server_name)
|
||||
}
|
||||
|
||||
func get_libretranslate_url(_ pubkey: String, server: LibreTranslateServer) -> String? {
|
||||
if let url = server.model.url {
|
||||
return url
|
||||
}
|
||||
|
||||
return UserDefaults.standard.object(forKey: "libretranslate_url") as? String
|
||||
}
|
||||
|
||||
class UserSettingsStore: ObservableObject {
|
||||
@Published var default_wallet: Wallet {
|
||||
didSet {
|
||||
@@ -82,15 +98,14 @@ class UserSettingsStore: ObservableObject {
|
||||
init() {
|
||||
// TODO: pubkey-scoped settings
|
||||
let pubkey = ""
|
||||
self.default_wallet = get_default_wallet("")
|
||||
show_wallet_selector = should_show_wallet_selector("")
|
||||
self.default_wallet = get_default_wallet(pubkey)
|
||||
show_wallet_selector = should_show_wallet_selector(pubkey)
|
||||
|
||||
left_handed = UserDefaults.standard.object(forKey: "left_handed") as? Bool ?? false
|
||||
|
||||
if let translationServerName = UserDefaults.standard.string(forKey: "libretranslate_server"),
|
||||
let translationServer = LibreTranslateServer(rawValue: translationServerName) {
|
||||
self.libretranslate_server = translationServer
|
||||
libretranslate_url = translationServer.model.url ?? UserDefaults.standard.object(forKey: "libretranslate_url") as? String ?? ""
|
||||
|
||||
if let server = get_libretranslate_server(pubkey) {
|
||||
self.libretranslate_server = server
|
||||
self.libretranslate_url = get_libretranslate_url(pubkey, server: server) ?? ""
|
||||
} else {
|
||||
// Note from @tyiu:
|
||||
// Default server is disabled by default for now until we gain some confidence that it is working well in production.
|
||||
@@ -101,7 +116,7 @@ class UserSettingsStore: ObservableObject {
|
||||
libretranslate_server = .none
|
||||
libretranslate_url = ""
|
||||
}
|
||||
|
||||
|
||||
do {
|
||||
libretranslate_api_key = try Vault.getPrivateKey(keychainConfiguration: DamusLibreTranslateKeychainConfiguration())
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user