import React from "react";
import { Icon } from "component/common.js";

const Link = props => {
  const {
    href,
    title,
    onClick,
    style,
    label,
    icon,
    badge,
    button,
    hidden,
    disabled,
    children,
  } = props;

  const className =
    (props.className || "") +
    (!props.className && !props.button ? "button-text" : "") + // Non-button links get the same look as text buttons
    (props.button
      ? " button-block button-" + props.button + " button-set-item"
      : "") +
    (props.disabled ? " disabled" : "");

  let content;
  if (children) {
    content = children;
  } else {
    content = (
      <span {...("button" in props ? { className: "button__content" } : {})}>
        {"icon" in props ? <Icon icon={icon} fixed={true} /> : null}
        {label ? <span className="link-label">{label}</span> : null}
        {"badge" in props ? <span className="badge">{badge}</span> : null}
      </span>
    );
  }

  return (
    <a
      className={className}
      href={href || "javascript:;"}
      title={title}
      onClick={onClick}
      {...("style" in props ? { style: style } : {})}
    >
      {content}
    </a>
  );
};

export default Link;