PluginProbe ʕ •ᴥ•ʔ
GenerateBlocks / 2.0.0
GenerateBlocks v2.0.0
trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.3.0
generateblocks / src / blocks / query / components / SelectQueryParameter.jsx
generateblocks / src / blocks / query / components Last commit date
AddQueryParameterButton.jsx 1 year ago BlockSettings.jsx 1 year ago ControlBuilder.jsx 1 year ago DateQueryControl.jsx 1 year ago DateTimeControl.jsx 1 year ago ParameterControl.jsx 1 year ago ParameterList.jsx 1 year ago QueryInspectorControls.jsx 1 year ago SelectQueryParameter.jsx 1 year ago TaxonomyParameterControl.jsx 1 year ago editor.scss 1 year ago
SelectQueryParameter.jsx
34 lines
1 import AdvancedSelect from '@components/advanced-select';
2 import { __ } from '@wordpress/i18n';
3
4 function groupBy( arr, key, common ) {
5 const currentGroups = {};
6 return arr.reduce( ( grouped, obj ) => {
7 const groupKey = obj[ key ] || common;
8
9 if ( ! Object.keys( currentGroups ).includes( groupKey ) ) {
10 const length = grouped.push( { label: groupKey, options: [ obj ] } );
11 currentGroups[ groupKey ] = length - 1;
12 } else {
13 grouped[ currentGroups[ groupKey ] ].options.push( obj );
14 }
15
16 return grouped;
17 }, [] );
18 }
19
20 export function SelectQueryParameter( props ) {
21 return (
22 <AdvancedSelect
23 id={ 'gblocks-select-query-parameters' }
24 label={ __( 'Select query parameter', 'generateblocks' ) }
25 placeholder={ __( 'Select query parameter', 'generateblocks' ) }
26 isSearchable
27 pageSize={ 20 }
28 { ...props }
29 menuPlacement={ 'top' }
30 options={ groupBy( props.options, 'group', 'Other' ) }
31 />
32 );
33 }
34