UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

98 lines (97 loc) 5.49 kB
"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);