import React from 'react'; import cn from 'classnames'; import PropTypes from 'prop-types'; import styles from './TabContent.css'; function getRootClassName(className) { return cn('talk-tab-content', className, styles.root); } /** * The `TabContent` component accepts `TabPane` components to render * the content of a `Tab`. */ const TabContent = ({children, className, activeTab, sub, ...rest}) => (
{ React.Children.toArray(children) .filter((child) => child.props.tabId === activeTab) .map((child, i) => React.cloneElement(child, { tabId: (child.props.tabId !== undefined) ? child.props.tabId : i, sub, })) }
); TabContent.propTypes = { // className to be added to the root element. className: PropTypes.string, // activeTab should be set to the currently active tabId. activeTab: PropTypes.string, // Sub indicates that this component belongs to a sub-tab-panel. sub: PropTypes.bool, }; export default TabContent;