From 2e3c12fed339c8bf3dc966217cbdf4c385fb98a1 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Fri, 15 Dec 2023 10:41:00 -0500 Subject: Add settings view + fix signin flow --- Jel/Views/Settings/SettingsView.swift | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Jel/Views/Settings/SettingsView.swift (limited to 'Jel/Views/Settings/SettingsView.swift') diff --git a/Jel/Views/Settings/SettingsView.swift b/Jel/Views/Settings/SettingsView.swift new file mode 100644 index 0000000..6eaa2e2 --- /dev/null +++ b/Jel/Views/Settings/SettingsView.swift @@ -0,0 +1,68 @@ +// +// SettingsView.swift +// Jel +// +// Created by zerocool on 12/13/23. +// + +import SwiftUI +import PulseUI + +struct SettingsView: View { + @Binding var showingSettingsView: Bool + + @StateObject var authState: AuthStateController = AuthStateController.shared + + @ObservedObject var settingsController: SettingsController = SettingsController.shared + var body: some View { + NavigationStack { + Form { + Section { + AppearancePicker() + } + + Section { + NavigationLink { + ConsoleView() + .closeButtonHidden() + } label: { + Text("Logs") + } + + Button(role: .destructive) { + authState.loggedIn = false + authState.save() + } label: { + Text("Sign out") + } + } + } + .navigationTitle("Settings") + .toolbar { + ToolbarItem { + Button { + showingSettingsView.toggle() + settingsController.save() + } label: { + Text("Done") + .bold() + } + } + } + .preferredColorScheme({ + switch settingsController.appearance { + case .dark: + return ColorScheme.dark + case .light: + return ColorScheme.light + case .automatic: + return .none + } + }()) + } + } +} + +#Preview { + SettingsView(showingSettingsView: .constant(true)) +} -- cgit v1.2.3