UNPKG

@antv/s2-react-components

Version:

React components for S2

28 lines 2.12 kB
"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