diff --git a/packages/block-library/src/column/block.json b/packages/block-library/src/column/block.json index bc8d16aa9601c2..1ad0b1dae3e698 100644 --- a/packages/block-library/src/column/block.json +++ b/packages/block-library/src/column/block.json @@ -12,6 +12,9 @@ "type": "number", "min": 0, "max": 100 + }, + "allowedBlocks": { + "type": "array" } }, "supports": { diff --git a/packages/block-library/src/column/edit.js b/packages/block-library/src/column/edit.js index 66525c0767775a..d4dd565a175560 100644 --- a/packages/block-library/src/column/edit.js +++ b/packages/block-library/src/column/edit.js @@ -18,7 +18,7 @@ import { useSelect, useDispatch } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; function ColumnEdit( { - attributes: { verticalAlignment, width }, + attributes: { verticalAlignment, width, allowedBlocks }, setAttributes, clientId, } ) { @@ -92,6 +92,8 @@ function ColumnEdit( { className: classes, style: hasWidth ? { flexBasis: width + '%' } : undefined, } } + //Specify the blocks allowed to be placed within this column + allowedBlocks={ allowedBlocks } /> ); diff --git a/packages/block-library/src/columns/block.json b/packages/block-library/src/columns/block.json index 0a84a4a35d7812..817a57e855acf6 100644 --- a/packages/block-library/src/columns/block.json +++ b/packages/block-library/src/columns/block.json @@ -4,7 +4,10 @@ "attributes": { "verticalAlignment": { "type": "string" - } + }, + "allowedChildBlocks": { + "type": "array" + } }, "supports": { "anchor": true, diff --git a/packages/block-library/src/columns/edit.js b/packages/block-library/src/columns/edit.js index 23f5e4e2bc7a8f..a36d38e916e2ff 100644 --- a/packages/block-library/src/columns/edit.js +++ b/packages/block-library/src/columns/edit.js @@ -48,7 +48,7 @@ function ColumnsEditContainer( { updateColumns, clientId, } ) { - const { verticalAlignment } = attributes; + const { verticalAlignment, allowedChildBlocks } = attributes; const { count } = useSelect( ( select ) => { @@ -91,6 +91,8 @@ function ColumnsEditContainer( { { return createBlock( 'core/column', { width: newColumnWidth, + allowedBlocks: allowedChildBlocks, } ); } ), ]; @@ -170,7 +174,9 @@ const ColumnsEditContainerWrapper = withDispatch( innerBlocks = [ ...innerBlocks, ...times( newColumns - previousColumns, () => { - return createBlock( 'core/column' ); + return createBlock( 'core/column', { + allowedBlocks: allowedChildBlocks, + } ); } ), ]; } else {