stremio-web/src/common/NavBar/VerticalNavBar/VerticalNavBar.js
2022-04-08 17:55:20 +03:00

48 lines
1.5 KiB
JavaScript

// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
const classnames = require('classnames');
const NavTabButton = require('./NavTabButton');
const styles = require('./styles');
const VerticalNavBar = React.memo(({ className, selected, tabs }) => {
return (
<nav className={classnames(className, styles['vertical-nav-bar-container'])}>
{
Array.isArray(tabs) ?
tabs.map((tab, index) => (
<NavTabButton
key={index}
className={styles['nav-tab-button']}
selected={tab.id === selected}
href={tab.href}
logo={tab.logo}
icon={tab.icon}
label={tab.label}
onClick={tab.onClick}
/>
))
:
null
}
</nav>
);
});
VerticalNavBar.displayName = 'VerticalNavBar';
VerticalNavBar.propTypes = {
className: PropTypes.string,
selected: PropTypes.string,
tabs: PropTypes.arrayOf(PropTypes.shape({
id: PropTypes.string,
label: PropTypes.string,
logo: PropTypes.string,
icon: PropTypes.string,
href: PropTypes.string,
onClick: PropTypes.func
}))
};
module.exports = VerticalNavBar;