choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
143 lines (109 loc) • 4.8 kB
JavaScript
"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