UNPKG

zp-bee

Version:

zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。

89 lines (72 loc) 3.11 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.BeeTabPanel = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var __rest = void 0 && (void 0).__rest || function (s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; } if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var BeeTabPanel = function BeeTabPanel(_a) { var isActive = _a.isActive, isCache = _a.isCache, children = _a.children, others = __rest(_a, ["isActive", "isCache", "children"]); var printRef = (0, _react.useRef)(true); if (!isActive && printRef.current) return null; if (isCache && isActive) printRef.current = false; return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, others, { className: (0, _classnames.default)('tab-item', isActive && 'tab-show') }), children); }; exports.BeeTabPanel = BeeTabPanel; var BeeTabs = function BeeTabs(props) { var activeKey = props.activeKey, children = props.children, onTabsChange = props.onTabsChange; var _useState = (0, _react.useState)(activeKey), _useState2 = (0, _slicedToArray2.default)(_useState, 2), currentIndex = _useState2[0], setCurrent = _useState2[1]; return /*#__PURE__*/_react.default.createElement("div", { className: "tab-wrap" }, /*#__PURE__*/_react.default.createElement("ul", { className: "tab-title-wrap" }, _react.default.Children.map(children, function (element) { var _element$props = element.props, title = _element$props.title, id = _element$props.id; return /*#__PURE__*/_react.default.createElement("li", { key: id, onClick: function onClick() { setCurrent(id); onTabsChange === null || onTabsChange === void 0 ? void 0 : onTabsChange(id); }, className: (0, _classnames.default)('tab-title', id === currentIndex && 'tab-active') }, /*#__PURE__*/_react.default.createElement("div", null, title)); })), /*#__PURE__*/_react.default.createElement("div", { className: "tab-item-wrap" }, _react.default.Children.map(children, function (element) { var _a = element.props, id = _a.id, others = __rest(_a, ["id"]); return /*#__PURE__*/_react.default.createElement(BeeTabPanel, Object.assign({}, others, { isActive: id === currentIndex, id: id })); }))); }; BeeTabs.BeeTabPanel = BeeTabPanel; var _default = BeeTabs; exports.default = _default;