// Reference: https://github.com/WordPress/gutenberg/blob/release/16.4/packages/block-editor/src/components/block-preview/index.js /* eslint-disable @woocommerce/dependency-group */ /* eslint-disable @typescript-eslint/ban-ts-comment */ /** * External dependencies */ // @ts-ignore No types for this exist yet. import { BlockEditorProvider } from '@wordpress/block-editor'; import { memo, useContext } from '@wordpress/element'; import { BlockInstance } from '@wordpress/blocks'; /** * Internal dependencies */ import { AutoHeightBlockPreview, ScaledBlockPreviewProps, } from './auto-block-preview'; import { ChangeHandler } from './hooks/use-editor-blocks'; import { Toolbar } from './toolbar/toolbar'; import { isFullComposabilityFeatureAndAPIAvailable } from './utils/is-full-composability-enabled'; import { IsResizingContext } from './resizable-frame'; export const BlockPreview = ( { blocks, settings, useSubRegistry = true, onChange, isPatternPreview, ...props }: { blocks: BlockInstance | BlockInstance[]; settings: Record< string, unknown >; onChange?: ChangeHandler | undefined; useSubRegistry?: boolean; isPatternPreview: boolean; } & Omit< ScaledBlockPreviewProps, 'containerWidth' > ) => { const renderedBlocks = Array.isArray( blocks ) ? blocks : [ blocks ]; const isResizing = useContext( IsResizingContext ); return ( <> { isFullComposabilityFeatureAndAPIAvailable() && ! isPatternPreview && ! isResizing && } ); }; export default memo( BlockPreview );