lemail2
Version:
Strapi Email designer plugin.
65 lines (56 loc) • 1.47 kB
JavaScript
/**
*
* TabsNav
*
*/
import React from 'react';
import { FormattedMessage } from 'react-intl';
import { darken } from 'strapi-helper-plugin';
import { map } from 'lodash';
import PropTypes from 'prop-types';
import Wrapper from './Wrapper';
function TabsNav({ links, style }) {
let linkColor = '#F5F5F5';
return (
<Wrapper style={style}>
{map(links, (link) => {
linkColor = darken(linkColor, 1.5);
return (
<button
key={link.name}
type="button"
className={`headerLink ${link.isActive && 'linkActive'}`}
style={{
backgroundColor: linkColor,
cursor: link.disabled ? 'not-allowed' : 'pointer',
}}
onClick={(e) => {
if (link.disabled) e.preventDefault();
else if (link.onClick) link.onClick();
}}
>
<div className="linkText text-center">
<FormattedMessage id={link.name} defaultMessage={link.name} values={link.values} />
{link.active && <div className="notifPoint" />}
</div>
</button>
);
})}
</Wrapper>
);
}
TabsNav.defaultProps = {
links: [],
style: {},
};
TabsNav.propTypes = {
links: PropTypes.arrayOf(
PropTypes.shape({
active: PropTypes.bool,
name: PropTypes.string,
onClick: PropTypes.func,
})
),
style: PropTypes.object,
};
export default TabsNav;