PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.0
JetFormBuilder — Dynamic Blocks Form Builder v3.1.0
3.6.5.2 3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 All 130 releases
jetformbuilder / assets / src / editor / blocks / submit-field / index.js
index.js
92 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import ActionButtonEdit from './edit';
2 import metadata from '@blocks/submit-field/block.json';
3
4 const { __ } = wp.i18n;
5
6 const { createBlock } = wp.blocks;
7
8 const { name, icon = '' } = metadata;
9
10 /**
11 * Available items for `useEditProps`:
12 * - uniqKey
13 * - formFields
14 * - blockName
15 * - attrHelp
16 */
17 const settings = {
18 icon: <span dangerouslySetInnerHTML={ { __html: icon } }></span>,
19 description: __(
20 `Add the button by clicking which users can submit the form, proceed
21 to any form part, or change the render state (switch login to sign-up form).`,
22 'jet-form-builder'
23 ),
24 edit: ActionButtonEdit,
25 useEditProps: [ 'uniqKey', 'blockName', 'attrHelp' ],
26 example: {
27 attributes: {
28 isPreview: true,
29 },
30 },
31 /**
32 * @param attributes
33 * @param context {{|'accessibility'|'visual'|'list-view'}}
34 * @returns {*}
35 * @private
36 */
37 __experimentalLabel: ( { action_type }, { context } ) => {
38 if ( context !== 'list-view' ) {
39 return;
40 }
41 const action = JetFormActionButton.actions.find(
42 ( { value } ) => value === action_type,
43 );
44
45 return action?.label || JetFormActionButton.actions[ 0 ].label;
46 },
47 transforms: {
48 to: [
49 {
50 type: 'block',
51 blocks: [
52 'jet-forms/text-field',
53 ],
54 transform: ( attributes ) => {
55 return createBlock( 'jet-forms/text-field',
56 { ...attributes } );
57 },
58 priority: 0,
59 },
60 ],
61 from: [
62 {
63 type: 'block',
64 blocks: [
65 'jet-forms/text-field',
66 ],
67 transform: ( attributes ) => {
68 return createBlock( name, { ...attributes } );
69 },
70 priority: 0,
71 },
72 {
73 type: 'block',
74 blocks: [
75 'core/buttons',
76 ],
77 transform: ( attributes, innerBlocks ) => {
78 return createBlock( name, {
79 label: innerBlocks[ 0 ]?.attributes?.text || '',
80 } );
81 },
82 priority: 0,
83 },
84 ],
85 },
86 };
87
88 export {
89 metadata,
90 name,
91 settings,
92 };