@wordpress/plugins
Version:
Plugins module for WordPress.
31 lines (29 loc) • 1.11 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { createContext } from '@wordpress/element';
import { createHigherOrderComponent } from '@wordpress/compose';
const {
Consumer,
Provider
} = createContext({
name: null,
icon: null
});
export { Provider as PluginContextProvider };
/**
* 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.
*/
export const withPluginContext = mapContextToProps => createHigherOrderComponent(OriginalComponent => {
return props => createElement(Consumer, null, context => createElement(OriginalComponent, _extends({}, props, mapContextToProps(context, props))));
}, 'withPluginContext');
//# sourceMappingURL=index.js.map