From b9b61fa7ebb2716a013aacc410abe64a08d6f471 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Sun, 7 Jan 2024 16:58:38 -0500 Subject: Add current user to SettingsView --- Jel/Controllers/AuthStateController.swift | 8 ++++++- Jel/Controllers/JellyfinClientController.swift | 1 + Jel/Views/Settings/SettingsView.swift | 32 +++++++++++++++++++------- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/Jel/Controllers/AuthStateController.swift b/Jel/Controllers/AuthStateController.swift index 35283bd..d117820 100644 --- a/Jel/Controllers/AuthStateController.swift +++ b/Jel/Controllers/AuthStateController.swift @@ -12,16 +12,18 @@ class AuthStateController: ObservableObject { @Published var serverUrl: URL? @Published var authToken: String? @Published var userId: String? + @Published var username: String? private let defaults = UserDefaults.standard static let shared = AuthStateController() - init(loggedIn: Bool = false, serverUrl: URL? = nil, authToken: String? = nil, userId: String? = nil) { + init(loggedIn: Bool = false, serverUrl: URL? = nil, authToken: String? = nil, userId: String? = nil, username: String? = nil) { self.loggedIn = loggedIn self.serverUrl = serverUrl self.authToken = authToken self.userId = userId + self.username = username } func load() { @@ -35,6 +37,9 @@ class AuthStateController: ObservableObject { if let oldUserId = defaults.string(forKey: "AuthState_userId") { self.userId = oldUserId } + if let oldUsername = defaults.string(forKey: "AuthState_username") { + self.username = oldUsername + } } func save() { @@ -42,5 +47,6 @@ class AuthStateController: ObservableObject { defaults.set(self.serverUrl, forKey: "AuthState_serverUrl") defaults.set(self.authToken, forKey: "AuthState_authToken") defaults.set(self.userId, forKey: "AuthState_userId") + defaults.set(self.username, forKey: "AuthState_username") } } diff --git a/Jel/Controllers/JellyfinClientController.swift b/Jel/Controllers/JellyfinClientController.swift index e55afa3..6fdd1f1 100644 --- a/Jel/Controllers/JellyfinClientController.swift +++ b/Jel/Controllers/JellyfinClientController.swift @@ -109,6 +109,7 @@ extension JellyfinClientController { self.authState.loggedIn = true self.authState.authToken = res.value.accessToken self.authState.userId = res.value.user?.id + self.authState.username = username self.authState.save() self.setToken(token: self.authState.authToken ?? "") diff --git a/Jel/Views/Settings/SettingsView.swift b/Jel/Views/Settings/SettingsView.swift index 676b977..6d246d1 100644 --- a/Jel/Views/Settings/SettingsView.swift +++ b/Jel/Views/Settings/SettingsView.swift @@ -17,26 +17,42 @@ struct SettingsView: View { var body: some View { NavigationStack { Form { + Section() { + LabeledContent("Username") { + Text("\(authState.username ?? "---")") + .textSelection(.enabled) + } + + LabeledContent("Auth Token") { + Text("\(authState.authToken ?? "---")") + .textSelection(.enabled) + } + + Button(role: .destructive) { + authState.loggedIn = false + authState.save() + } label: { + Text("Sign out") + } + } header: { + Text("Current User") + } + Section() { AppearancePicker() } header: { Text("Accessibility") } - Section { + Section() { NavigationLink { ConsoleView() .closeButtonHidden() } label: { Text("Logs") } - - Button(role: .destructive) { - authState.loggedIn = false - authState.save() - } label: { - Text("Sign out") - } + } header: { + Text("Debug") } } .navigationTitle("Settings") -- cgit v1.2.3