import React, { Children } from "react" import clsx from "clsx" import Spinner, { SpinnerProps } from "../../atoms/spinner" export type ButtonProps = { variant: "primary" | "secondary" | "ghost" | "danger" | "nuclear" size?: "small" | "medium" | "large" loading?: boolean spanClassName?: string spinnerConfig?: SpinnerProps } & React.ButtonHTMLAttributes const Button = React.forwardRef( ( { variant = "primary", size = "large", loading = false, spanClassName, spinnerConfig, children, ...attributes }, ref ) => { const handleClick = (e) => { if (!loading && attributes.onClick) { attributes.onClick(e) } } const variantClassname = clsx({ ["btn-primary"]: variant === "primary", ["btn-secondary"]: variant === "secondary", ["btn-ghost"]: variant === "ghost", ["btn-danger"]: variant === "danger", ["btn-nuclear"]: variant === "nuclear", }) const sizeClassname = clsx({ ["btn-large"]: size === "large", ["btn-medium"]: size === "medium", ["btn-small"]: size === "small", }) return ( ) } ) export default Button