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)
}

View File

@@ -13,7 +13,12 @@ enum VideosApp: String, CaseIterable {
case peerTube
var name: String {
rawValue.capitalized
switch self {
case .peerTube:
return "PeerTube"
default:
return rawValue.capitalized
}
}
var appType: AppType {

View File

@@ -79,6 +79,7 @@ final class NavigationModel: ObservableObject {
@Published var presentingOpenVideos = false
@Published var presentingSettings = false
@Published var presentingAccounts = false
@Published var presentingWelcomeScreen = false
@Published var presentingShareSheet = false