@wordpress/plugins
Version:
Plugins module for WordPress.
43 lines (35 loc) • 1.41 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.withPluginContext = exports.PluginContextProvider = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _compose = require("@wordpress/compose");
/**
* WordPress dependencies
*/
const {
Consumer,
Provider
} = (0, _element.createContext)({
name: null,
icon: null
});
exports.PluginContextProvider = Provider;
/**
* A Higher Order Component used to inject Plugin context to the
* wrapped component.
*
* @param {Function} mapContextToProps Function called on every context change,
* expected to return object of props to
* merge with the component's own props.
*
* @return {WPComponent} Enhanced component with injected context as props.
*/
const withPluginContext = mapContextToProps => (0, _compose.createHigherOrderComponent)(OriginalComponent => {
return props => (0, _element.createElement)(Consumer, null, context => (0, _element.createElement)(OriginalComponent, (0, _extends2.default)({}, props, mapContextToProps(context, props))));
}, 'withPluginContext');
exports.withPluginContext = withPluginContext;
//# sourceMappingURL=index.js.map