import { registerBlockType } from '@wordpress/blocks';
import domReady from '@wordpress/dom-ready';
import { render } from '@wordpress/element';
import { addFilter } from '@wordpress/hooks';
import { __ } from '@wordpress/i18n';
import blockConfig from './block.json';
import { AutoInject } from './components/AutoInject';
import { BlockFilter } from './components/BlockFilter';
import { BlockReplacer } from './components/BlockReplacer';
import './editor.css';
import { blockIcon } from './icons';
registerBlockType('kevinbatdorf/stable-diffusion', {
...blockConfig,
icon: blockIcon,
attributes: {},
title: __('Block Diffusion', 'stable-diffusion'),
edit: ({ clientId }) => ,
save: () => null,
});
addFilter(
'editor.BlockEdit',
blockConfig.name,
(CurrentMenuItems) =>
// Not sure how to type these incoming props
// eslint-disable-next-line
(props: any) =>
BlockFilter(CurrentMenuItems, props),
);
// Lets users visit /post-new.php?post_type=page&block-diffusion-open
const q = new URLSearchParams(window.location.search);
if (q.has('block-diffusion-open')) {
q.delete('block-diffusion-open');
const blockDiffusion = Object.assign(document.createElement('div'), {
id: 'stable-diffusion-auto-inject',
});
domReady(() => {
window.history.replaceState({}, '', `${window.location.pathname}?${q}`);
document.body.append(blockDiffusion);
render(, blockDiffusion);
});
}