mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-01-11 22:40:31 +00:00
54 lines
1.8 KiB
JavaScript
54 lines
1.8 KiB
JavaScript
// Copyright (C) 2017-2023 Smart code 203358507
|
|
|
|
const React = require('react');
|
|
const PropTypes = require('prop-types');
|
|
const classnames = require('classnames');
|
|
const Icon = require('@stremio/stremio-icons/dom');
|
|
const Button = require('stremio/common/Button');
|
|
const Image = require('stremio/common/Image');
|
|
const styles = require('./styles');
|
|
|
|
const NavTabButton = ({ className, logo, icon, label, href, selected, onClick }) => {
|
|
const renderLogoFallback = React.useCallback(() => (
|
|
typeof icon === 'string' && icon.length > 0 ?
|
|
<Icon className={styles['icon']} icon={icon} />
|
|
:
|
|
null
|
|
), [icon]);
|
|
return (
|
|
<Button className={classnames(className, styles['nav-tab-button-container'], { 'selected': selected })} title={label} tabIndex={-1} href={href} onClick={onClick}>
|
|
{
|
|
typeof logo === 'string' && logo.length > 0 ?
|
|
<Image
|
|
className={styles['logo']}
|
|
src={logo}
|
|
alt={' '}
|
|
renderFallback={renderLogoFallback}
|
|
/>
|
|
:
|
|
typeof icon === 'string' && icon.length > 0 ?
|
|
<Icon className={styles['icon']} icon={icon} />
|
|
:
|
|
null
|
|
}
|
|
{
|
|
typeof label === 'string' && label.length > 0 ?
|
|
<div className={styles['label']}>{label}</div>
|
|
:
|
|
null
|
|
}
|
|
</Button>
|
|
);
|
|
};
|
|
|
|
NavTabButton.propTypes = {
|
|
className: PropTypes.string,
|
|
logo: PropTypes.string,
|
|
icon: PropTypes.string,
|
|
label: PropTypes.string,
|
|
href: PropTypes.string,
|
|
selected: PropTypes.bool,
|
|
onClick: PropTypes.func
|
|
};
|
|
|
|
module.exports = NavTabButton;
|