import classnames from 'classnames/dedupe'; import { BlockControls, PlainText, useBlockProps, } from '@wordpress/block-editor'; import { ToolbarButton, ToolbarGroup } from '@wordpress/components'; import { useDispatch, useSelect } from '@wordpress/data'; import { useEffect, useRef, useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import MDRender from './render'; /** * Block Edit Class. * * @param props */ export default function BlockEdit(props) { const { attributes, setAttributes, isSelected } = props; const { content } = attributes; let { className } = props; const [activeTab, setActiveTab] = useState('editor'); const ref = useRef(); // Change active tab when block is not selected. useEffect(() => { if (!isSelected && activeTab === 'preview') { setActiveTab('editor'); } }, [isSelected, activeTab]); // Focus input. useEffect(() => { if (isSelected && activeTab === 'editor' && ref?.current) { ref?.current?.focus?.(); } }, [ref, isSelected, activeTab]); const { currentBlockId } = useSelect((select) => ({ currentBlockId: select('core/block-editor').getSelectedBlockClientId(), })); const { removeBlocks } = useDispatch('core/block-editor'); function removeBlock() { removeBlocks(currentBlockId); } className = classnames('ghostkit-markdown', className); const blockProps = useBlockProps({ className }); if (!isSelected && (!content || content.trim() === '')) { return (
{__('Write your _Markdown_ **here**…', 'ghostkit')}