( 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' ) ) ); } } ) ); } } ); } )();