UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

98 lines β€’ 4.95 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["prefixCls", "className", "children", "indeterminate", "style", "onMouseEnter", "onMouseLeave", "skipGroup", "disabled"]; /* tslint:disable */ import classNames from 'classnames'; import RcCheckbox from 'rc-checkbox'; import * as React from 'react'; import { useContext } from 'react'; import { ConfigContext } from "../config-provider"; import { FormItemInputContext } from "../form/context"; import warning from "../_util/warning"; import { GroupContext } from "./Group"; import DisabledContext from "../config-provider/DisabledContext"; var InternalCheckbox = function InternalCheckbox(_ref, ref) { var _ref2, _classNames; var customizePrefixCls = _ref.prefixCls, className = _ref.className, children = _ref.children, _ref$indeterminate = _ref.indeterminate, indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate, style = _ref.style, onMouseEnter = _ref.onMouseEnter, onMouseLeave = _ref.onMouseLeave, _ref$skipGroup = _ref.skipGroup, skipGroup = _ref$skipGroup === void 0 ? false : _ref$skipGroup, disabled = _ref.disabled, restProps = _objectWithoutProperties(_ref, _excluded); var _React$useContext = React.useContext(ConfigContext), getPrefixCls = _React$useContext.getPrefixCls, direction = _React$useContext.direction; var checkboxGroup = React.useContext(GroupContext); var _useContext = useContext(FormItemInputContext), isFormItemInput = _useContext.isFormItemInput; var contextDisabled = useContext(DisabledContext); var mergedDisabled = (_ref2 = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _ref2 !== void 0 ? _ref2 : contextDisabled; var prevValue = React.useRef(restProps.value); React.useEffect(function () { checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value); warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?'); }, []); React.useEffect(function () { if (skipGroup) { return; } if (restProps.value !== prevValue.current) { checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current); checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value); prevValue.current = restProps.value; } return function () { return checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value); }; }, [restProps.value]); var prefixCls = getPrefixCls('checkbox', customizePrefixCls); var checkboxProps = _objectSpread({}, restProps); if (checkboxGroup && !skipGroup) { checkboxProps.onChange = function () { if (restProps.onChange) { restProps.onChange.apply(restProps, arguments); } if (checkboxGroup.toggleOption) { checkboxGroup.toggleOption({ label: children, value: restProps.value }); } }; checkboxProps.name = checkboxGroup.name; checkboxProps.checked = checkboxGroup.value.includes(restProps.value); } var classString = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-wrapper"), true), _defineProperty(_classNames, "".concat(prefixCls, "-rtl"), direction === 'rtl'), _defineProperty(_classNames, "".concat(prefixCls, "-wrapper-checked"), checkboxProps.checked), _defineProperty(_classNames, "".concat(prefixCls, "-wrapper-disabled"), mergedDisabled), _defineProperty(_classNames, "".concat(prefixCls, "-wrapper-in-form-item"), isFormItemInput), _classNames), className); var checkboxClass = classNames(_defineProperty({}, "".concat(prefixCls, "-indeterminate"), indeterminate)); var ariaChecked = indeterminate ? 'mixed' : undefined; return ( /*#__PURE__*/ // eslint-disable-next-line jsx-a11y/label-has-associated-control React.createElement("label", { className: classString, style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({ "aria-checked": ariaChecked }, checkboxProps, { prefixCls: prefixCls, className: checkboxClass, disabled: mergedDisabled, ref: ref })), children !== undefined && /*#__PURE__*/React.createElement("span", null, children)) ); }; var Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox); if (process.env.NODE_ENV !== 'production') { Checkbox.displayName = 'Checkbox'; } export default Checkbox;