// @flow
import 'scss/component/_comment-badge.scss';

import Icon from 'component/common/icon';
import React from 'react';
import Tooltip from 'component/common/tooltip';

type Props = {
  icon: string,
  label: string,
  size?: number,
  placement?: string,
  hideTooltip?: boolean,
  className?: string,
};

export default function CommentBadge(props: Props) {
  const { icon, label, size = 20, placement = 'top', hideTooltip, className } = props;

  return (
    <BadgeWrapper title={label} placement={placement} hideTooltip={hideTooltip} className={className}>
      <span className="comment__badge">
        <Icon icon={icon} size={size} />
      </span>
    </BadgeWrapper>
  );
}

type WrapperProps = {
  hideTooltip?: boolean,
  children: any,
};

const BadgeWrapper = (props: WrapperProps) => {
  const { hideTooltip, children, ...tooltipProps } = props;

  return !hideTooltip ? <Tooltip {...tooltipProps}>{children}</Tooltip> : children;
};