UNPKG

zp-bee

Version:

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

73 lines (63 loc) 2.53 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; var __rest = this && this.__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; }; import React, { useState, useRef } from 'react'; import classNames from 'classnames'; export var BeeTabPanel = function BeeTabPanel(_a) { var isActive = _a.isActive, isCache = _a.isCache, children = _a.children, others = __rest(_a, ["isActive", "isCache", "children"]); var printRef = useRef(true); if (!isActive && printRef.current) return null; if (isCache && isActive) printRef.current = false; return /*#__PURE__*/React.createElement("div", Object.assign({}, others, { className: classNames('tab-item', isActive && 'tab-show') }), children); }; var BeeTabs = function BeeTabs(props) { var activeKey = props.activeKey, children = props.children, onTabsChange = props.onTabsChange; var _useState = useState(activeKey), _useState2 = _slicedToArray(_useState, 2), currentIndex = _useState2[0], setCurrent = _useState2[1]; return /*#__PURE__*/React.createElement("div", { className: "tab-wrap" }, /*#__PURE__*/React.createElement("ul", { className: "tab-title-wrap" }, React.Children.map(children, function (element) { var _element$props = element.props, title = _element$props.title, id = _element$props.id; return /*#__PURE__*/React.createElement("li", { key: id, onClick: function onClick() { setCurrent(id); onTabsChange === null || onTabsChange === void 0 ? void 0 : onTabsChange(id); }, className: classNames('tab-title', id === currentIndex && 'tab-active') }, /*#__PURE__*/React.createElement("div", null, title)); })), /*#__PURE__*/React.createElement("div", { className: "tab-item-wrap" }, React.Children.map(children, function (element) { var _a = element.props, id = _a.id, others = __rest(_a, ["id"]); return /*#__PURE__*/React.createElement(BeeTabPanel, Object.assign({}, others, { isActive: id === currentIndex, id: id })); }))); }; BeeTabs.BeeTabPanel = BeeTabPanel; export default BeeTabs;