Skip to content
Snippets Groups Projects
Button.tsx 903 B
Newer Older
  • Learn to ignore specific revisions
  • Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
    import { ReactNode } from "react"
    
    interface ButtonProps {
      type?: "button" | "reset" | "submit"
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
      className?: string,
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
      title: string,
      icon?: ReactNode
    
      onClick?: () => void
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
    }
    
    export const Button = (props: ButtonProps) => {
    
      const classNameEnabled = "border border-color rounded p-4 hover:bg-neutral-200";
      const classNameDisabled = "border border-color rounded p-4 text-neutral-200";
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
      return (
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
        <div className={props.className}>
          <button
    
            className={props.disabled ? classNameDisabled : classNameEnabled}
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
            type={props.type}
            onClick={props.onClick}
    
            disabled={props.disabled}
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
          >
            <div className="flex">
              {props.icon ?
                <div className="w-5">{props.icon}</div>
                : null}
    
              <div className="ml-4">
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
                {props.title}
              </div>
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
            </div>
    
    
    Jacopo Gasparetto's avatar
    Jacopo Gasparetto committed
          </button>
        </div>