UNPKG

@open-formulieren/formio-builder

Version:

An opinionated Formio webform builder for Open Forms

25 lines (24 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const formik_1 = require("formik"); const react_1 = require("react"); const react_intl_1 = require("react-intl"); const formio_1 = require("../../formio"); const SoftRequired = () => { var _a, _b, _c, _d; const intl = (0, react_intl_1.useIntl)(); const { values, setFieldValue } = (0, formik_1.useFormikContext)(); const isRequired = (_b = (_a = values === null || values === void 0 ? void 0 : values.validate) === null || _a === void 0 ? void 0 : _a.required) !== null && _b !== void 0 ? _b : false; const isSoftRequired = (_d = (_c = values === null || values === void 0 ? void 0 : values.openForms) === null || _c === void 0 ? void 0 : _c.softRequired) !== null && _d !== void 0 ? _d : false; // if the field is hard required, we must disable the soft required option, and // synchronize the softRequired to uncheck the option (if needed) (0, react_1.useEffect)(() => { if (isRequired && isSoftRequired) { setFieldValue('openForms.softRequired', false); } }, [setFieldValue, isRequired, isSoftRequired]); const tooltip = intl.formatMessage({ id: "8M403q", defaultMessage: [{ type: 0, value: "Soft required fields should be filled out, but empty values don't block the users' progress. Sometimes this is needed for legal reasons. A component cannot be hard and soft required at the same time." }] }); return ((0, jsx_runtime_1.jsx)(formio_1.Checkbox, { name: "openForms.softRequired", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: 'QL4SGQ', defaultMessage: [{ type: 0, value: "Soft required" }] }), tooltip: tooltip, disabled: isRequired })); }; exports.default = SoftRequired;