pageta-native/Sources/Features/AppearanceSettings.swift
Till JS 2e90a7dc1e Konto/Settings auf geteilte ManaAppearanceSection + ManaAboutSection
- PagetaAppearanceSection ersetzt PagetaAppearancePicker/ThemeGallery +
  handgebauten Section-Rahmen; iOS-Konto-Tab + macOS-Settings.
- ManaAccountView(about:) aktiviert (pageta.com, Verein); alte Über-Section weg.

iOS-Build (Release) grün.

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

33 lines
1.2 KiB
Swift

import ManaThemeUI
import ManaTokens
import SwiftUI
/// Pageta-Konto-Sektion „Darstellung" — der geteilte ``ManaAppearanceSection``
/// (Hell/Dunkel-Picker + Theme-Galerie + einheitlicher Footer) mit
/// Pageta-Persistenz: `@AppStorage` unter den pageta-Keys, Defaults
/// `.system` (Hell/Dunkel folgt System) + Signatur-Theme `.paper`
/// (Reader-Identität), plus der Theme-Pass-Lock aus ``ThemePassStore``
/// (gesperrte Variants nur ansehbar).
///
/// Ersetzt die früheren Einzel-Wrapper `PagetaAppearancePicker` +
/// `PagetaThemeGallery` samt handgebautem Section-Rahmen/Footer.
struct PagetaAppearanceSection: View {
@AppStorage(ManaAppearanceMode.storageKey) private var appearanceRaw = ManaAppearanceMode.system
.rawValue
@AppStorage(ManaTheme.storageKey) private var themeRaw = ManaTheme.pagetaDefault.rawValue
@Environment(ThemePassStore.self) private var themePass
var body: some View {
ManaAppearanceSection(
appearance: Binding(
get: { ManaAppearanceMode(rawValue: appearanceRaw) ?? .system },
set: { appearanceRaw = $0.rawValue }
),
theme: Binding(
get: { ManaTheme(rawValue: themeRaw) ?? .paper },
set: { themeRaw = $0.rawValue }
),
unlocked: themePass.unlocked
)
}
}