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 / components / GroupedSelectControl.js
jetformbuilder / assets / src / package / components Last commit date
AdvancedInspectorControl.js 2 years ago AdvancedModalControl.js 2 years ago BaseHelp.js 2 years ago BaseLabel.js 2 years ago ContainersList.js 2 years ago DetailsContainer.js 2 years ago GroupedSelectControl.js 2 years ago HorizontalLine.js 2 years ago HoverContainer.js 2 years ago MacrosInserter.js 2 years ago ToggleControl.js 2 years ago
GroupedSelectControl.js
68 lines
1 const { isEmpty } = window.lodash;
2
3 /**
4 * WordPress dependencies
5 */
6 const { withInstanceId } = window.wp.compose;
7
8 /**
9 * Internal dependencies
10 */
11 const BaseControl = window.wp.components.BaseControl;
12
13 function GroupedSelectControl( {
14 help,
15 instanceId,
16 label,
17 multiple = false,
18 onChange,
19 options = [],
20 className,
21 value,
22 hideLabelFromVision,
23 } ) {
24 const id = `inspector-select-control-${ instanceId }`;
25 const onChangeValue = ( event ) => {
26 onChange( event.target.value );
27 };
28
29 // Disable reason: A select with an onchange throws a warning
30
31 /* eslint-disable jsx-a11y/no-onchange */
32 return ! isEmpty( options ) && (
33 <BaseControl label={ label } hideLabelFromVision={ hideLabelFromVision } id={ id } help={ help }
34 className={ className }>
35 <select
36 id={ id }
37 className="components-select-control__input"
38 onChange={ onChangeValue }
39 value={ value }
40 aria-describedby={ !! help ? `${ id }__help` : undefined }
41 >
42 <option
43 key={ `${ label }-placeholder` }
44 value={ `` }
45 >{ `--` }</option>
46 { options.map( ( optGroup, groupIndex ) => {
47 return ! isEmpty( optGroup.values ) && <optgroup
48 key={ `${ optGroup.label }-${ groupIndex }` }
49 label={ optGroup.label }
50 >
51 { optGroup.values.map( ( option, index ) =>
52 <option
53 key={ `${ option.value }-${ index }-${ groupIndex }` }
54 value={ option.value }
55 disabled={ option.disabled }
56 >
57 { option.label }
58 </option>,
59 ) }
60 </optgroup>;
61 } ) }
62 </select>
63 </BaseControl>
64 );
65 /* eslint-enable jsx-a11y/no-onchange */
66 }
67
68 export default withInstanceId( GroupedSelectControl );