@findify/react-components
Version:
Findify react UI components
24 lines (23 loc) • 924 B
JSX
import styles from 'layouts/Tabs/styles.css';
import MapArray from 'components/common/MapArray';
import Button from 'components/Button';
import cx from 'classnames';
import { useCallback } from 'react';
const Tab = ({ theme, item, onClickItem }) => {
const onClick = useCallback((e) => {
e.preventDefault();
return onClickItem(item.key);
}, []);
return (<Button onClick={onClick} disabled={!item.count} className={cx(theme.item, item.active && theme.active)}>
{item.title}
<span className={theme.count} display-if={!!item.count}>
{item.count}
</span>
</Button>);
};
const Tabs = ({ onClick, widgets, theme = styles }) => (<div className={theme.root}>
<MapArray keyAccessor={(i) => i.key} array={widgets} factory={Tab} theme={theme} onClickItem={onClick}/>
</div>);
export default process.env.HOT
? require('react-hot-loader').hot(module)(Tabs)
: Tabs;