All files / javascripts/explore/components QueryAndSaveBtns.jsx

100% Statements 14/14
50% Branches 3/6
66.67% Functions 2/3
100% Lines 14/14
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 671x 1x 1x 1x   1x               1x 1x       15x 3x     3x 3x   3x                                                                             1x 1x  
import React, { PropTypes } from 'react';
import { ButtonGroup, OverlayTrigger, Tooltip } from 'react-bootstrap';
import Button from '../../components/Button';
import classnames from 'classnames';
 
const propTypes = {
  canAdd: PropTypes.string.isRequired,
  onQuery: PropTypes.func.isRequired,
  onSave: PropTypes.func,
  disabled: PropTypes.bool,
  errorMessage: PropTypes.string,
};
 
const defaultProps = {
  onSave: () => {},
  disabled: false,
};
 
export default function QueryAndSaveBtns({ canAdd, onQuery, onSave, disabled, errorMessage }) {
  const saveClasses = classnames({
    'disabled disabledButton': canAdd !== 'True',
  });
  const qryButtonStyle = errorMessage ? 'danger' : 'primary';
  const qryButtonDisabled = errorMessage ? true : disabled;
 
  return (
    <div>
      <ButtonGroup className="query-and-save">
        <Button
          id="query_button"
          onClick={onQuery}
          disabled={qryButtonDisabled}
          bsStyle={qryButtonStyle}
        >
          <i className="fa fa-bolt" /> Query
        </Button>
        <Button
          className={saveClasses}
          data-target="#save_modal"
          data-toggle="modal"
          disabled={qryButtonDisabled}
          onClick={onSave}
        >
          <i className="fa fa-plus-circle"></i> Save as
        </Button>
      </ButtonGroup>
      {errorMessage &&
        <span>
          {' '}
          <OverlayTrigger
            placement="right"
            overlay={
              <Tooltip id={'query-error-tooltip'}>
                {errorMessage}
              </Tooltip>}
          >
            <i className="fa fa-exclamation-circle text-danger fa-lg" />
          </OverlayTrigger>
        </span>
      }
    </div>
  );
}
 
QueryAndSaveBtns.propTypes = propTypes;
QueryAndSaveBtns.defaultProps = defaultProps;