# contact-forms/2.3.6/block-editor/index.js

Contact Forms by Cimatti, version 2.3.6. 93 lines.

- Page: https://pluginprobe.com/plugins/contact-forms/2.3.6/code/block-editor/index.js
- Raw: https://pluginprobe.com/plugins/contact-forms/2.3.6/raw/block-editor/index.js
- Modified: 2026-08-21T08:39:40+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/contact-forms/2.3.6/code/block-editor/index.js#L10-L20`.

```javascript
( function () {
	var el = wp.element.createElement;
	var __ = wp.i18n.__;
	var registerBlockType = wp.blocks.registerBlockType;
	var useBlockProps = wp.blockEditor.useBlockProps;
	var InspectorControls = wp.blockEditor.InspectorControls;
	var PanelBody = wp.components.PanelBody;
	var SelectControl = wp.components.SelectControl;
	var Placeholder = wp.components.Placeholder;
	var ServerSideRender = wp.serverSideRender;

	var forms = ( window.accua_forms_block_data || {} ).forms || [];

	var options = [
		{ label: __( 'Select a form', 'contact-forms' ), value: 0 }
	];
	for ( var i = 0; i < forms.length; i++ ) {
		options.push( {
			label: forms[ i ].text + ' (ID ' + forms[ i ].value + ')',
			value: parseInt( forms[ i ].value, 10 )
		} );
	}

	function getFormLabel( formId ) {
		for ( var i = 0; i < forms.length; i++ ) {
			if ( parseInt( forms[ i ].value, 10 ) === formId ) {
				return forms[ i ].text;
			}
		}
		return '';
	}

	registerBlockType( 'contact-forms/form-selector', {
		edit: function ( props ) {
			var blockProps = useBlockProps();
			var formId = props.attributes.formId;

			var selector = el( SelectControl, {
				label: __( 'Contact Form', 'contact-forms' ),
				value: formId,
				options: options,
				onChange: function ( val ) {
					props.setAttributes( { formId: parseInt( val, 10 ) } );
				},
				__nextHasNoMarginBottom: true
			} );

			var inspectorPanel = el(
				InspectorControls,
				null,
				el( PanelBody, { title: __( 'Form Settings', 'contact-forms' ) }, selector )
			);

			if ( ! formId ) {
				return el(
					'div',
					blockProps,
					inspectorPanel,
					el(
						Placeholder,
						{
							icon: 'email-alt',
							label: __( 'Contact Form', 'contact-forms' ),
							instructions: __( 'Select a form to display.', 'contact-forms' )
						},
						selector
					)
				);
			}

			return el(
				'div',
				blockProps,
				inspectorPanel,
				el( ServerSideRender, {
					block: 'contact-forms/form-selector',
					attributes: props.attributes,
					EmptyResponsePlaceholder: function () {
						return el(
							Placeholder,
							{
								icon: 'email-alt',
								label: __( 'Contact Form', 'contact-forms' )
							},
							el( 'p', null, __( 'Form not found.', 'contact-forms' ) )
						);
					}
				} )
			);
		}
	} );
} )();

```
