diff options
author | Shav Kinderlehrer <[email protected]> | 2023-12-12 19:51:54 -0500 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2023-12-12 19:51:54 -0500 |
commit | 3994a6f408905049a5c280a303e30fe636b07968 (patch) | |
tree | ca06fab6088483deb3ab6bd422bca8647348c094 /Jel | |
parent | 9ccd37f754db33a190a9867bd5a310dfe5f4d17c (diff) | |
download | jel-3994a6f408905049a5c280a303e30fe636b07968.tar.gz jel-3994a6f408905049a5c280a303e30fe636b07968.zip |
Add logger + log console
Diffstat (limited to 'Jel')
-rw-r--r-- | Jel/Controllers/AuthStateController.swift | 8 | ||||
-rw-r--r-- | Jel/Controllers/JellyfinClientController.swift | 3 | ||||
-rw-r--r-- | Jel/Views/ConsoleSheetView.swift | 43 | ||||
-rw-r--r-- | Jel/Views/ContentView.swift | 34 |
4 files changed, 76 insertions, 12 deletions
diff --git a/Jel/Controllers/AuthStateController.swift b/Jel/Controllers/AuthStateController.swift index 93dbee3..35283bd 100644 --- a/Jel/Controllers/AuthStateController.swift +++ b/Jel/Controllers/AuthStateController.swift @@ -11,15 +11,17 @@ class AuthStateController: ObservableObject { @Published var loggedIn: Bool @Published var serverUrl: URL? @Published var authToken: String? + @Published var userId: String? private let defaults = UserDefaults.standard static let shared = AuthStateController() - init(loggedIn: Bool = false, serverUrl: URL? = nil, authToken: String? = nil) { + init(loggedIn: Bool = false, serverUrl: URL? = nil, authToken: String? = nil, userId: String? = nil) { self.loggedIn = loggedIn self.serverUrl = serverUrl self.authToken = authToken + self.userId = userId } func load() { @@ -30,11 +32,15 @@ class AuthStateController: ObservableObject { if let oldAuthToken = defaults.string(forKey: "AuthState_authToken") { self.authToken = oldAuthToken } + if let oldUserId = defaults.string(forKey: "AuthState_userId") { + self.userId = oldUserId + } } func save() { defaults.set(self.loggedIn, forKey: "AuthState_loggedIn") defaults.set(self.serverUrl, forKey: "AuthState_serverUrl") defaults.set(self.authToken, forKey: "AuthState_authToken") + defaults.set(self.userId, forKey: "AuthState_userId") } } diff --git a/Jel/Controllers/JellyfinClientController.swift b/Jel/Controllers/JellyfinClientController.swift index a80b908..24d4615 100644 --- a/Jel/Controllers/JellyfinClientController.swift +++ b/Jel/Controllers/JellyfinClientController.swift @@ -8,6 +8,7 @@ import Foundation import Get import JellyfinKit +import Pulse struct AuthHeaders: Codable { var Client: String @@ -56,6 +57,8 @@ class JellyfinClientController: ObservableObject { let decoder = JSONDecoder() decoder.dateDecodingStrategy = .iso8601withFractionalSeconds $0.decoder = decoder + + $0.sessionDelegate = Pulse.URLSessionProxyDelegate() }) } diff --git a/Jel/Views/ConsoleSheetView.swift b/Jel/Views/ConsoleSheetView.swift new file mode 100644 index 0000000..4d9ba32 --- /dev/null +++ b/Jel/Views/ConsoleSheetView.swift @@ -0,0 +1,43 @@ +// +// ConsoleSheetView.swift +// Jel +// +// Created by zerocool on 12/12/23. +// + +import SwiftUI +import PulseUI + +struct ConsoleSheetView: View { + @Binding var showingConsoleSheet: Bool + + var body: some View { + NavigationStack { + List { + NavigationLink { + ConsoleView(mode: .network) + .closeButtonHidden() + } label: { + Text("Network Console") + } + NavigationLink { + ConsoleView(mode: .logs) + .closeButtonHidden() + } label: { + Text("Logs Console") + } + } + .toolbar { + Button { + showingConsoleSheet.toggle() + } label: { + Text("Done") + } + } + } + } +} + +#Preview { + ConsoleSheetView(showingConsoleSheet: .constant(true)) +} diff --git a/Jel/Views/ContentView.swift b/Jel/Views/ContentView.swift index 356615d..91d5c7c 100644 --- a/Jel/Views/ContentView.swift +++ b/Jel/Views/ContentView.swift @@ -6,23 +6,35 @@ // import SwiftUI +import PulseUI struct ContentView: View { @ObservedObject var authState: AuthStateController + + @State var showingConsoleSheet: Bool = false var body: some View { - VStack { - if !authState.loggedIn { - SignInView(authState: authState) - } else { - Text("Logged in") - Button("Log out") { - authState.loggedIn = false - authState.save() - } - } + VStack { + Button { + showingConsoleSheet.toggle() + } label: { + Label("Console", systemImage: "network") + } + .sheet(isPresented: $showingConsoleSheet) { + ConsoleSheetView(showingConsoleSheet: $showingConsoleSheet) + } + + if !authState.loggedIn { + SignInView(authState: authState) + } else { + Text("Logged in") + Button("Log out") { + authState.loggedIn = false + authState.save() } - .padding() + } } + .padding() + } } #Preview { |