File "ParameterList.jsx"

Full path: /home/webcknlt/admissiontell.com/wp-content/plugins/generateblocks/src/blocks/query/components/ParameterList.jsx
File size: 955 B (955 B bytes)
MIME-type: text/x-java
Charset: utf-8

Download   Open   Edit   Advanced Editor &nnbsp; Back

import { Stack } from '@edge22/components';

import { getParameters } from '../query-parameters';
import { ParameterControl } from './ParameterControl';

const getParametersList = ( query ) => {
	const allOptions = getParameters();
	const options = allOptions.filter( ( param ) => param.isSticky );

	return options.concat( Object.keys( query ).map( ( id ) => (
		allOptions.find( ( param ) => ( id === param.id && ! param.isSticky ) )
	) ).filter( Boolean ) );
};

export function ParameterList( { query, setParameter, removeParameter, queryClient } ) {
	const parameterList = getParametersList( query );

	return (
		<Stack gap="24px">
			{ parameterList && parameterList.map( ( parameter, i ) => (
				<ParameterControl
					key={ `${ parameter.id }-${ i }` }
					parameter={ parameter }
					query={ query }
					setParameter={ setParameter }
					removeParameter={ removeParameter }
					queryClient={ queryClient }
				/>
			) ) }
		</Stack>
	);
}