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