first commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* WordPress dependencies
|
||||
*/
|
||||
const {
|
||||
addFilter,
|
||||
} = wp.hooks;
|
||||
|
||||
/**
|
||||
* Internal dependencies
|
||||
*/
|
||||
import ColumnBlockEdit from './edit.jsx';
|
||||
import ColumnBlockSave from './save.jsx';
|
||||
import changeColumnSize from './change-column-size';
|
||||
|
||||
const CNVS_PREVENT_UPDATE = 'CNVS_PREVENT_UPDATE';
|
||||
|
||||
/**
|
||||
* Custom block Edit output for Column block.
|
||||
*
|
||||
* @param {JSX} edit Original block edit.
|
||||
* @param {Object} blockProps Block data.
|
||||
*
|
||||
* @return {JSX} Block edit.
|
||||
*/
|
||||
function editRender( edit, blockProps ) {
|
||||
if ( 'canvas/column' === blockProps.name ) {
|
||||
return (
|
||||
<ColumnBlockEdit { ...blockProps } />
|
||||
);
|
||||
}
|
||||
|
||||
return edit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom block register data for Column block.
|
||||
*
|
||||
* @param {Object} blockData Block data.
|
||||
*
|
||||
* @return {Object} Block data.
|
||||
*/
|
||||
function registerData( blockData ) {
|
||||
if ( 'canvas/column' === blockData.name ) {
|
||||
blockData.save = ColumnBlockSave;
|
||||
}
|
||||
|
||||
return blockData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compensate adjacent columns, when changing size directly in field.
|
||||
*
|
||||
* @param {Mixed} val Attribute value.
|
||||
* @param {String} name Attribute name.
|
||||
* @param {Object} blockProps Block data.
|
||||
*
|
||||
* @return {Mixed} Attribute value.
|
||||
*/
|
||||
function onFieldChange( val, name, blockProps ) {
|
||||
if ( 'canvas/column' === blockProps.name && 'size' === name ) {
|
||||
changeColumnSize( blockProps.clientId, val, true );
|
||||
return CNVS_PREVENT_UPDATE;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
addFilter( 'canvas.customBlock.editRender', 'canvas/column/editRender', editRender );
|
||||
addFilter( 'canvas.customBlock.registerData', 'canvas/column/registerData', registerData );
|
||||
addFilter( 'canvas.customBlock.onFieldChange', 'canvas/column/changeColumnSize', onFieldChange );
|
||||
Reference in New Issue
Block a user