antd-multi-cascader
Version:
A multiple cascader component for antd
22 lines (21 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const react_1 = (0, tslib_1.__importStar)(require("react"));
const antd_1 = require("antd");
const utils_1 = require("../libs/utils");
const container_1 = (0, tslib_1.__importDefault)(require("../container"));
exports.default = react_1.default.memo((props) => {
const { node } = props;
const { value: containerValue, handleSelectChange, } = container_1.default.useContainer();
const handleClick = (0, react_1.useCallback)((event) => {
event.stopPropagation();
}, []);
const handleChange = (0, react_1.useCallback)((event) => {
const { checked } = event.target;
handleSelectChange(node, checked);
}, [node]);
const checked = (0, utils_1.hasParentChecked)(node, containerValue);
const indeterminate = !checked && (0, utils_1.hasChildChecked)(node, containerValue);
return (react_1.default.createElement(antd_1.Checkbox, { onClick: handleClick, onChange: handleChange, checked: checked, indeterminate: indeterminate }));
});