import React from 'react'; import { useAuth } from '@avanzacast/shared-hooks'; interface AuthButtonProps { className?: string; loginUrl?: string; dashboardUrl?: string; variant?: 'primary' | 'secondary' | 'ghost'; size?: 'sm' | 'md' | 'lg'; } /** * Componente compartido para botón de autenticación * Muestra "Iniciar sesión" o información del usuario según el estado de auth */ export function AuthButton({ className = '', loginUrl = '/auth/login', dashboardUrl = '/broadcasts', variant = 'primary', size = 'md' }: AuthButtonProps) { const { user, isAuthenticated, logout } = useAuth(); const baseClasses = 'inline-flex items-center justify-center font-medium transition-colors rounded-lg'; const variantClasses = { primary: 'bg-blue-600 text-white hover:bg-blue-700', secondary: 'bg-white text-blue-600 border-2 border-blue-600 hover:bg-blue-50', ghost: 'text-gray-700 hover:text-gray-900 hover:bg-gray-100', }; const sizeClasses = { sm: 'px-3 py-1.5 text-sm', md: 'px-4 py-2 text-base', lg: 'px-6 py-3 text-lg', }; const classes = `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${className}`; if (isAuthenticated && user) { return (
{/* Avatar y nombre del usuario */}
{user.name.charAt(0).toUpperCase()}
{user.name}
{/* Botón de logout */}
); } return ( Iniciar sesión ); }