New account selection menu

This commit is contained in:
Arkadiusz Fal
2022-12-11 23:15:56 +01:00
parent 4c143f6d88
commit d02bb23e57
26 changed files with 312 additions and 128 deletions

View File

@@ -7,7 +7,7 @@ struct Account: Defaults.Serializable, Hashable, Identifiable {
let id: String
var app: VideosApp?
let instanceID: String?
var name: String?
var name: String
let urlString: String
var username: String
var password: String?
@@ -31,7 +31,7 @@ struct Account: Defaults.Serializable, Hashable, Identifiable {
self.id = id ?? (anonymous ? "anonymous-\(instanceID ?? urlString ?? UUID().uuidString)" : UUID().uuidString)
self.instanceID = instanceID
self.name = name
self.name = name ?? ""
self.urlString = urlString ?? ""
self.username = username ?? ""
self.password = password ?? ""
@@ -74,13 +74,17 @@ struct Account: Defaults.Serializable, Hashable, Identifiable {
}
var description: String {
guard let name, !name.isEmpty else {
guard !name.isEmpty else {
return shortUsername
}
return name
}
var urlHost: String {
URLComponents(url: url, resolvingAgainstBaseURL: false)?.host ?? ""
}
func hash(into hasher: inout Hasher) {
hasher.combine(username)
}