diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index 634dea81c..79c0a7669 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -146,7 +146,9 @@ struct MainApp: App { SceneNavigationView() .environmentObject(sceneModel) .environmentObject(defaults) - }.commands { + .modifier(PreferredColorSchemeModifier(preferredColorScheme: defaults.userInterfaceColorPalette)) + } + .commands { CommandGroup(after: .newItem, addition: { Button("New Feed", action: {}) .keyboardShortcut("N") @@ -193,3 +195,20 @@ struct MainApp: App { #endif } } + +struct PreferredColorSchemeModifier: ViewModifier { + + var preferredColorScheme: UserInterfaceColorPalette + + @ViewBuilder + func body(content: Content) -> some View { + switch preferredColorScheme { + case .automatic: + content + case .dark: + content.preferredColorScheme(.dark) + case .light: + content.preferredColorScheme(.light) + } + } +} diff --git a/Multiplatform/Shared/Sidebar/SidebarToolbar.swift b/Multiplatform/Shared/Sidebar/SidebarToolbar.swift index e7df534f6..dafe70564 100644 --- a/Multiplatform/Shared/Sidebar/SidebarToolbar.swift +++ b/Multiplatform/Shared/Sidebar/SidebarToolbar.swift @@ -9,7 +9,8 @@ import SwiftUI struct SidebarToolbar: View { - + + @EnvironmentObject private var appSettings: AppDefaults @State private var showSettings: Bool = false var body: some View { @@ -40,7 +41,7 @@ struct SidebarToolbar: View { } .background(VisualEffectBlur(blurStyle: .systemChromeMaterial).edgesIgnoringSafeArea(.bottom)) .sheet(isPresented: $showSettings, onDismiss: { showSettings = false }) { - SettingsView() + SettingsView().modifier(PreferredColorSchemeModifier(preferredColorScheme: appSettings.userInterfaceColorPalette)) } } diff --git a/Multiplatform/iOS/AppDelegate.swift b/Multiplatform/iOS/AppDelegate.swift index a3539f5da..717065ff6 100644 --- a/Multiplatform/iOS/AppDelegate.swift +++ b/Multiplatform/iOS/AppDelegate.swift @@ -407,13 +407,13 @@ private extension AppDelegate { } func updateUserInterfaceStyle() { - switch AppDefaults.shared.userInterfaceColorPalette { - case .automatic: - window?.overrideUserInterfaceStyle = .unspecified - case .light: - window?.overrideUserInterfaceStyle = .light - case .dark: - window?.overrideUserInterfaceStyle = .dark - } +// switch AppDefaults.shared.userInterfaceColorPalette { +// case .automatic: +// window?.overrideUserInterfaceStyle = .unspecified +// case .light: +// window?.overrideUserInterfaceStyle = .light +// case .dark: +// window?.overrideUserInterfaceStyle = .dark +// } } } diff --git a/Multiplatform/iOS/Settings/Submenus/ColorPaletteContainerView.swift b/Multiplatform/iOS/Settings/Submenus/ColorPaletteContainerView.swift index 79190c06e..3cf4ee25a 100644 --- a/Multiplatform/iOS/Settings/Submenus/ColorPaletteContainerView.swift +++ b/Multiplatform/iOS/Settings/Submenus/ColorPaletteContainerView.swift @@ -31,7 +31,7 @@ struct ColorPaletteContainerView: View { if let colorPalette = UserInterfaceColorPalette(rawValue: index) { appSettings.userInterfaceColorPalette = colorPalette } - presentationMode.wrappedValue.dismiss() + self.presentationMode.wrappedValue.dismiss() } }