CoolFace
Apppublic

Biomimicry-AI/Nexus

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
button.tsx52 linesDownload Raw Back to components
1import * as React from "react";2 3import styles from "./button.module.scss";4 5export type ButtonType = "primary" | "danger" | null;6 7export function IconButton(props: {8  onClick?: () => void;9  icon?: JSX.Element;10  type?: ButtonType;11  text?: string;12  bordered?: boolean;13  shadow?: boolean;14  className?: string;15  title?: string;16  disabled?: boolean;17  tabIndex?: number;18  autoFocus?: boolean;19}) {20  return (21    <button22      className={23        styles["icon-button"] +24        ` ${props.bordered && styles.border} ${props.shadow && styles.shadow} ${25          props.className ?? ""26        } clickable ${styles[props.type ?? ""]}`27      }28      onClick={props.onClick}29      title={props.title}30      disabled={props.disabled}31      role="button"32      tabIndex={props.tabIndex}33      autoFocus={props.autoFocus}34    >35      {props.icon && (36        <div37          className={38            styles["icon-button-icon"] +39            ` ${props.type === "primary" && "no-dark"}`40          }41        >42          {props.icon}43        </div>44      )}45 46      {props.text && (47        <div className={styles["icon-button-text"]}>{props.text}</div>48      )}49    </button>50  );51}52