chowa
Version:
UI component library based on React
47 lines (46 loc) • 2.22 kB
JavaScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
;
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const classnames_1 = require("classnames");
const utils_1 = require("../utils");
const tooltip_1 = require("../tooltip");
const tool_1 = require("./tool");
const Wrapper = (props) => {
const { style, className, disabled, index, setActiveIndex, children } = props;
const otherProps = utils_1.omitProps(props, ['style', 'className', 'disabled', 'index', 'setActiveIndex']);
return (React.createElement("li", Object.assign({ style: style, className: className }, otherProps),
React.createElement("div", { className: utils_1.preClass('menu-item-inner'), onClick: disabled ? null : setActiveIndex.bind(this, index) }, children)));
};
const MenuItemRecord = (props) => {
const { collapse, setActiveIndex, className, style, tier, disabled, activeIndex, index, extras, content, inOverlay } = props;
const { icon, text, hasWrapper } = extras;
const componentClass = classnames_1.default({
[utils_1.preClass('menu-item')]: true,
[utils_1.preClass('menu-active')]: activeIndex === index,
[utils_1.preClass('menu-disabled')]: disabled,
[className]: utils_1.isExist(className)
});
const wrapperProps = {
style: Object.assign(Object.assign({}, style), ((tier > 1 && !inOverlay) ? { paddingLeft: tier * tool_1.tierSpace } : {})),
className: componentClass,
disabled,
index,
setActiveIndex
};
if (tier !== 1 || !collapse || !utils_1.isExist(icon)) {
return (React.createElement(Wrapper, Object.assign({}, wrapperProps), content));
}
return (React.createElement(tooltip_1.default, { title: React.createElement("span", null, text), placement: 'right' },
React.createElement(Wrapper, Object.assign({}, wrapperProps), hasWrapper
? React.cloneElement(content, { children: icon })
: icon)));
};
exports.default = MenuItemRecord;