UNPKG

weike-multi-cascader

Version:
30 lines (29 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = tslib_1.__importStar(require("react")); const container_1 = tslib_1.__importDefault(require("../container")); const constants_1 = require("../constants"); const MenuItem_1 = tslib_1.__importDefault(require("./MenuItem")); const Column = (props) => { const { item, columnWidth, depth, index } = props; const ref = react_1.useRef(null); const [width, setWidth] = react_1.useState(columnWidth); // 固定宽度,避免切换时菜单跳动的问题 react_1.useEffect(() => { const { width: refWidth } = ref.current.getBoundingClientRect(); setWidth(refWidth); }, []); return (react_1.default.createElement("div", { className: `${constants_1.prefix}-column`, style: { width: `${columnWidth || width}px` }, ref: ref }, react_1.default.createElement("ul", null, item.map((node) => { return (react_1.default.createElement(MenuItem_1.default, { index: index, key: node.value.toString(), depth: depth, node: node })); })))); }; exports.default = (props) => { const { columnWidth } = props; const { menuData } = container_1.default.useContainer(); return (react_1.default.createElement("div", { className: `${constants_1.prefix}-menu` }, menuData.map((item, index) => { var _a; return (react_1.default.createElement(Column, { index: index, item: item, columnWidth: columnWidth, depth: index, key: ((_a = item[0]) === null || _a === void 0 ? void 0 : _a.value) || index })); }))); };