diff options
Diffstat (limited to 'Sources/NorgUI/Theme/EnvironmentValues+NorgTheme.swift')
| -rw-r--r-- | Sources/NorgUI/Theme/EnvironmentValues+NorgTheme.swift | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Sources/NorgUI/Theme/EnvironmentValues+NorgTheme.swift b/Sources/NorgUI/Theme/EnvironmentValues+NorgTheme.swift new file mode 100644 index 0000000..58c2c00 --- /dev/null +++ b/Sources/NorgUI/Theme/EnvironmentValues+NorgTheme.swift @@ -0,0 +1,19 @@ +import SwiftUI + +private struct NorgThemeKey: EnvironmentKey { + static let defaultValue = NorgTheme.default +} + +/// Makes NorgTheme values accessible via the environment. +extension EnvironmentValues { + public var norgTheme: NorgTheme { + get { self[NorgThemeKey.self] } + set { self[NorgThemeKey.self] = newValue } + } +} + +extension View { + public func norgTheme(_ theme: NorgTheme) -> some View { + environment(\.norgTheme, theme) + } +} |