import { BlockPreview } from '@wordpress/block-editor'; import { rawHandler } from '@wordpress/blocks'; import { useMemo, useRef, useState, useEffect } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import classNames from 'classnames'; import { usePreviewIframe } from '@library/hooks/usePreviewIframe'; export const BlockPreviewButton = ({ insertPattern, code }) => { const [ready, setReady] = useState(false); const blockRef = useRef(); const blocks = useMemo( () => rawHandler({ HTML: lowerImageQuality(code) }), [code], ); const { ready: show } = usePreviewIframe({ container: blockRef.current, ready, onIFrameLoaded: () => undefined, loadDelay: 50, }); useEffect(() => setReady(true), []); return ( ); }; const lowerImageQuality = (html) => { return html.replace( /(https?:\/\/\S+\?w=\d+)/gi, '$1&q=10&auto=format,compress&fm=avif', ); };