UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

84 lines (83 loc) 5.55 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _meetReactComponentOne = require("@alifd/meet-react-component-one"); var _view = _interopRequireDefault(require("../view")); var _icon = _interopRequireDefault(require("../icon")); var _tab = require("./tab"); var _hooks = require("../utils/hooks"); var _utils = require("../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _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 TabItem = function (props, ref) { var _classNames, _classNames2, _classNames3, _classNames4; var _props$prefix = props.prefix, prefix = _props$prefix === void 0 ? 'mt-' : _props$prefix, className = props.className, size = props.size, 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, 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", "size", "itemKey", "title", "icon", "children", "onClick", "renderContent"]); var _useContext = (0, _react.useContext)(_tab.TabContext), activeKey = _useContext.activeKey, change = _useContext.change, fullWidth = _useContext.fullWidth, shape = _useContext.shape, activeLineType = _useContext.activeLineType; var active = "" + activeKey === "" + itemKey; var clsPrefix = prefix + "tab-item"; var curItemId = (0, _hooks.useGuid)('tab-item-'); var clses = { tab: (0, _classnames.default)(clsPrefix, clsPrefix + "--" + size, clsPrefix + "--" + shape, (_classNames = {}, _classNames[clsPrefix + "--active"] = active, _classNames[clsPrefix + "--active-" + shape] = active, _classNames[clsPrefix + "--fullwidth"] = fullWidth, _classNames), className), activeLine: (0, _classnames.default)(clsPrefix + "-active-line", clsPrefix + "-active-line--" + activeLineType, clsPrefix + "-active-line--" + activeLineType + "-" + size), tabIcon: (0, _classnames.default)(clsPrefix + "-icon", clsPrefix + "-icon--" + size, clsPrefix + "-icon--" + shape, (_classNames2 = {}, _classNames2[clsPrefix + "-icon--active"] = active, _classNames2[clsPrefix + "-icon--active-" + shape] = active, _classNames2)), tabText: (0, _classnames.default)(clsPrefix + "-text", clsPrefix + "-text--" + size, clsPrefix + "-text--" + shape, (_classNames3 = {}, _classNames3[clsPrefix + "-text--active"] = active, _classNames3[clsPrefix + "-text--active-" + size] = active && shape !== 'capsule', _classNames3[clsPrefix + "-text--active-" + shape] = active, _classNames3)) }; return /*#__PURE__*/(0, _react.createElement)(_view.default, _extends({}, others, { id: curItemId, ref: ref, className: clses.tab, onClick: function handleClick(e) { if (onClick) { onClick(Object.assign(Object.assign({}, e), { itemKey: itemKey })); } change(itemKey); } }), renderContent ? renderContent({ title: title, icon: icon, active: active }) : /*#__PURE__*/(0, _react.createElement)(_react.Fragment, null, icon ? /*#__PURE__*/(0, _react.createElement)(_icon.default, { className: clses.tabIcon, name: icon }) : null, function renderTitle() { if ((0, _react.isValidElement)(title)) { return /*#__PURE__*/(0, _react.createElement)(_view.default, null, title); } else if ((0, _utils.isString)(title)) { return /*#__PURE__*/(0, _react.createElement)(_meetReactComponentOne.Text, { numberOfLines: 1, className: clses.tabText }, title); } return null; }()), shape !== 'capsule' && /*#__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)) })); }; TabItem.displayName = 'Tab.Item'; var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(TabItem);