@alifd/meet-react
Version:
Fusion Mobile React UI System Component
98 lines (97 loc) • 5.49 kB
JavaScript
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _tslib = require("tslib");
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireWildcard(require("react"));
var _meetReactComponentOne = require("@alifd/meet-react-component-one");
var _view = _interopRequireDefault(require("../view"));
var _icon = _interopRequireDefault(require("../icon"));
var _badge = _interopRequireDefault(require("../badge"));
var _sideBar = require("./side-bar");
var _hooks = require("../utils/hooks");
var _utils = require("../utils");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var SideBarItem = function (props, ref) {
var _classNames, _classNames2, _classNames3, _classNames4;
var _props$prefix = props.prefix,
prefix = _props$prefix === void 0 ? 'mt-' : _props$prefix,
className = props.className,
itemKey = props.itemKey,
_props$title = props.title,
title = _props$title === void 0 ? '' : _props$title,
_props$icon = props.icon,
icon = _props$icon === void 0 ? '' : _props$icon,
_props$count = props.count,
count = _props$count === void 0 ? 0 : _props$count,
_props$dot = props.dot,
dot = _props$dot === void 0 ? false : _props$dot,
children = props.children,
_props$onClick = props.onClick,
onClick = _props$onClick === void 0 ? function () {} : _props$onClick,
_props$renderContent = props.renderContent,
renderContent = _props$renderContent === void 0 ? null : _props$renderContent,
others = (0, _tslib.__rest)(props, ["prefix", "className", "itemKey", "title", "icon", "count", "dot", "children", "onClick", "renderContent"]);
var _useContext = (0, _react.useContext)(_sideBar.SideBarContext),
activeKey = _useContext.activeKey,
align = _useContext.align,
change = _useContext.change;
var active = "" + activeKey === "" + itemKey;
var clsPrefix = prefix + "side-bar-item";
var curItemId = (0, _hooks.useGuid)('side-bar-item-');
var clses = {
bar: (0, _classnames.default)(clsPrefix, [clsPrefix + "-" + align], (_classNames = {}, _classNames[clsPrefix + "--active"] = active, _classNames), className),
activeLine: clsPrefix + "-active-line",
barText: (0, _classnames.default)(clsPrefix + "-text", (_classNames2 = {}, _classNames2[clsPrefix + "-text--active"] = active, _classNames2)),
barBadge: clsPrefix + "-badge",
barIcon: (0, _classnames.default)(clsPrefix + "-icon", (_classNames3 = {}, _classNames3[clsPrefix + "-icon--active"] = active, _classNames3))
};
var renderTitle = function () {
if ((0, _react.isValidElement)(title)) {
return /*#__PURE__*/(0, _react.createElement)(_view.default, {
className: clses.barText
}, title);
} else if ((0, _utils.isString)(title)) {
return /*#__PURE__*/(0, _react.createElement)(_meetReactComponentOne.Text, {
className: clses.barText
}, title);
}
return null;
};
return /*#__PURE__*/(0, _react.createElement)(_view.default, _extends({}, others, {
id: curItemId,
ref: ref,
className: clses.bar,
onClick: function handleClick(e) {
if (onClick) {
onClick(Object.assign(Object.assign({}, e), {
itemKey: itemKey
}));
}
change(itemKey);
}
}), renderContent ? renderContent({
title: title,
active: active,
icon: icon,
count: count,
dot: dot
}) : dot || count ? /*#__PURE__*/(0, _react.createElement)(_badge.default, {
className: clses.barBadge,
dot: dot,
count: count
}, icon ? /*#__PURE__*/(0, _react.createElement)(_icon.default, {
className: clses.barIcon,
name: icon
}) : null, renderTitle()) : /*#__PURE__*/(0, _react.createElement)(_react.Fragment, null, icon ? /*#__PURE__*/(0, _react.createElement)(_icon.default, {
className: clses.barIcon,
name: icon
}) : null, renderTitle()), /*#__PURE__*/(0, _react.createElement)(_view.default, {
className: (0, _classnames.default)(clses.activeLine, (_classNames4 = {}, _classNames4[clsPrefix + "-active-line--enter"] = active, _classNames4[clsPrefix + "-active-line--exit"] = !active, _classNames4))
}));
};
SideBarItem.displayName = 'SideBar.Item';
var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(SideBarItem);