File "SelectQueryParameter.jsx"
Full Path: /home/rattkxnv/byattorney.com/wp-content/plugins/generateblocks/src/blocks/query/components/SelectQueryParameter.jsx
File size: 931 bytes
MIME-type: text/x-java
Charset: utf-8
import AdvancedSelect from '@components/advanced-select';
import { __ } from '@wordpress/i18n';
function groupBy( arr, key, common ) {
const currentGroups = {};
return arr.reduce( ( grouped, obj ) => {
const groupKey = obj[ key ] || common;
if ( ! Object.keys( currentGroups ).includes( groupKey ) ) {
const length = grouped.push( { label: groupKey, options: [ obj ] } );
currentGroups[ groupKey ] = length - 1;
} else {
grouped[ currentGroups[ groupKey ] ].options.push( obj );
}
return grouped;
}, [] );
}
export function SelectQueryParameter( props ) {
return (
<AdvancedSelect
id={ 'gblocks-select-query-parameters' }
label={ __( 'Select query parameter', 'generateblocks' ) }
placeholder={ __( 'Select query parameter', 'generateblocks' ) }
isSearchable
pageSize={ 20 }
{ ...props }
menuPlacement={ 'top' }
options={ groupBy( props.options, 'group', 'Other' ) }
/>
);
}