UNPKG

@open-formulieren/formio-builder

Version:

An opinionated Formio webform builder for Open Forms

34 lines (33 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const formik_1 = require("formik"); const react_intl_1 = require("react-intl"); const types_1 = require("../../types"); const formio_1 = require("../formio"); const hasDefaultValue = (component) => { return (0, types_1.hasOwnProperty)(component, 'defaultValue'); }; function Multiple({ updateDefaultValue = true }) { const intl = (0, react_intl_1.useIntl)(); const { values, getFieldProps, setFieldValue } = (0, formik_1.useFormikContext)(); const { onChange: formikOnChange } = getFieldProps('multiple'); const tooltip = intl.formatMessage({ id: "WDRqIp", defaultMessage: [{ type: 0, value: "Are there multiple values possible for this field?" }] }); const onChange = (e) => { formikOnChange(e); // only touch default value if we're allowed to if (!updateDefaultValue) return; // update the default value, if there is any if (!hasDefaultValue(values)) return; const { defaultValue } = values; if (defaultValue === undefined) return; const multiEnabled = e.target.checked; const newDefaultValue = multiEnabled ? [defaultValue] : defaultValue[0]; setFieldValue('defaultValue', newDefaultValue); }; return ((0, jsx_runtime_1.jsx)(formio_1.Checkbox, { name: "multiple", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: '7XdV9f', defaultMessage: [{ type: 0, value: "Multiple values" }] }), tooltip: tooltip, onChange: onChange })); } exports.default = Multiple;