PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.6
JetFormBuilder — Dynamic Blocks Form Builder v3.1.6
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 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / assets / src / package / blocks / store / getPreparedBlocks.js
jetformbuilder / assets / src / package / blocks / store Last commit date
actions.js 2 years ago constants.js 2 years ago dispatchers.js 2 years ago getPreparedBlocks.js 2 years ago index.js 2 years ago reducer.js 2 years ago selectors.js 2 years ago
getPreparedBlocks.js
60 lines
1 import blocksRecursiveIterator from '../helpers/blocksRecursiveIterator';
2 import { storeName } from './index';
3
4 const {
5 select,
6 } = wp.data;
7
8 function getPreparedBlocks() {
9 const blocks = [];
10 const blockMap = {};
11 const propsToSave = select( storeName ).getPropsToSave();
12
13 blocksRecursiveIterator( ( block, parent ) => {
14 if ( !block?.name?.includes( 'jet-forms/' ) ) {
15 return;
16 }
17 const current = {};
18
19 for ( const propName of propsToSave ) {
20 if ( !block.hasOwnProperty( propName ) ) {
21 continue;
22 }
23 current[ propName ] = block[ propName ];
24 }
25
26 const blockType = select( 'core/blocks' ).getBlockType( block.name );
27 current.fields = blockType?.jfbGetFields?.call( block ) ?? [];
28
29 if ( !parent?.name ) {
30 blocks.push( current );
31 blockMap[ current.clientId ] = current;
32
33 return;
34 }
35
36 /**
37 * @type {Object}
38 */
39 const parentField = blockMap[ parent?.clientId ] ?? false;
40
41 if ( ! parentField ) {
42 return;
43 }
44
45 Object.defineProperty( current, 'parentBlock', {
46 get() {
47 return parentField;
48 },
49 } );
50
51 parentField.innerBlocks = parentField?.innerBlocks || [];
52 parentField.innerBlocks.push( current );
53
54 blockMap[ current.clientId ] = current;
55 } );
56
57 return { blocks, blockMap };
58 }
59
60 export default getPreparedBlocks;