@zenkit/styles
Version:
ZenKit components for impliments styles
42 lines (32 loc) • 1.4 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _stylesContext = _interopRequireDefault(require("./styles-context"));
function mergeOuterLocalTheme(outerTheme, localTheme) {
if (typeof localTheme === 'function') {
return localTheme(outerTheme);
}
return (0, _extends2.default)({}, outerTheme, localTheme);
}
function StylesProvider(_ref) {
var children = _ref.children,
localTheme = _ref.theme,
localOptions = (0, _objectWithoutProperties2.default)(_ref, ["children", "theme"]);
if (!children) return;
return _react.default.createElement(_stylesContext.default.Consumer, null, function (outerOptions) {
var theme = localTheme ? mergeOuterLocalTheme(outerOptions.theme, localTheme) : outerOptions.theme;
return _react.default.createElement(_stylesContext.default.Provider, {
value: (0, _extends2.default)({}, outerOptions, localOptions, {
theme: theme
})
}, children);
});
}
var _default = StylesProvider;
exports.default = _default;
;