@wordpress/components
Version:
UI components for WordPress.
63 lines (48 loc) • 1.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.withGlobalStyles = exports.useGlobalStyles = exports.getMergedGlobalStyles = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _lodash = require("lodash");
var _utils = require("./utils");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const GlobalStylesContext = (0, _element.createContext)({
style: {}
});
GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES = _utils.BLOCK_STYLE_ATTRIBUTES;
const getMergedGlobalStyles = (globalStyle, wrapperPropsStyle, blockAttributes, defaultColors) => {
const blockStyleAttributes = (0, _lodash.pick)(blockAttributes, _utils.BLOCK_STYLE_ATTRIBUTES);
const mergedStyle = { ...globalStyle,
...wrapperPropsStyle
};
const blockPaddings = (0, _utils.getBlockPaddings)(mergedStyle, wrapperPropsStyle, blockStyleAttributes);
const blockColors = (0, _utils.getBlockColors)(blockStyleAttributes, defaultColors);
return { ...mergedStyle,
...blockPaddings,
...blockColors
};
};
exports.getMergedGlobalStyles = getMergedGlobalStyles;
const useGlobalStyles = () => {
const globalStyles = (0, _element.useContext)(GlobalStylesContext);
return globalStyles;
};
exports.useGlobalStyles = useGlobalStyles;
const withGlobalStyles = WrappedComponent => props => (0, _element.createElement)(GlobalStylesContext.Consumer, null, globalStyles => (0, _element.createElement)(WrappedComponent, (0, _extends2.default)({}, props, {
globalStyles: globalStyles
})));
exports.withGlobalStyles = withGlobalStyles;
var _default = GlobalStylesContext;
exports.default = _default;
//# sourceMappingURL=index.native.js.map