diff options
author | Shav Kinderlehrer <[email protected]> | 2023-12-12 01:22:43 -0500 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2023-12-12 01:26:00 -0500 |
commit | 5ed7d2551ccaefc19d9e0b934ef17583dca202b2 (patch) | |
tree | 1c7853d57b0366f33356506c01b89d5955047c06 /Jel/Controllers/AuthStateController.swift | |
parent | 8a2b75dbfa85b89964848d4d2673e35cc6eed078 (diff) | |
download | jel-5ed7d2551ccaefc19d9e0b934ef17583dca202b2.tar.gz jel-5ed7d2551ccaefc19d9e0b934ef17583dca202b2.zip |
Add server page
Diffstat (limited to 'Jel/Controllers/AuthStateController.swift')
-rw-r--r-- | Jel/Controllers/AuthStateController.swift | 38 |
1 files changed, 38 insertions, 0 deletions
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") + } +} |