PluginProbe ʕ •ᴥ•ʔ
GenerateBlocks / 1.6.0
GenerateBlocks v1.6.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-loop / components / inspector-controls / SelectQueryParameter.js
generateblocks / src / blocks / query-loop / components / inspector-controls Last commit date
controls 3 years ago parameter-list 3 years ago AddQueryParameterButton.js 4 years ago SelectQueryParameter.js 4 years ago
SelectQueryParameter.js
35 lines
1 import AdvancedSelect from '../../../../components/advanced-select';
2 import { __ } from '@wordpress/i18n';
3
4 const groupBy = function( 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 default ( 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
35