import { ButtonHTMLAttributes, AnchorHTMLAttributes, forwardRef } from 'react';
interface BaseButtonProps {
variant?: 'default' | 'secondary';
children: React.ReactNode;
className?: string;
}
type ButtonProps = BaseButtonProps & ButtonHTMLAttributes;
type LinkProps = BaseButtonProps & AnchorHTMLAttributes & { href: string };
const getVariantClasses = (variant: 'default' | 'secondary' = 'default'): string => {
const baseClass =
'transition duration-100 ease-in font-medium w-full h-full px-2 py-1 text-white';
if (variant === 'secondary') {
return `${baseClass} bg-black shadow-md hover:text-black hover:bg-white`;
}
return `${baseClass} bg-gray-500 dark:text-gray-800 hover:bg-gray-800 dark:hover:bg-gray-100`;
};
export const Button = forwardRef(
({ variant = 'default', children, className = '', ...props }, ref) => {
return (
);
}
);
Button.displayName = 'Button';
export const ButtonLink = forwardRef(
({ variant = 'default', children, className = '', ...props }, ref) => {
return (
{children}
);
}
);
ButtonLink.displayName = 'ButtonLink';