import {
BlockControls,
InnerBlocks,
InspectorControls,
useBlockProps,
useInnerBlocksProps,
} from '@wordpress/block-editor';
import {
PanelBody,
TabPanel,
ToggleControl,
ToolbarDropdownMenu,
ToolbarGroup,
} from '@wordpress/components';
import { useSelect } from '@wordpress/data';
import { applyFilters } from '@wordpress/hooks';
import { __ } from '@wordpress/i18n';
import classnames from 'classnames/dedupe';
import ApplyFilters from '../../components/apply-filters';
import ColorIndicator from '../../components/color-indicator';
import ColorPicker from '../../components/color-picker';
import IconPicker from '../../components/icon-picker';
import RangeControl from '../../components/range-control';
/**
* Block Edit Class.
*
* @param {Object} props - component props.
*
* @return {JSX} component.
*/
export default function BlockEdit(props) {
const { attributes, setAttributes } = props;
let { className = '' } = props;
const { color, hoverColor, icon, iconSize, hideButton } = attributes;
const hasChildBlocks = useSelect(
(select) => {
const blockEditor = select('core/block-editor');
return blockEditor
? blockEditor.getBlockOrder(props.clientId).length > 0
: false;
},
[props.clientId]
);
className = classnames('ghostkit-alert', className);
className = applyFilters('ghostkit.editor.className', className, props);
const blockProps = useBlockProps({ className });
const innerBlockProps = useInnerBlocksProps(
{
className: 'ghostkit-alert-content',
},
{
renderAppender: hasChildBlocks
? undefined
: InnerBlocks.ButtonBlockAppender,
templateLock: false,
}
);
return (
<>