Spaces:
Running
Running
| import { type ReactNode } from "react"; | |
| import GlassContainer from "./GlassContainer"; | |
| import { GLASS_EFFECTS } from "../constants"; | |
| interface GlassButtonProps { | |
| children: ReactNode; | |
| onClick: (e: React.MouseEvent) => void; | |
| className?: string; | |
| disabled?: boolean; | |
| bgColor?: string; | |
| "aria-label"?: string; | |
| } | |
| export default function GlassButton({ | |
| children, | |
| onClick, | |
| className = "", | |
| disabled = false, | |
| bgColor = GLASS_EFFECTS.COLORS.BUTTON_BG, | |
| ...ariaProps | |
| }: GlassButtonProps) { | |
| return ( | |
| <GlassContainer bgColor={bgColor} className="rounded-xl"> | |
| <button | |
| className={`px-4 py-2 border-none cursor-pointer bg-transparent transition-transform duration-200 outline-none ${ | |
| disabled ? "opacity-50 cursor-not-allowed" : "hover:scale-105 active:scale-95" | |
| } ${className}`} | |
| onClick={disabled ? undefined : onClick} | |
| disabled={disabled} | |
| {...ariaProps} | |
| > | |
| <div className="font-medium text-white">{children}</div> | |
| </button> | |
| </GlassContainer> | |
| ); | |
| } | |