import { memo, useState, createElement, useRef, useEffect, RawHTML, } from '@wordpress/element' import { __ } from 'ct-i18n' import { list, grid } from '@wordpress/icons' import classnames from 'classnames' import { useSelect } from '@wordpress/data' import { TextControl } from '@wordpress/components' import { Spinner, ToolbarGroup } from '@wordpress/components' import { InspectorControls, withColors, useInnerBlocksProps, BlockControls, BlockContextProvider, __experimentalUseBlockPreview as useBlockPreview, useBlockProps, store as blockEditorStore, } from '@wordpress/block-editor' import ColorsPanel from '../../components/ColorsPanel' import OptionsPanel from '../../../options/OptionsPanel' import { PanelBody } from '@wordpress/components' import { usePostsBlockData } from '../query/hooks/use-posts-block-data' const TEMPLATE = [ // ['core/post-title'], // ['core/post-date'], // ['core/post-excerpt'], ] function PostTemplateInnerBlocks() { const innerBlocksProps = useInnerBlocksProps( { className: 'wp-block-post' }, { template: TEMPLATE, __unstableDisableLayoutClassNames: true } ) return } function PostTemplateBlockPreview({ blocks, blockContextId, isHidden, setActiveBlockContextId, }) { const blockPreviewProps = useBlockPreview({ blocks, props: { className: 'wp-block-post', }, }) const handleOnClick = () => { setActiveBlockContextId(blockContextId) } const style = { display: isHidden ? 'none' : undefined, } return ( ) } const MemoizedPostTemplateBlockPreview = memo(PostTemplateBlockPreview) const Edit = ({ clientId, className, attributes, attributes: { layout }, setAttributes, context, __unstableLayoutClassNames, }) => { const { postId, postType } = context const [activeBlockContextId, setActiveBlockContextId] = useState() const { type: layoutType, columnCount = 3 } = layout || {} const blockProps = useBlockProps({ className: classnames(__unstableLayoutClassNames, { // Ensure column count is flagged via classname for backwards compatibility. [`columns-${columnCount}`]: layoutType === 'grid' && columnCount, }), }) const innerBlocksProps = useInnerBlocksProps( {}, { // template: TEMPLATE, } ) const { blockData } = usePostsBlockData({ attributes: context, previewedPostId: postId, }) const { blocks } = useSelect( (select) => { const { getBlocks } = select(blockEditorStore) return { blocks: getBlocks(clientId), } }, [clientId] ) if (!blockData) { return (