Viewing File: /home/fshjisk/myqueen/wp-content/plugins/user-registration/assets/js/admin/gutenberg/form-block.js
"use strict";
import React from "react";
/* global ur_form_block_data, wp */
const { createElement } = wp.element;
const { registerBlockType } = wp.blocks;
const { InspectorControls } = wp.blockEditor ? wp.blockEditor : wp.editor;
const ServerSideRender = wp.serverSideRender ?
wp.serverSideRender :
wp.components.ServerSideRender;
const { TextControl, SelectControl, PanelBody, Placeholder, RadioControl } =
wp.components;
const UserRegistrationIcon = createElement(
"svg",
{ width: 24, height: 24, viewBox: "0 0 32 32" },
createElement("path", {
fill: "currentColor",
d: "M27.58 4a27.9 27.9 0 0 0-5.17 4 27 27 0 0 0-4.09 5.08 33.06 33.06 0 0 1 2 4.65A23.78 23.78 0 0 1 24 12.15V18a8 8 0 0 1-5.89 7.72l-.21.05a27 27 0 0 0-1.9-8.16A27.9 27.9 0 0 0 9.59 8a27.9 27.9 0 0 0-5.17-4L4 3.77V18a12 12 0 0 0 9.93 11.82h.14a11.72 11.72 0 0 0 3.86 0h.14A12 12 0 0 0 28 18V3.77zM8 18v-5.85a23.86 23.86 0 0 1 5.89 13.57A8 8 0 0 1 8 18zm8-16a3 3 0 1 0 3 3 3 3 0 0 0-3-3z"
})
);
registerBlockType("user-registration/form-selector", {
title: ur_form_block_data.i18n.title,
icon: UserRegistrationIcon,
category: "widgets",
attributes: {
formId: {
type: "string"
},
formType: {
type: "string"
},
shortcode: {
type: "string"
},
redirectUrl: {
type: "string"
},
logoutUrl: {
type: "string"
}
},
edit (props) {
const {
attributes: {
formId = "",
formType = "registration_form",
shortcode = "",
redirectUrl = "",
logoutUrl = ""
},
setAttributes
} = props;
const formOptions = Object.keys(ur_form_block_data.forms).map(
(index) => ({
value: Number(index),
label: ur_form_block_data.forms[index]
})
);
let jsx;
formOptions.unshift({
value: "",
label: ur_form_block_data.i18n.form_select
});
function selectForm (value) {
setAttributes({ formType: value });
}
function selectRegistrationForm (value) {
setAttributes({ formId: value });
}
function selectLoginForm (value) {
setAttributes({ shortcode: value });
}
function enterRedirectURL (value) {
setAttributes({ redirectUrl: value });
}
function enterLogoutURL (value) {
setAttributes({ logoutUrl: value });
}
jsx = [
<InspectorControls key="ur-gutenberg-form-selector-inspector-controls">
<PanelBody title={ur_form_block_data.i18n.form_settings}>
<RadioControl
key="ur-gutenberg-form-selector-radio-control"
selected={formType}
options={[
{
label: "Registration Form",
value: "registration_form"
},
{ label: "Login Form", value: "login_form" }
]}
onChange={selectForm}
/>
{formType === "registration_form" ? (
<SelectControl
key="ur-gutenberg-form-selector-registration-form"
value={formId}
options={formOptions}
onChange={selectRegistrationForm}
/>
) : (
[
<SelectControl
key="ur-gutenberg-form-selector-login-form"
value={shortcode}
options={[
{ label: "Select Shortcode", value: "" },
{
label: "Login Shortcode",
value: "user_registration_login"
},
{
label: "My Account Shortcode",
value: "user_registration_my_account"
}
]}
onChange={selectLoginForm}
/>,
<TextControl
key="ur-gutenberg-form-selector-redirect-url"
label="Redirect URL"
value={redirectUrl}
onChange={enterRedirectURL}
/>,
<TextControl
key="ur-gutenberg-form-selector-logout-url"
label="Logout URL"
value={logoutUrl}
onChange={enterLogoutURL}
/>
]
)}
</PanelBody>
</InspectorControls>
];
if (formId || shortcode !== "") {
jsx.push(
<ServerSideRender
key="ur-gutenberg-form-selector-server-side-renderer"
block="user-registration/form-selector"
attributes={props.attributes}
/>
);
} else {
jsx.push(
<Placeholder
key="ur-gutenberg-form-selector-wrap"
className="ur-gutenberg-form-selector-wrap"
>
<img src={ur_form_block_data.logo_url} />
<h2>{ur_form_block_data.i18n.title}</h2>
<RadioControl
key="ur-gutenberg-form-selector-radio-control"
selected={formType}
options={[
{
label: "Registration Form",
value: "registration_form"
},
{ label: "Login Form", value: "login_form" }
]}
onChange={selectForm}
/>
{formType === "registration_form" ? (
<SelectControl
key="ur-gutenberg-form-selector-select-control"
value={formId}
options={formOptions}
onChange={selectRegistrationForm}
/>
) : (
<SelectControl
key="ur-gutenberg-form-selector-select-control"
selected={shortcode}
options={[
{ label: "Select Shortcode", value: "" },
{
label: "Login Shortcode",
value: "user_registration_login"
},
{
label: "My Account Shortcode",
value: "user_registration_my_account"
}
]}
onChange={selectLoginForm}
/>
)}
</Placeholder>
);
}
return jsx;
},
save () {
return null;
}
});
Back to Directory
File Manager