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>
36 lines
1.2 KiB
Swift
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
|
|
)
|
|
}
|
|
}
|