import React from 'react'; import get from 'lodash/get'; import cloneDeep from 'lodash/cloneDeep'; import { IconTrash } from '@tabler/icons'; import { useDispatch } from 'react-redux'; import { addQueryParam, updateQueryParam, deleteQueryParam } from 'providers/ReduxStore/slices/collections'; import StyledWrapper from './StyledWrapper'; const QueryParams = ({item, collection}) => { const dispatch = useDispatch(); const params = item.draft ? get(item, 'draft.request.params') : get(item, 'request.params'); const handleAddParam = () => { dispatch(addQueryParam({ itemUid: item.uid, collectionUid: collection.uid, })); }; const handleParamChange = (e, _param, type) => { const param = cloneDeep(_param); switch(type) { case 'name' : { param.name = e.target.value; break; } case 'value' : { param.value = e.target.value; break; } case 'description' : { param.description = e.target.value; break; } case 'enabled' : { param.enabled = e.target.checked; break; } } dispatch(updateQueryParam({ param, itemUid: item.uid, collectionUid: collection.uid })); }; const handleRemoveParam = (param) => { dispatch(deleteQueryParam({ paramUid: param.uid, itemUid: item.uid, collectionUid: collection.uid })); }; return ( {params && params.length ? params.map((param, index) => { return ( ); }) : null}
Key Value Description
handleParamChange(e, param, 'name')} /> handleParamChange(e, param, 'value')} /> handleParamChange(e, param, 'description')} />
handleParamChange(e, param, 'enabled')} />
) }; export default QueryParams;