UNPKG

react-native-unistyles

Version:
33 lines (32 loc) 1.2 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"); var _services = require("../web/services"); 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 = _services.services.listener.addListeners([_specs.UnistyleDependency.Theme], () => { if (scopedTheme) { return; } theme.set(_specs.UnistylesRuntime.getTheme()); }); return () => { dispose(); }; }, [scopedTheme]); return theme; }; exports.useAnimatedTheme = useAnimatedTheme; //# sourceMappingURL=useAnimatedTheme.js.map