UNPKG

@kirz/react-native-toolkit

Version:

Toolkit to speed up React Native development

24 lines 1.46 kB
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { createContext, useMemo, useState } from 'react'; import { StatusBar, useColorScheme } from 'react-native'; export const ColorSchemeContext = /*#__PURE__*/createContext({}); export function ColorSchemeProvider(_ref) { let { scheme, children, statusBarProps } = _ref; const systemColorScheme = useColorScheme(); const [fixedScheme, setFixedScheme] = useState(scheme ?? null); const contextData = useMemo(() => ({ colorScheme: fixedScheme ?? systemColorScheme ?? 'light', setColorScheme: setFixedScheme }), [systemColorScheme, fixedScheme]); return /*#__PURE__*/React.createElement(ColorSchemeContext.Provider, { value: contextData }, /*#__PURE__*/React.createElement(StatusBar, _extends({}, statusBarProps, { barStyle: (statusBarProps === null || statusBarProps === void 0 ? void 0 : statusBarProps.barStyle) ?? (contextData.colorScheme === 'light' ? 'dark-content' : 'light-content'), animated: (statusBarProps === null || statusBarProps === void 0 ? void 0 : statusBarProps.animated) ?? true })), children); } //# sourceMappingURL=ColorSchemeContext.js.map