Settings UI and code improvements

This commit is contained in:
Arkadiusz Fal
2021-09-29 12:14:43 +02:00
parent bd813e6771
commit d22868ed2d
7 changed files with 244 additions and 227 deletions

View File

@@ -5,10 +5,13 @@ final class InstancesModel: ObservableObject {
@Published var defaultAccount: Instance.Account?
init() {
if let id = Defaults[.defaultAccountID] {
let uuid = UUID(uuidString: id)
defaultAccount = Defaults[.accounts].first { $0.id == uuid }
guard let id = Defaults[.defaultAccountID],
let uuid = UUID(uuidString: id)
else {
return
}
defaultAccount = findAccount(uuid)
}
func find(_ id: Instance.ID?) -> Instance? {
@@ -38,6 +41,10 @@ final class InstancesModel: ObservableObject {
}
}
func findAccount(_ id: Instance.Account.ID) -> Instance.Account? {
Defaults[.accounts].first { $0.id == id }
}
func addAccount(instance: Instance, name: String, sid: String) -> Instance.Account {
let account = Instance.Account(instanceID: instance.id, name: name, url: instance.url, sid: sid)
Defaults[.accounts].append(account)
@@ -51,12 +58,12 @@ final class InstancesModel: ObservableObject {
}
}
func resetDefaultAccount() {
setDefaultAccount(nil)
}
func setDefaultAccount(_ account: Instance.Account?) {
Defaults[.defaultAccountID] = account?.id.uuidString
defaultAccount = account
}
func resetDefaultAccount() {
setDefaultAccount(nil)
}
}