1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-29 15:50:28 +01:00
metamask-extension/ui/components/app/tab-bar/tab-bar.js

61 lines
1.6 KiB
JavaScript
Raw Normal View History

import React from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
2016-11-04 20:00:56 +01:00
import { Icon, IconName, IconSize } from '../../component-library';
import Box from '../../ui/box';
import {
BorderRadius,
Color,
DISPLAY,
} from '../../../helpers/constants/design-system';
2020-02-15 21:34:12 +01:00
const TabBar = (props) => {
const { tabs = [], onSelect, isActive } = props;
2016-11-04 20:00:56 +01:00
return (
<div className="tab-bar">
{tabs.map(({ key, content, icon }) => (
<Box
as="button"
key={key}
paddingTop={5}
paddingBottom={5}
paddingLeft={4}
paddingRight={4}
className={classnames('tab-bar__tab pointer', {
'tab-bar__tab--active': isActive(key, content),
})}
onClick={() => onSelect(key)}
>
{isActive(key, content) && (
<Box
className="tab-bar__tab__selected-indicator"
borderRadius={BorderRadius.pill}
backgroundColor={Color.primaryDefault}
display={[DISPLAY.NONE, DISPLAY.BLOCK]}
/>
)}
<div className="tab-bar__tab__content">
<div className="tab-bar__tab__content__icon">{icon}</div>
<div className="tab-bar__tab__content__title">{content}</div>
</div>
<Icon
name={IconName.ArrowRight}
size={IconSize.Sm}
className="tab-bar__tab__caret"
/>
</Box>
))}
</div>
);
};
2017-11-02 03:30:33 +01:00
TabBar.propTypes = {
isActive: PropTypes.func.isRequired,
2017-11-02 03:30:33 +01:00
tabs: PropTypes.array,
onSelect: PropTypes.func,
};
2017-11-02 03:30:33 +01:00
export default TabBar;