@wordpress/data
Version:
Data module for WordPress.
66 lines (61 loc) • 1.77 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.RegistryConsumer = exports.Context = void 0;
var _element = require("@wordpress/element");
var _defaultRegistry = _interopRequireDefault(require("../../default-registry"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const Context = exports.Context = (0, _element.createContext)(_defaultRegistry.default);
Context.displayName = 'RegistryProviderContext';
const {
Consumer,
Provider
} = Context;
/**
* A custom react Context consumer exposing the provided `registry` to
* children components. Used along with the RegistryProvider.
*
* You can read more about the react context api here:
* https://react.dev/learn/passing-data-deeply-with-context#step-3-provide-the-context
*
* @example
* ```js
* import {
* RegistryProvider,
* RegistryConsumer,
* createRegistry
* } from '@wordpress/data';
*
* const registry = createRegistry( {} );
*
* const App = ( { props } ) => {
* return <RegistryProvider value={ registry }>
* <div>Hello There</div>
* <RegistryConsumer>
* { ( registry ) => (
* <ComponentUsingRegistry
* { ...props }
* registry={ registry }
* ) }
* </RegistryConsumer>
* </RegistryProvider>
* }
* ```
*/
const RegistryConsumer = exports.RegistryConsumer = Consumer;
/**
* A custom Context provider for exposing the provided `registry` to children
* components via a consumer.
*
* See <a name="#RegistryConsumer">RegistryConsumer</a> documentation for
* example.
*/
var _default = exports.default = Provider;
//# sourceMappingURL=context.js.map