From b9b61fa7ebb2716a013aacc410abe64a08d6f471 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Sun, 7 Jan 2024 16:58:38 -0500 Subject: [PATCH] Add current user to SettingsView --- Jel/Controllers/AuthStateController.swift | 8 +++- .../JellyfinClientController.swift | 1 + Jel/Views/Settings/SettingsView.swift | 38 +++++++++++++------ 3 files changed, 35 insertions(+), 12 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 @@ -18,17 +18,14 @@ struct SettingsView: View { NavigationStack { Form { Section() { - AppearancePicker() - } header: { - Text("Accessibility") - } - - Section { - NavigationLink { - ConsoleView() - .closeButtonHidden() - } label: { - Text("Logs") + LabeledContent("Username") { + Text("\(authState.username ?? "---")") + .textSelection(.enabled) + } + + LabeledContent("Auth Token") { + Text("\(authState.authToken ?? "---")") + .textSelection(.enabled) } Button(role: .destructive) { @@ -37,6 +34,25 @@ struct SettingsView: View { } label: { Text("Sign out") } + } header: { + Text("Current User") + } + + Section() { + AppearancePicker() + } header: { + Text("Accessibility") + } + + Section() { + NavigationLink { + ConsoleView() + .closeButtonHidden() + } label: { + Text("Logs") + } + } header: { + Text("Debug") } } .navigationTitle("Settings")