Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
generateblocks
/
src
/
hooks
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
import { useSelect } from '@wordpress/data'; import { useLayoutEffect, useState } from '@wordpress/element'; export function useSelectedBlockElements() { const { getSelectedBlockClientIds, } = useSelect( ( select ) => select( 'core/block-editor' ), [] ); const clientIds = getSelectedBlockClientIds(); const [ elements, setElements ] = useState( [] ); useLayoutEffect( () => { if ( ! clientIds.length ) { return; } const queryDocument = document.querySelector( 'iframe[name="editor-canvas"]' )?.contentDocument || document; const editorStylesWrapper = queryDocument.querySelector( '.editor-styles-wrapper' ); setElements( clientIds.map( ( clientId ) => { if ( null === editorStylesWrapper ) { return null; } return editorStylesWrapper.querySelector( `[data-block="${ clientId }"]:not(.gb-is-root-block)` ); } ).filter( ( element ) => null !== element ) ); }, [ clientIds ] ); return elements; } export function useSelectedBlockElement() { const { getSelectedBlockClientId, } = useSelect( ( select ) => select( 'core/block-editor' ), [] ); const clientId = getSelectedBlockClientId(); const [ element, setElement ] = useState( null ); useLayoutEffect( () => { if ( ! clientId ) { return; } const queryDocument = document.querySelector( 'iframe[name="editor-canvas"]' )?.contentDocument || document; const editorStylesWrapper = queryDocument.querySelector( '.editor-styles-wrapper' ); setElement( editorStylesWrapper.querySelector( `[data-block="${ clientId }"]:not(.gb-is-root-block)` ) ?? null ); }, [ clientId ] ); return element; }