Spaces:
Configuration error
Configuration error
File size: 886 Bytes
78013c4 | 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 34 35 36 37 38 39 | "use client";
import React from "react";
type ButtonVariant = "primary" | "secondary" | "danger" | "ghost";
type ButtonSize = "sm" | "md" | "lg";
interface GlassButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
variant?: ButtonVariant;
size?: ButtonSize;
loading?: boolean;
icon?: React.ReactNode;
}
export default function GlassButton({
variant = "primary",
size = "md",
loading = false,
icon,
children,
className = "",
disabled,
...props
}: GlassButtonProps): React.ReactElement {
const variantClass = `glass-btn-${variant}`;
const sizeClass = size !== "md" ? `glass-btn-${size}` : "";
return (
<button
className={`glass-btn ${variantClass} ${sizeClass} ${className}`}
disabled={disabled || loading}
{...props}
>
{loading ? <span className="spinner" /> : icon}
{children}
</button>
);
}
|