All files / javascripts/components Button.jsx

93.75% Statements 15/16
50% Branches 1/2
100% Functions 1/1
93.75% Lines 15/16
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 411x 1x 1x   1x       1x           10x 10x 10x 10x 10x     10x       10x                   10x     1x 1x  
import React, { PropTypes } from 'react';
import { Button as BootstrapButton, Tooltip, OverlayTrigger } from 'react-bootstrap';
import { slugify } from '../modules/utils';
 
const propTypes = {
  tooltip: PropTypes.node,
  placement: PropTypes.string,
};
const defaultProps = {
  bsSize: 'sm',
  placement: 'top',
};
 
export default function Button(props) {
  const buttonProps = Object.assign({}, props);
  const tooltip = props.tooltip;
  const placement = props.placement;
  delete buttonProps.tooltip;
  delete buttonProps.placement;
 
  let button = (
    <BootstrapButton {...buttonProps} >
      {props.children}
    </BootstrapButton>
  );
  Iif (props.tooltip) {
    button = (
      <OverlayTrigger
        placement={placement}
        overlay={<Tooltip id={`${slugify(tooltip)}-tooltip`}>{tooltip}</Tooltip>}
      >
        {button}
      </OverlayTrigger>
    );
  }
  return button;
}
 
Button.propTypes = propTypes;
Button.defaultProps = defaultProps;