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 { useTheme } from 'providers/Theme'; import { addQueryParam, updateQueryParam, deleteQueryParam } from 'providers/ReduxStore/slices/collections'; import SingleLineEditor from 'components/SingleLineEditor'; import { sendRequest, saveRequest } from 'providers/ReduxStore/slices/collections/actions'; import StyledWrapper from './StyledWrapper'; const QueryParams = ({ item, collection }) => { const dispatch = useDispatch(); const { storedTheme } = useTheme(); const params = item.draft ? get(item, 'draft.request.params') : get(item, 'request.params'); const handleAddParam = () => { dispatch( addQueryParam({ itemUid: item.uid, collectionUid: collection.uid }) ); }; const onSave = () => dispatch(saveRequest(item.uid, collection.uid)); const handleRun = () => dispatch(sendRequest(item, 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 '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
handleParamChange(e, param, 'name')} /> handleParamChange({ target: { value: newValue } }, param, 'value')} onRun={handleRun} collection={collection} />
handleParamChange(e, param, 'enabled')} />
); }; export default QueryParams;