summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShav Kinderlehrer <[email protected]>2024-01-07 16:58:38 -0500
committerShav Kinderlehrer <[email protected]>2024-01-07 16:58:38 -0500
commitb9b61fa7ebb2716a013aacc410abe64a08d6f471 (patch)
tree632eecba273f9103df041ba414a1c0f4aeef1f9b
parent4d40b0c083fa78a90337273b83b44f450c3d3d9b (diff)
downloadjel-b9b61fa7ebb2716a013aacc410abe64a08d6f471.tar.gz
jel-b9b61fa7ebb2716a013aacc410abe64a08d6f471.zip
Add current user to SettingsView
-rw-r--r--Jel/Controllers/AuthStateController.swift8
-rw-r--r--Jel/Controllers/JellyfinClientController.swift1
-rw-r--r--Jel/Views/Settings/SettingsView.swift32
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
@@ -18,25 +18,41 @@ struct SettingsView: 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")