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
ParameterList.jsx
33 lines
| 1 | import { Stack } from '@edge22/components'; |
| 2 | |
| 3 | import { getParameters } from '../query-parameters'; |
| 4 | import { ParameterControl } from './ParameterControl'; |
| 5 | |
| 6 | const getParametersList = ( query ) => { |
| 7 | const allOptions = getParameters(); |
| 8 | const options = allOptions.filter( ( param ) => param.isSticky ); |
| 9 | |
| 10 | return options.concat( Object.keys( query ).map( ( id ) => ( |
| 11 | allOptions.find( ( param ) => ( id === param.id && ! param.isSticky ) ) |
| 12 | ) ).filter( Boolean ) ); |
| 13 | }; |
| 14 | |
| 15 | export function ParameterList( { query, setParameter, removeParameter, queryClient } ) { |
| 16 | const parameterList = getParametersList( query ); |
| 17 | |
| 18 | return ( |
| 19 | <Stack gap="24px"> |
| 20 | { parameterList && parameterList.map( ( parameter, i ) => ( |
| 21 | <ParameterControl |
| 22 | key={ `${ parameter.id }-${ i }` } |
| 23 | parameter={ parameter } |
| 24 | query={ query } |
| 25 | setParameter={ setParameter } |
| 26 | removeParameter={ removeParameter } |
| 27 | queryClient={ queryClient } |
| 28 | /> |
| 29 | ) ) } |
| 30 | </Stack> |
| 31 | ); |
| 32 | } |
| 33 |