@prefect9/ui
Version:
UI React components
52 lines (51 loc) • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "CheckboxesGroup", {
enumerable: true,
get: function get() {
return _Group.default;
}
});
exports.default = void 0;
require("core-js/modules/es.string.trim.js");
var _react = require("react");
var _isType = require("@prefect9/is-type");
var _Group = _interopRequireDefault(require("./Group"));
var _styles = _interopRequireDefault(require("../../styles.css"));
var _icons = _interopRequireDefault(require("../../icons"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function Checkbox(_ref) {
let {
children,
checked,
onChange,
disabled,
className: userClassName
} = _ref;
const clickHandler = (0, _react.useCallback)(e => {
e.preventDefault();
if (disabled === true) return;
let newChecked = true;
if (checked) newChecked = false;
if ((0, _isType.isFunc)(onChange)) onChange(newChecked);
}, [checked, onChange, disabled]);
const className = (0, _react.useMemo)(() => {
const result = ['prefect9-checkbox'];
if (checked) result.push('prefect9-checkbox__checked');
if (disabled) result.push('prefect9-checkbox__disabled');
if ((0, _isType.isStr)(userClassName) && userClassName.length) result.push(userClassName.trim());
return result.join(' ');
}, [checked, disabled, userClassName]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: className,
onClick: clickHandler,
children: children !== null && children !== void 0 ? children : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "prefect9-checkbox__body",
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.default.Checkmark, {})
})
});
}
var _default = exports.default = Checkbox;