import { createPortal, useContext, useState, useRef, useEffect, createElement, } from '@wordpress/element' import { SlotFillProvider, Popover } from '@wordpress/components' import { removeFilter } from '@wordpress/hooks' import { registerCoreBlocks, __experimentalGetCoreBlocks, } from '@wordpress/block-library' import { __ } from 'ct-i18n' import { registerLegacyWidgetBlock, registerLegacyWidgetVariations, registerWidgetGroupBlock, } from '@wordpress/widgets' import { setFreeformContentHandlerName, store as blocksStore, } from '@wordpress/blocks' import { dispatch } from '@wordpress/data' import CustomizeWidgets from './customize-widgets/components/customize-widgets' import './customize-widgets/filters' import useClearSelectedBlock from './customize-widgets/components/customize-widgets/use-clear-selected-block' import { PanelContext } from '../../../options/components/PanelLevel' const NewBlockWidgetArea = ({ option: { sidebarId = 'ct-footer-sidebar-1' }, }) => { const blockEditorSettings = window.blocksyWidgetsBlockEditorSettings const { panelsState, panelsDispatch } = useContext(PanelContext) const [isMounted, setIsMounted] = useState(null) const popoverRef = useRef() const containerRef = useRef() useEffect(() => { removeFilter('editor.BlockEdit', 'core/customize-widgets/block-edit') return () => { document.body.classList.remove('outer-section-open') } }, []) const activeSidebarControl = wp.customize.control( `sidebars_widgets[${sidebarId}]` ) useClearSelectedBlock(activeSidebarControl, popoverRef, containerRef) useEffect(() => { panelsDispatch({ type: 'PANEL_RECEIVE_META', payload: { secondLevelTitleLabel: __('Block Settings', 'blocksy'), }, }) setTimeout(() => { setIsMounted(true) }, 1000) }, []) if (!document.querySelector('.ct-tmp-panel-actions')) { document.body.insertAdjacentHTML( 'beforeend', '
' ) } const popover = createPortal(
, document.querySelector('.ct-tmp-panel-actions') ) if (!isMounted) { return (
) } return (
{popover}
) } export default NewBlockWidgetArea