UNPKG

rc-tabs

Version:
56 lines 2.55 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; var _excluded = ["key", "forceRender", "style", "className", "destroyInactiveTabPane"]; import classNames from 'classnames'; import CSSMotion from 'rc-motion'; import * as React from 'react'; import TabContext from "../TabContext"; import TabPane from "./TabPane"; var TabPanelList = function TabPanelList(props) { var id = props.id, activeKey = props.activeKey, animated = props.animated, tabPosition = props.tabPosition, destroyInactiveTabPane = props.destroyInactiveTabPane; var _React$useContext = React.useContext(TabContext), prefixCls = _React$useContext.prefixCls, tabs = _React$useContext.tabs; var tabPaneAnimated = animated.tabPane; var tabPanePrefixCls = "".concat(prefixCls, "-tabpane"); return /*#__PURE__*/React.createElement("div", { className: classNames("".concat(prefixCls, "-content-holder")) }, /*#__PURE__*/React.createElement("div", { className: classNames("".concat(prefixCls, "-content"), "".concat(prefixCls, "-content-").concat(tabPosition), _defineProperty({}, "".concat(prefixCls, "-content-animated"), tabPaneAnimated)) }, tabs.map(function (item) { var key = item.key, forceRender = item.forceRender, paneStyle = item.style, paneClassName = item.className, itemDestroyInactiveTabPane = item.destroyInactiveTabPane, restTabProps = _objectWithoutProperties(item, _excluded); var active = key === activeKey; return /*#__PURE__*/React.createElement(CSSMotion, _extends({ key: key, visible: active, forceRender: forceRender, removeOnLeave: !!(destroyInactiveTabPane || itemDestroyInactiveTabPane), leavedClassName: "".concat(tabPanePrefixCls, "-hidden") }, animated.tabPaneMotion), function (_ref, ref) { var motionStyle = _ref.style, motionClassName = _ref.className; return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, { prefixCls: tabPanePrefixCls, id: id, tabKey: key, animated: tabPaneAnimated, active: active, style: _objectSpread(_objectSpread({}, paneStyle), motionStyle), className: classNames(paneClassName, motionClassName), ref: ref })); }); }))); }; export default TabPanelList;