PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.1
JetFormBuilder — Dynamic Blocks Form Builder v3.1.1
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 / components / SelectVariations.js
jetformbuilder / assets / src / package / blocks / components Last commit date
AdvancedFields.js 2 years ago AttributeHelp.js 2 years ago BlockAddPrevButton.js 2 years ago BlockAdvancedValue.js 2 years ago BlockClassName.js 2 years ago BlockDefaultValue.js 2 years ago BlockDescription.js 2 years ago BlockLabel.js 2 years ago BlockName.js 2 years ago BlockPlaceholder.js 2 years ago BlockPrevButtonLabel.js 2 years ago BlockRequired.js 2 years ago BlockVisibility.js 2 years ago FieldControl.js 2 years ago FieldSettingsWrapper.js 2 years ago FieldWrapper.js 2 years ago GeneralFields.js 2 years ago SelectVariations.js 2 years ago ToggleGroupVariations.js 2 years ago ToolBarDefault.js 2 years ago ToolBarFields.js 2 years ago
SelectVariations.js
66 lines
1 import useBlockAttributes from '../hooks/useBlockAttributes';
2
3 const {
4 useSelect,
5 } = wp.data;
6
7 const {
8 CustomSelectControl,
9 Icon,
10 } = wp.components;
11 const {
12 useBlockEditContext,
13 } = wp.blockEditor;
14
15 function SelectVariations( { value } ) {
16 const { name } = useBlockEditContext();
17 const [ , setAttributes ] = useBlockAttributes();
18
19 const { variations, rawVariations } = useSelect(
20 ( select ) => {
21 const {
22 getBlockVariations,
23 } = select( 'core/blocks' );
24
25 const items = getBlockVariations( name, 'block' );
26 const options = [];
27 const rawVariations = {};
28
29 for ( const item of items ) {
30 options.push( {
31 key: item.name,
32 name: <span className={ 'jet-fb flex gap-1em ai-center' }>
33 <Icon icon={ item.icon }/>
34 { item.title }
35 </span>,
36 } );
37 rawVariations[ item.name ] = item;
38 }
39
40 return {
41 variations: options,
42 rawVariations,
43 };
44 },
45 [],
46 );
47
48 if ( !variations.length ) {
49 return null;
50 }
51
52 return <CustomSelectControl
53 __nextUnconstrainedWidth
54 hideLabelFromVision
55 options={ variations }
56 size={ '__unstable-large' }
57 onChange={ ( { selectedItem } ) => setAttributes( {
58 ...rawVariations[ selectedItem.key ].attributes,
59 } ) }
60 value={ variations.find(
61 ( { key } ) => key === value )
62 }
63 />;
64 }
65
66 export default SelectVariations;