All files / Components Banner.js

100% Statements 7/7
100% Branches 4/4
100% Functions 1/1
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44          1x               2x   2x                 2x   2x     1x               1x            
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { NavLink } from 'react-router-dom';
 
const Banner = props => {
    const {
        tag,
        className,
        color,
        darkColor,
        children,
        ...attributes
    } = props;
 
    const classes = classNames(
        className,
        'w-full',
        'py-2',
        'px-8',
        `bg-${color}`,
        `dark:bg-${darkColor}`,
    );
 
    const Tag = attributes.to || attributes.hred ? NavLink : tag;
 
    return <Tag className={classes} {...attributes}>{children}</Tag>;
}
 
Banner.propTypes = {
    tag: PropTypes.string,
    className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),
    innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),
    color: PropTypes.string,
    darkColor: PropTypes.string,
};
 
Banner.defaultProps = {
    tag: 'div',
    color: 'gray-300',
    darkColor: 'gray-700',
}
 
export default Banner;