@talend/react-forms
Version:
React forms library based on json schema form.
88 lines (86 loc) • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = SimpleCheckBox;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _designSystem = require("@talend/design-system");
var _properties = require("../../utils/properties");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/* eslint-disable jsx-a11y/label-has-associated-control, jsx-a11y/no-autofocus */
function SimpleCheckBox({
describedby,
disabled,
id,
isValid,
label,
onChange,
onFinish,
schema,
value,
index
}) {
const {
autoFocus
} = schema;
const isDisabled = disabled || schema.disabled;
function getDataFeature() {
const dataFeature = schema['data-feature'];
return dataFeature ? `${dataFeature}.${value ? 'uncheck' : 'check'}` : undefined;
}
function getDataChecked() {
if (value) {
return 2;
}
return 0;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.Form.Checkbox, {
id: `${id}${index !== undefined ? `-${index}` : ''}`,
autoFocus: autoFocus,
disabled: isDisabled,
onChange: event => {
const isChecked = event.target.checked;
onChange(event, {
schema,
value: isChecked
});
onFinish(event, {
schema,
value: isChecked
});
},
checked: value,
"data-checked": getDataChecked(),
label: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
"data-feature": getDataFeature(),
children: label
}),
"aria-invalid": !isValid,
"aria-describedby": describedby,
...(0, _properties.extractDataAttributes)(schema, index)
});
}
if (process.env.NODE_ENV !== 'production') {
SimpleCheckBox.propTypes = {
describedby: _propTypes.default.string.isRequired,
disabled: _propTypes.default.bool,
id: _propTypes.default.string,
isValid: _propTypes.default.bool,
label: _propTypes.default.string,
onChange: _propTypes.default.func.isRequired,
onFinish: _propTypes.default.func.isRequired,
schema: _propTypes.default.shape({
'data-feature': _propTypes.default.string,
autoFocus: _propTypes.default.bool,
disabled: _propTypes.default.bool
}),
value: _propTypes.default.bool,
index: _propTypes.default.number
};
}
SimpleCheckBox.defaultProps = {
schema: {},
value: false
};
//# sourceMappingURL=SimpleCheckBox.component.js.map