import React from 'react'; import cn from 'classnames'; import styles from './TabCount.css'; import PropTypes from 'prop-types'; function getNumber(no) { let result = Number.parseInt(no); if (no >= 1000) { result = `${Math.round(result / 100) / 10}k`; } return result; } function getRootClassName({className, active, sub}) { return cn( 'talk-tab-count', className, { [styles.root]: !sub, [styles.rootSub]: sub, [styles.rootActive]: active && !sub, [styles.rootSubActive]: active && sub, 'talk-tab-active': active, } ); } /** * The `TabCount` renders a count number next to a tab name. */ const TabCount = ({children, active, sub, className}) => ( {getNumber(children)} ); TabCount.propTypes = { // className to be added to the root element. className: PropTypes.string, // active indicates that the related tab is currently active. active: PropTypes.bool, // Sub indicates that this component belongs to a sub-tab-panel. sub: PropTypes.bool, }; export default TabCount;