drip-table
Version:
A tiny and powerful enterprise-class solution for building tables.
48 lines (47 loc) • 2.4 kB
JavaScript
/*
* This file is part of the drip-table project.
* @link : https://drip-table.jd.com/
* @author : Emil Zhai (root@derzh.com)
* @modifier : Emil Zhai (root@derzh.com)
* @copyright: Copyright (c) 2021 JD Network Technology Co., Ltd.
*/
import "./index.less";
import RcMenu from 'rc-menu';
import React from 'react';
import MenuContext from "./context";
import OverrideContext from "./override";
var PREFIX_CLS = 'jfe-drip-table-rc-menu';
var MenuItem = /*#__PURE__*/React.memo(function (props) {
var context = React.useContext(MenuContext);
return /*#__PURE__*/React.createElement(RcMenu.Item, props, /*#__PURE__*/React.createElement("span", {
className: "".concat(context.prefixCls, "-item-icon")
}, props.icon), /*#__PURE__*/React.createElement("span", {
className: "".concat(context.prefixCls, "-title-content")
}, props.children));
});
var Menu = Object.assign({
Item: MenuItem,
ItemGroup: RcMenu.ItemGroup
}, /*#__PURE__*/React.memo(function (props) {
var _props$expandIcon, _props$mode, _props$selectable, _props$onClick;
var override = React.useContext(OverrideContext);
var prefixCls = React.useMemo(function () {
return (override === null || override === void 0 ? void 0 : override.prefixCls) || PREFIX_CLS;
}, [override === null || override === void 0 ? void 0 : override.prefixCls]);
var menuContext = React.useMemo(function () {
return {
prefixCls: prefixCls
};
}, [prefixCls]);
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
value: menuContext
}, /*#__PURE__*/React.createElement(RcMenu, {
prefixCls: prefixCls,
items: props.items,
expandIcon: (_props$expandIcon = props.expandIcon) !== null && _props$expandIcon !== void 0 ? _props$expandIcon : override === null || override === void 0 ? void 0 : override.expandIcon,
mode: (_props$mode = props.mode) !== null && _props$mode !== void 0 ? _props$mode : override === null || override === void 0 ? void 0 : override.mode,
selectable: (_props$selectable = props.selectable) !== null && _props$selectable !== void 0 ? _props$selectable : override === null || override === void 0 ? void 0 : override.selectable,
onClick: (_props$onClick = props.onClick) !== null && _props$onClick !== void 0 ? _props$onClick : override === null || override === void 0 ? void 0 : override.onClick
}, props.children));
}));
export default Menu;