@open-formulieren/formio-builder
Version:
An opinionated Formio webform builder for Open Forms
34 lines (33 loc) • 1.65 kB
JavaScript
;
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;