import React from "react";

export class ToolTip extends React.PureComponent {
  static propTypes = {
    body: React.PropTypes.string.isRequired,
    label: React.PropTypes.string.isRequired,
  };

  constructor(props) {
    super(props);

    this.state = {
      showTooltip: false,
    };
  }

  handleClick() {
    this.setState({
      showTooltip: !this.state.showTooltip,
    });
  }

  handleTooltipMouseOut() {
    this.setState({
      showTooltip: false,
    });
  }

  render() {
    return (
      <span className={"tooltip " + (this.props.className || "")}>
        <a
          className="tooltip__link"
          onClick={() => {
            this.handleClick();
          }}
        >
          {this.props.label}
        </a>
        <div
          className={
            "tooltip__body " + (this.state.showTooltip ? "" : " hidden")
          }
          onMouseOut={() => {
            this.handleTooltipMouseOut();
          }}
        >
          {this.props.body}
        </div>
      </span>
    );
  }
}

export default ToolTip;