From 8fab5667240824353194060a4ea8c01688267868 Mon Sep 17 00:00:00 2001 From: Trey t Date: Fri, 26 Dec 2025 23:56:33 -0600 Subject: [PATCH] Fix LockScreenView to support style override for previews MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add optional style parameter to LockScreenView for preview/debug use - Update all 13 lock screen previews to use style override - Fixes previews showing the same style due to AppStorage timing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- Shared/Views/LockScreenView.swift | 68 +++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 18 deletions(-) diff --git a/Shared/Views/LockScreenView.swift b/Shared/Views/LockScreenView.swift index c3cc061..ea214a3 100644 --- a/Shared/Views/LockScreenView.swift +++ b/Shared/Views/LockScreenView.swift @@ -1440,11 +1440,17 @@ struct LockScreenView: View { @State private var showError = false @State private var showContent = false + // Read from AppStorage to match current theme, with optional override for previews @AppStorage(UserDefaultsStore.Keys.lockScreenStyle.rawValue, store: GroupUserDefaults.groupDefaults) private var lockScreenStyleRaw: Int = 0 + var style: LockScreenStyle? + private var lockScreenStyle: LockScreenStyle { - LockScreenStyle(rawValue: lockScreenStyleRaw) ?? .aurora + if let override = style { + return override + } + return LockScreenStyle(rawValue: lockScreenStyleRaw) ?? .aurora } private var isDark: Bool { colorScheme == .dark } @@ -1943,27 +1949,53 @@ struct MixtapeUnlockButton: View { // MARK: - Previews #Preview("Aurora") { - LockScreenView(authManager: BiometricAuthManager()) - .preferredColorScheme(.dark) -} - -#Preview("Neon") { - LockScreenView(authManager: BiometricAuthManager()) - .onAppear { - UserDefaults.standard.set(LockScreenStyle.neon.rawValue, forKey: UserDefaultsStore.Keys.lockScreenStyle.rawValue) - } + LockScreenView(authManager: BiometricAuthManager(), style: .aurora) } #Preview("Zen") { - LockScreenView(authManager: BiometricAuthManager()) - .onAppear { - UserDefaults.standard.set(LockScreenStyle.zen.rawValue, forKey: UserDefaultsStore.Keys.lockScreenStyle.rawValue) - } + LockScreenView(authManager: BiometricAuthManager(), style: .zen) +} + +#Preview("Neon") { + LockScreenView(authManager: BiometricAuthManager(), style: .neon) +} + +#Preview("Celestial") { + LockScreenView(authManager: BiometricAuthManager(), style: .celestial) +} + +#Preview("Editorial") { + LockScreenView(authManager: BiometricAuthManager(), style: .editorial) +} + +#Preview("Mixtape") { + LockScreenView(authManager: BiometricAuthManager(), style: .mixtape) +} + +#Preview("Bloom") { + LockScreenView(authManager: BiometricAuthManager(), style: .bloom) +} + +#Preview("Heartfelt") { + LockScreenView(authManager: BiometricAuthManager(), style: .heartfelt) +} + +#Preview("Minimal") { + LockScreenView(authManager: BiometricAuthManager(), style: .minimal) } #Preview("Luxe") { - LockScreenView(authManager: BiometricAuthManager()) - .onAppear { - UserDefaults.standard.set(LockScreenStyle.luxe.rawValue, forKey: UserDefaultsStore.Keys.lockScreenStyle.rawValue) - } + LockScreenView(authManager: BiometricAuthManager(), style: .luxe) +} + +#Preview("Forecast") { + LockScreenView(authManager: BiometricAuthManager(), style: .forecast) +} + +#Preview("Playful") { + LockScreenView(authManager: BiometricAuthManager(), style: .playful) +} + +#Preview("Journal") { + LockScreenView(authManager: BiometricAuthManager(), style: .journal) }