diff --git a/Model/Instance.swift b/Model/Instance.swift index 208a5329..354257af 100644 --- a/Model/Instance.swift +++ b/Model/Instance.swift @@ -4,6 +4,7 @@ import Foundation struct Instance: Defaults.Serializable, Hashable, Identifiable { struct Account: Defaults.Serializable, Hashable, Identifiable { static var bridge = AccountsBridge() + static var empty = Account(instanceID: UUID(), name: "Signed Out", url: "", sid: "") let id: UUID let instanceID: UUID @@ -36,6 +37,10 @@ struct Instance: Defaults.Serializable, Hashable, Identifiable { (name != nil && name!.isEmpty) ? "Unnamed (\(anonymizedSID))" : name! } + var isEmpty: Bool { + self == Account.empty + } + func hash(into hasher: inout Hasher) { hasher.combine(sid) } diff --git a/Model/InvidiousAPI.swift b/Model/InvidiousAPI.swift index 2d461ff1..46ef7a7e 100644 --- a/Model/InvidiousAPI.swift +++ b/Model/InvidiousAPI.swift @@ -6,7 +6,7 @@ import SwiftyJSON final class InvidiousAPI: Service, ObservableObject { static let basePath = "/api/v1" - @Published var account: Instance.Account! + @Published var account: Instance.Account! = .empty @Published var validInstance = true @Published var signedIn = true diff --git a/Shared/PearvidiousApp.swift b/Shared/PearvidiousApp.swift index 705853f1..0ac1e240 100644 --- a/Shared/PearvidiousApp.swift +++ b/Shared/PearvidiousApp.swift @@ -40,7 +40,7 @@ struct PearvidiousApp: App { search.api = api subscriptions.api = api - if let account = instances.defaultAccount, api.account.isNil { + if let account = instances.defaultAccount, api.account.isEmpty { api.setAccount(account) } }