aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/views/common/button/IconButton.tsx
blob: ac746a7b864cb472c4823aefaee6a8166318ed2c (plain)
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
import { ComponentPropsWithoutRef } from "react";
import classNames from "classnames";

import { ThemeColor } from "../common";

import "./IconButton.css";

interface IconButtonProps extends ComponentPropsWithoutRef<"i"> {
  icon: string;
  color?: ThemeColor | "on-surface";
  large?: boolean;
}

export default function IconButton(props: IconButtonProps) {
  const { icon, color, className, large, ...otherProps } = props;

  return (
    <button
      className={classNames(
        "cru-icon-button",
        large && "large",
        "bi-" + icon,
        color === "on-surface"
          ? "on-surface"
          : color != null
          ? "cru-" + color
          : "cru-primary",
        className,
      )}
      {...otherProps}
    />
  );
}