pageta-native/Sources/Features/AppearanceSettings.swift
Till JS 9703516cb2 Theme-Pass: gesperrtes Theme zeigt Button statt Auto-Open
ManaThemeGallery öffnet die Signatur-App nicht mehr automatisch beim
Tippen, sondern zeigt Hinweis + „<App> öffnen"-Button zur eigenen
Landingpage (mana-swift-ui). Wrapper: redundanten onLockedTap-Closure
(mana-ev.ch-openURL) + ungenutztes @Environment(\.openURL) entfernt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 01:40:35 +02:00

36 lines
1.2 KiB
Swift

import ManaThemeUI
import ManaTokens
import SwiftUI
/// Pageta-Wrapper um den geteilten ``ManaAppearancePicker`` — hält das
/// app-eigene `@AppStorage` und reicht die Binding durch. So bleibt die
/// Storage-Konvention in der App, die UI im geteilten `ManaThemeUI`.
struct PagetaAppearancePicker: View {
@AppStorage(ManaAppearanceMode.storageKey) private var raw = ManaAppearanceMode.system.rawValue
var body: some View {
ManaAppearancePicker(selection: Binding(
get: { ManaAppearanceMode(rawValue: raw) ?? .system },
set: { raw = $0.rawValue }
))
}
}
/// Pageta-Wrapper um die geteilte ``ManaThemeGallery`` — bindet an den
/// `pageta.theme.variant`-Key (Default paper) + den Theme-Pass: gesperrte Variants sind nur
/// ansehbar; ein Tipp zeigt Hinweis + „<App> öffnen"-Button zur eigenen
/// Landingpage (kein Auto-Open).
struct PagetaThemeGallery: View {
@AppStorage(ManaTheme.storageKey) private var raw = ManaTheme.pagetaDefault.rawValue
@Environment(ThemePassStore.self) private var themePass
var body: some View {
ManaThemeGallery(
selection: Binding(
get: { ManaTheme(rawValue: raw) ?? .paper },
set: { raw = $0.rawValue }
),
unlocked: themePass.unlocked
)
}
}