@antv/s2-react-components
Version:
React components for S2
28 lines • 2.12 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SingleItem = void 0;
const tslib_1 = require("tslib");
const antd_1 = require("antd");
const classnames_1 = tslib_1.__importDefault(require("classnames"));
const react_1 = tslib_1.__importDefault(require("react"));
const util_1 = require("../util");
const CLASS_NAME_PREFIX = 'item';
const SingleItem = (props) => {
const { dragHandleProps, fieldType, id, displayName, selectable, checked = true, parentId, className, disabled = false, onVisibleItemChange, } = props;
const ref = react_1.default.useRef(null);
const [ellipsis, setEllipsis] = react_1.default.useState(false);
react_1.default.useEffect(() => {
var _a, _b;
// 针对超长文字,添加 tooltip
setEllipsis(((_a = ref.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) < ((_b = ref.current) === null || _b === void 0 ? void 0 : _b.scrollWidth));
}, []);
const realDisplayName = displayName !== null && displayName !== void 0 ? displayName : id;
return (react_1.default.createElement("div", Object.assign({}, dragHandleProps, { className: (0, classnames_1.default)((0, util_1.getSwitcherClassName)(CLASS_NAME_PREFIX), className, {
unchecked: !checked,
}) }),
selectable && (react_1.default.createElement(antd_1.Checkbox, { disabled: disabled, checked: checked, onChange: (e) => onVisibleItemChange === null || onVisibleItemChange === void 0 ? void 0 : onVisibleItemChange(fieldType, e.target.checked, id, parentId) })),
ellipsis ? (react_1.default.createElement(antd_1.Tooltip, { title: realDisplayName, placement: "bottomRight", overlayClassName: (0, util_1.getSwitcherClassName)('tooltip') },
react_1.default.createElement("div", { className: (0, util_1.getSwitcherClassName)(CLASS_NAME_PREFIX, 'text'), ref: ref }, realDisplayName))) : (react_1.default.createElement("div", { className: (0, util_1.getSwitcherClassName)(CLASS_NAME_PREFIX, 'text'), ref: ref }, realDisplayName))));
};
exports.SingleItem = SingleItem;
//# sourceMappingURL=single-item.js.map