UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

143 lines (109 loc) 4.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _mobxReactLite = require("mobx-react-lite"); var _Button = _interopRequireDefault(require("../../../../pro/lib/button/Button")); var _enum = require("../../../../pro/lib/button/enum"); var _Dropdown = _interopRequireDefault(require("../../../../pro/lib/dropdown/Dropdown")); var _enum2 = require("../../../../pro/lib/dropdown/enum"); var _localeContext = require("../../../../pro/lib/locale-context"); var _Tooltip = _interopRequireDefault(require("../../../../pro/lib/tooltip/Tooltip")); var _menu = _interopRequireDefault(require("../../../menu")); var _enum3 = require("../../../_util/enum"); var _TabsContext = _interopRequireDefault(require("../../TabsContext")); var _icon = _interopRequireDefault(require("../../../icon")); var Item = _menu["default"].Item, SubMenu = _menu["default"].SubMenu; var ItemSuffix = function ItemSuffix(props) { var record = props.record, defaultKey = props.defaultKey, onDefaultKeyChange = props.onDefaultKeyChange; var _useContext = (0, _react.useContext)(_TabsContext["default"]), prefixCls = _useContext.prefixCls, tabCountHideable = _useContext.tabCountHideable, defaultChangeable = _useContext.defaultChangeable, tabTitleEditable = _useContext.tabTitleEditable; var itemKey = record.get('key'); var showCount = record.get('showCount'); var handleMenuClick = (0, _react.useCallback)(function (arg) { switch (arg.key) { case 'set_default': onDefaultKeyChange(itemKey); break; case 'rename': record.setState('editing', true); break; case 'show_count_yes': record.set('showCount', true); break; case 'show_count_no': record.set('showCount', false); break; default: } }, [record, onDefaultKeyChange, itemKey]); var renderCheckOption = function renderCheckOption(bool) { if (showCount === bool) { return /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: "check", style: { "float": 'right' } }); } }; var getTreeNodesMenus = function getTreeNodesMenus() { var menus = []; if (defaultChangeable && !record.get('disabled') && itemKey !== defaultKey) { menus.push( /*#__PURE__*/_react["default"].createElement(Item, { key: "set_default" }, /*#__PURE__*/_react["default"].createElement("span", null, (0, _localeContext.$l)('Tabs', 'set_default')), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], { title: (0, _localeContext.$l)('Tabs', 'set_default_tip') }, /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: "help", className: "".concat(prefixCls, "-tip") })))); } if (tabTitleEditable) { menus.push( /*#__PURE__*/_react["default"].createElement(Item, { key: "rename" }, (0, _localeContext.$l)('Tabs', 'rename'))); } if (tabCountHideable) { menus.push( /*#__PURE__*/_react["default"].createElement(SubMenu, { key: "show_count", title: (0, _localeContext.$l)('Tabs', 'show_count') }, /*#__PURE__*/_react["default"].createElement(Item, { key: "show_count_yes" }, /*#__PURE__*/_react["default"].createElement("span", null, (0, _localeContext.$l)('Tabs', 'yes')), renderCheckOption(true)), /*#__PURE__*/_react["default"].createElement(Item, { key: "show_count_no" }, /*#__PURE__*/_react["default"].createElement("span", null, (0, _localeContext.$l)('Tabs', 'no')), renderCheckOption(false)))); } if (menus.length) { return /*#__PURE__*/_react["default"].createElement(_menu["default"], { prefixCls: "".concat(prefixCls, "-dropdown-menu"), onClick: handleMenuClick, mode: "vertical" }, menus); } }; var menu = getTreeNodesMenus(); return menu ? /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], { overlay: menu, placement: _enum2.Placements.bottomRight }, /*#__PURE__*/_react["default"].createElement(_Button["default"], { funcType: _enum.FuncType.flat, size: _enum3.Size.small, icon: "more_horiz", className: "".concat(prefixCls, "-customization-group-item-hover-button") })) : null; }; ItemSuffix.displayName = 'ItemSuffix'; var _default = (0, _mobxReactLite.observer)(ItemSuffix); exports["default"] = _default; //# sourceMappingURL=ItemSuffix.js.map