Version one on the App Store

This commit is contained in:
2026-04-05 19:44:30 +02:00
parent c780be089d
commit 3ebf1763ed
26 changed files with 2088 additions and 842 deletions
@@ -16,8 +16,8 @@ class MAThemeManager {
}
init() {
let savedValue = UserDefaults.standard.string(forKey: "appColorScheme") ?? "system"
colorScheme = AppColorScheme(rawValue: savedValue) ?? .system
let savedValue = UserDefaults.standard.string(forKey: "appColorScheme") ?? "dark"
colorScheme = AppColorScheme(rawValue: savedValue) ?? .dark
}
var preferredColorScheme: ColorScheme? {
@@ -50,6 +50,17 @@ enum AppColorScheme: String, CaseIterable, Identifiable {
}
}
var description: String {
switch self {
case .system:
return "Follows your device's appearance"
case .light:
return "Always use light mode"
case .dark:
return "Always use dark mode"
}
}
var icon: String {
switch self {
case .system:
@@ -74,3 +85,21 @@ extension EnvironmentValues {
set { self[ThemeManagerKey.self] = newValue }
}
}
// MARK: - Theme Applied Modifier
struct ThemeAppliedModifier: ViewModifier {
@Environment(\.themeManager) var themeManager
func body(content: Content) -> some View {
content
.preferredColorScheme(themeManager.preferredColorScheme)
.id(themeManager.colorScheme) // Force refresh when theme changes
}
}
extension View {
func applyTheme() -> some View {
modifier(ThemeAppliedModifier())
}
}