# formidable/5.4/classes/views/shared/edit-page-js.php

Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes &amp; More, version 5.4. 62 lines.

- Page: https://pluginprobe.com/plugins/formidable/5.4/code/classes/views/shared/edit-page-js.php
- Raw: https://pluginprobe.com/plugins/formidable/5.4/raw/classes/views/shared/edit-page-js.php
- Modified: 2022-05-24T19:46:46+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/formidable/5.4/code/classes/views/shared/edit-page-js.php#L10-L20`.

```php
<?php
if ( ! defined( 'ABSPATH' ) ) {
	die( 'You are not allowed to call this page directly.' );
}
?>
<script>
( function() {
	const handleDomReady = () => {
		if ( 'undefined' === typeof wp || 'undefined' === typeof wp.data || 'function' !== typeof wp.data.subscribe ) {
			return;
		}

		const closeListener = wp.data.subscribe(
			() => {
				const editor = wp.data.select( 'core/editor' );

				if ( 'function' !== typeof editor.__unstableIsEditorReady ) {
					closeListener();
					return;
				}

				const isReady = editor.__unstableIsEditorReady();
				if ( isReady ) {
					closeListener();
					requestAnimationFrame( () => injectFormidableBlock() );
				}
			}
		);
	}

	document.addEventListener( 'DOMContentLoaded', handleDomReady );

	const injectFormidableBlock = () => {
		insertedBlock = wp.blocks.createBlock(
			'<?php echo esc_js( $block_name ); ?>',
			{ <?php echo esc_js( $object_key ); ?>: '<?php echo absint( $object_id ); ?>' }
		);

		const getBlocks = () => wp.data.select( 'core/editor' ).getBlocks();
		const blockList = getBlocks();

		const closeListener = wp.data.subscribe(
			() => {
				const currentBlocks = getBlocks();
				if ( currentBlocks === blockList ) {
					return;
				}

				closeListener();
				const block = currentBlocks[ currentBlocks.length - 1 ];
				setTimeout(
					() => document.getElementById( 'block-' + block.clientId ).scrollIntoView({ behavior: 'smooth' }),
					1
				);
			}
		);

		wp.data.dispatch( 'core/block-editor' ).insertBlocks( insertedBlock );
	};
}() );
</script>

```
