moodlit-native/Sources/Features/Settings/MoodlitAppearanceControls.swift
till c2b79228d0 Settings/Profil auf geteilte ManaAppearanceSection + ManaAboutSection
- MoodlitAppearanceSection ersetzt die Einzel-Wrapper + handgebauten Block.
- ManaAboutSection (moodlit.mana.how, Verein) in ProfileView statt handgebauter
  Version/Build-Section.

Muster identisch zum build-verifizierten herbatrium; lokal nicht gebaut
(Disk-Limit), wird im Xcode-Fleet-Rebuild verifiziert.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 17:36:34 +02:00

31 lines
1.2 KiB
Swift

import ManaThemeUI
import ManaTokens
import SwiftUI
/// Moodlit-Konto-Sektion Darstellung" der geteilte ``ManaAppearanceSection``
/// (Hell/Dunkel-Picker + Theme-Galerie + einheitlicher Footer) mit
/// Moodlit-Persistenz: `@AppStorage` unter den moodlit-Keys, Defaults dunkel
/// (`.dark`) + Signatur-Theme `.twilight`, plus der Theme-Pass-Lock aus
/// ``ThemePassStore`` (gesperrte Variants nur ansehbar).
///
/// Ersetzt die früheren Einzel-Wrapper `MoodlitAppearancePicker` +
/// `MoodlitThemeGallery` samt handgebautem Section-Rahmen/Footer.
struct MoodlitAppearanceSection: View {
@AppStorage(ManaAppearanceMode.storageKey) private var appearanceRaw = ManaAppearanceMode.moodlitDefault.rawValue
@AppStorage(ManaTheme.storageKey) private var themeRaw = ManaTheme.moodlitDefault.rawValue
@Environment(ThemePassStore.self) private var themePass
var body: some View {
ManaAppearanceSection(
appearance: Binding(
get: { ManaAppearanceMode(rawValue: appearanceRaw) ?? .dark },
set: { appearanceRaw = $0.rawValue }
),
theme: Binding(
get: { ManaTheme(rawValue: themeRaw) ?? .twilight },
set: { themeRaw = $0.rawValue }
),
unlocked: themePass.unlocked
)
}
}