UNPKG

react-native-unistyles

Version:
33 lines (32 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAnimatedTheme = void 0; var _react = require("react"); var _reactNativeReanimated = require("react-native-reanimated"); var _specs = require("../specs"); const useAnimatedTheme = () => { const [scopedTheme, setScopedTheme] = (0, _react.useState)(() => _specs.UnistylesShadowRegistry.getScopedTheme()); const theme = (0, _reactNativeReanimated.useSharedValue)(_specs.UnistylesRuntime.getTheme(scopedTheme)); const maybeNewScopedTheme = _specs.UnistylesShadowRegistry.getScopedTheme(); if (scopedTheme !== maybeNewScopedTheme) { setScopedTheme(maybeNewScopedTheme); theme.set(_specs.UnistylesRuntime.getTheme(maybeNewScopedTheme)); } (0, _react.useEffect)(() => { const dispose = _specs.StyleSheet.addChangeListener(changedDependencies => { if (!changedDependencies.includes(_specs.UnistyleDependency.Theme)) { return; } if (scopedTheme) { return; } theme.set(_specs.UnistylesRuntime.getTheme()); }); return () => dispose(); }, [scopedTheme]); return theme; }; exports.useAnimatedTheme = useAnimatedTheme; //# sourceMappingURL=useAnimatedTheme.native.js.map