diff --git a/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpOptionsForm.js b/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpOptionsForm.js index e27ca5fa5b..987e8e09c0 100644 --- a/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpOptionsForm.js +++ b/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpOptionsForm.js @@ -2,7 +2,6 @@ import PropTypes from 'prop-types'; import React, {useContext} from 'react'; import {FormattedMessage} from 'react-intl'; -import {FormContext} from 'components/admin/form_design/Context'; import Fieldset from 'components/admin/forms/Fieldset'; import ModalOptionsConfiguration from 'components/admin/forms/ModalOptionsConfiguration'; import { @@ -12,23 +11,12 @@ import { } from 'components/admin/forms/ValidationErrors'; import {getChoicesFromSchema} from 'utils/json-schema'; -import {FormVariablesSelect, Path, ServiceSelect} from './fields'; +import {Path, ServiceSelect, Variables} from './fields'; const JSONDumpOptionsForm = ({name, label, schema, formData, onChange}) => { const validationErrors = useContext(ValidationErrorContext); const relevantErrors = filterErrors(name, validationErrors); - // Get form variables and create form variable options - const formContext = useContext(FormContext); - const formVariables = formContext.formVariables ?? []; - const staticVariables = formContext.staticVariables ?? []; - const allVariables = staticVariables.concat(formVariables); - - const variableOptions = []; - for (const variable of allVariables) { - variableOptions.push({value: variable.key, label: variable.name}); - } - // Create service options const {service} = schema.properties; const serviceOptions = getChoicesFromSchema(service.enum, service.enumNames).map( @@ -53,13 +41,13 @@ const JSONDumpOptionsForm = ({name, label, schema, formData, onChange}) => { ...formData, }} onSubmit={values => onChange({formData: values})} - modalSize="medium" + modalSize="large" >
- +
diff --git a/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpVariableConfigurationEditor.js b/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpVariableConfigurationEditor.js index 31bb9b8fea..75f5b4077c 100644 --- a/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpVariableConfigurationEditor.js +++ b/src/openforms/js/components/admin/form_design/registrations/json_dump/JSONDumpVariableConfigurationEditor.js @@ -37,7 +37,7 @@ const JSONDumpVariableConfigurationEditor = ({variable}) => { const newVariables = shouldBeIncluded ? [...variables, variable.key] // add the variable to the array : variables.filter(key => key !== variable.key); // remove the variable from the array - setFieldValue('variables', variables); + setFieldValue('variables', newVariables); }} /> diff --git a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/FormVariablesSelect.js b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/FormVariablesSelect.js deleted file mode 100644 index 7ac5993b2b..0000000000 --- a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/FormVariablesSelect.js +++ /dev/null @@ -1,66 +0,0 @@ -import {useField} from 'formik'; -import PropTypes from 'prop-types'; -import React from 'react'; -import {FormattedMessage} from 'react-intl'; - -import Field from 'components/admin/forms/Field'; -import FormRow from 'components/admin/forms/FormRow'; -import ReactSelect from 'components/admin/forms/ReactSelect'; - -const FormVariablesSelect = ({options}) => { - const [fieldProps, , {setValue}] = useField('variables'); - - const values = []; - if (fieldProps.value && fieldProps.value.length) { - fieldProps.value.forEach(item => { - const selectedOption = options.find(option => option.value === item); - if (selectedOption) { - values.push(selectedOption); - } - }); - } - - return ( - - - } - helpText={ - - } - required - noManageChildProps - > - { - setValue(newValue.map(item => item.value)); - }} - /> - - - ); -}; - -FormVariablesSelect.propTypes = { - options: PropTypes.arrayOf( - PropTypes.shape({ - value: PropTypes.string.isRequired, - label: PropTypes.node.isRequired, - }) - ).isRequired, -}; - -export default FormVariablesSelect; diff --git a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js new file mode 100644 index 0000000000..2d934a3ced --- /dev/null +++ b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js @@ -0,0 +1,43 @@ +import {useField} from 'formik'; +import React from 'react'; +import {FormattedMessage} from 'react-intl'; + +import Field from 'components/admin/forms/Field'; +import FormRow from 'components/admin/forms/FormRow'; +import VariableSelection from 'components/admin/forms/VariableSelection'; + +const Variables = () => { + const [fieldProps] = useField('variables'); + + return ( + + + } + helpText={ + + } + required + noManageChildProps + > + + + + ); +}; + +export default Variables; diff --git a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/index.js b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/index.js index 2b2cab17e5..ab0ba696a9 100644 --- a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/index.js +++ b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/index.js @@ -1,5 +1,5 @@ -import FormVariablesSelect from './FormVariablesSelect'; import Path from './Path'; import ServiceSelect from './ServiceSelect'; +import Variables from './Variables'; -export {FormVariablesSelect, Path, ServiceSelect}; +export {Path, ServiceSelect, Variables};