20 lines
526 B
TypeScript
20 lines
526 B
TypeScript
/**
|
|
* External dependencies
|
|
*/
|
|
import { getBlockTypes } from '@wordpress/blocks';
|
|
|
|
// List of core block types to allow in inner block areas.
|
|
const coreBlockTypes = [ 'core/paragraph', 'core/image', 'core/separator' ];
|
|
|
|
/**
|
|
* Gets a list of allowed blocks types under a specific parent block type.
|
|
*/
|
|
export const getAllowedBlocks = ( block: string ): string[] => [
|
|
...getBlockTypes()
|
|
.filter( ( blockType ) =>
|
|
( blockType?.parent || [] ).includes( block )
|
|
)
|
|
.map( ( { name } ) => name ),
|
|
...coreBlockTypes,
|
|
];
|