UNPKG

@wordpress/plugins

Version:
43 lines (35 loc) 1.41 kB
"use strict"; 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