index.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  3. import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
  4. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  5. var _excluded = ["key", "forceRender", "style", "className", "destroyInactiveTabPane"];
  6. import classNames from 'classnames';
  7. import CSSMotion from 'rc-motion';
  8. import * as React from 'react';
  9. import TabContext from "../TabContext";
  10. import TabPane from "./TabPane";
  11. var TabPanelList = function TabPanelList(props) {
  12. var id = props.id,
  13. activeKey = props.activeKey,
  14. animated = props.animated,
  15. tabPosition = props.tabPosition,
  16. destroyInactiveTabPane = props.destroyInactiveTabPane;
  17. var _React$useContext = React.useContext(TabContext),
  18. prefixCls = _React$useContext.prefixCls,
  19. tabs = _React$useContext.tabs;
  20. var tabPaneAnimated = animated.tabPane;
  21. var tabPanePrefixCls = "".concat(prefixCls, "-tabpane");
  22. return /*#__PURE__*/React.createElement("div", {
  23. className: classNames("".concat(prefixCls, "-content-holder"))
  24. }, /*#__PURE__*/React.createElement("div", {
  25. className: classNames("".concat(prefixCls, "-content"), "".concat(prefixCls, "-content-").concat(tabPosition), _defineProperty({}, "".concat(prefixCls, "-content-animated"), tabPaneAnimated))
  26. }, tabs.map(function (item) {
  27. var key = item.key,
  28. forceRender = item.forceRender,
  29. paneStyle = item.style,
  30. paneClassName = item.className,
  31. itemDestroyInactiveTabPane = item.destroyInactiveTabPane,
  32. restTabProps = _objectWithoutProperties(item, _excluded);
  33. var active = key === activeKey;
  34. return /*#__PURE__*/React.createElement(CSSMotion, _extends({
  35. key: key,
  36. visible: active,
  37. forceRender: forceRender,
  38. removeOnLeave: !!(destroyInactiveTabPane || itemDestroyInactiveTabPane),
  39. leavedClassName: "".concat(tabPanePrefixCls, "-hidden")
  40. }, animated.tabPaneMotion), function (_ref, ref) {
  41. var motionStyle = _ref.style,
  42. motionClassName = _ref.className;
  43. return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {
  44. prefixCls: tabPanePrefixCls,
  45. id: id,
  46. tabKey: key,
  47. animated: tabPaneAnimated,
  48. active: active,
  49. style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),
  50. className: classNames(paneClassName, motionClassName),
  51. ref: ref
  52. }));
  53. });
  54. })));
  55. };
  56. export default TabPanelList;