From 5ed7d2551ccaefc19d9e0b934ef17583dca202b2 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Tue, 12 Dec 2023 01:22:43 -0500 Subject: Add server page --- Jel/Controllers/AuthStateController.swift | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Jel/Controllers/AuthStateController.swift (limited to 'Jel/Controllers/AuthStateController.swift') diff --git a/Jel/Controllers/AuthStateController.swift b/Jel/Controllers/AuthStateController.swift new file mode 100644 index 0000000..1629556 --- /dev/null +++ b/Jel/Controllers/AuthStateController.swift @@ -0,0 +1,38 @@ +// +// AuthStateController.swift +// Jel +// +// Created by zerocool on 12/11/23. +// + +import Foundation + +class AuthStateController: ObservableObject { + @Published var loggedIn: Bool + @Published var serverUrl: URL? + @Published var authToken: String? + + private let defaults = UserDefaults.standard + + init(loggedIn: Bool = false, serverUrl: URL? = nil, authToken: String? = nil) { + self.loggedIn = loggedIn + self.serverUrl = serverUrl + self.authToken = authToken + } + + func load() { + self.loggedIn = defaults.bool(forKey: "AuthState_loggedIn") + if let oldServerUrl = defaults.url(forKey: "AuthState_serverUrl") { + self.serverUrl = oldServerUrl + } + if let oldAuthToken = defaults.string(forKey: "AuthState_authToken") { + self.authToken = oldAuthToken + } + } + + func save() { + defaults.set(self.loggedIn, forKey: "AuthState_loggedIn") + defaults.set(self.serverUrl, forKey: "AuthState_serverUrl") + defaults.set(self.authToken, forKey: "AuthState_authToken") + } +} -- cgit v1.2.3