51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
|
/**
|
||
|
* External dependencies
|
||
|
*/
|
||
|
import deprecated from '@wordpress/deprecated';
|
||
|
|
||
|
/**
|
||
|
* Internal dependencies
|
||
|
*/
|
||
|
import { registeredBlockComponents } from './registered-block-components-init';
|
||
|
|
||
|
/**
|
||
|
* Get all Registered Block Components.
|
||
|
*
|
||
|
* WooCommerce Blocks allows React Components to be used on the frontend of the store in place of
|
||
|
* Blocks instead of just serving static content.
|
||
|
*
|
||
|
* This gets all registered Block Components so we know which Blocks map to which React Components.
|
||
|
*
|
||
|
* @param {string} context Current context (a named parent Block). If Block Components were only
|
||
|
* registered under a certain context, those Components will be returned,
|
||
|
* as well as any Components registered under all contexts.
|
||
|
* @return {Object} List of React Components registered under the provided context.
|
||
|
*/
|
||
|
export function getRegisteredBlockComponents( context ) {
|
||
|
const parentInnerBlocks =
|
||
|
typeof registeredBlockComponents[ context ] === 'object' &&
|
||
|
Object.keys( registeredBlockComponents[ context ] ).length > 0
|
||
|
? registeredBlockComponents[ context ]
|
||
|
: {};
|
||
|
|
||
|
return {
|
||
|
...parentInnerBlocks,
|
||
|
...registeredBlockComponents.any,
|
||
|
};
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Alias of getRegisteredBlockComponents kept for backwards compatibility.
|
||
|
*
|
||
|
* @param {string} main Name of the parent block to retrieve children of.
|
||
|
* @return {Object} List of registered inner blocks.
|
||
|
*/
|
||
|
export function getRegisteredInnerBlocks( main ) {
|
||
|
deprecated( 'getRegisteredInnerBlocks', {
|
||
|
version: '2.8.0',
|
||
|
alternative: 'getRegisteredBlockComponents',
|
||
|
plugin: 'WooCommerce Blocks',
|
||
|
} );
|
||
|
return getRegisteredBlockComponents( main );
|
||
|
}
|