@talend/react-components
Version:
Set of react components.
63 lines (62 loc) • 2.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _RowLabel = _interopRequireDefault(require("../RowLabel"));
var _designSystem = require("@talend/design-system");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const RowCheckbox = ({
dataFeature,
description,
id,
label,
locked = false,
onChange,
checked = false,
intermediate = false
}) => {
const onChangeCheckbox = event => {
// Force to pass a checked state in case of intermediate checkbox
const checkedState = intermediate ? true : event.target.checked;
onChange(checkedState, label);
};
const describedby = `${id}-${description}`;
return locked ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.SizedIcon, {
name: "locker-closed",
size: "M"
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RowLabel.default, {
label: label
})]
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.Form.Checkbox, {
checked: checked,
"data-feature": dataFeature,
"aria-describedby": describedby,
id: `${id}-checkbox-${label.replace(/\s+/g, '-')}`,
label: label,
onChange: onChangeCheckbox,
indeterminate: intermediate
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
id: describedby,
className: "sr-only",
children: description
})]
});
};
RowCheckbox.propTypes = {
dataFeature: _propTypes.default.string.isRequired,
description: _propTypes.default.string.isRequired,
id: _propTypes.default.string.isRequired,
label: _propTypes.default.string.isRequired,
locked: _propTypes.default.bool,
onChange: _propTypes.default.func.isRequired,
checked: _propTypes.default.bool,
intermediate: _propTypes.default.bool
};
var _default = exports.default = RowCheckbox;
//# sourceMappingURL=RowCheckbox.component.js.map