import { BlockControls } from '@wordpress/block-editor'; import { Button, MenuItem, ToolbarGroup, ToolbarButton, } from '@wordpress/components'; import { useDispatch } from '@wordpress/data'; import { store as editPostStore } from '@wordpress/edit-post'; import { useEffect } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { render } from '@draft/lib/dom'; import { magic } from '@draft/svg'; const supportedBlocks = [ 'core/image', 'core/media-text', 'core/gallery', 'core/cover', ]; export const GenerateImageButtons = (CurrentComponents, props) => { const { openGeneralSidebar } = useDispatch(editPostStore); const { clientId: blockId, name: name } = props; useEffect(() => { if (!supportedBlocks.includes(name)) return; const frameSelector = 'iframe[name="editor-canvas"]'; const frame = document.querySelector(frameSelector)?.contentDocument; const block = frame ? frame.querySelector(`[data-block="${blockId}"]`) : document.querySelector(`[data-block="${blockId}"]`); if (!block) return; const parentSelector = '.block-editor-media-placeholder .components-form-file-upload'; const placeHolder = Object.assign(document.createElement('div'), { className: 'components-form-file-upload', }); block.querySelector(parentSelector)?.after(placeHolder); let root; const component = ( <> {/* layout placeholder */}