'use client'; import React, { useState } from 'react'; import { X, User, Lock, Mail, Phone, MapPin, Sparkles, LogIn, UserPlus, Shield, LogOut } from 'lucide-react'; import { useAuth } from '@/context/AuthContext'; import { useBrand } from '@/context/BrandContext'; import Link from 'next/link'; export const AuthModal: React.FC = () => { const { user, login, register, logout, isAuthModalOpen, closeAuthModal } = useAuth(); const { currentBrand } = useBrand(); const [mode, setMode] = useState<'login' | 'register'>('login'); const [identifier, setIdentifier] = useState(''); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [phone, setPhone] = useState(''); const [city, setCity] = useState('Cali'); const [address, setAddress] = useState(''); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); if (!isAuthModalOpen) return null; const handleLoginSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setLoading(true); const res = await login(identifier); setLoading(false); if (!res.success) { setError(res.error || 'Error al iniciar sesión'); } }; const handleRegisterSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setLoading(true); const res = await register({ name, email, phone, city, address }); setLoading(false); if (!res.success) { setError(res.error || 'Error al registrarse'); } }; return (
{/* If user is already logged in: View Profile */} {user ? (
{user.name.charAt(0).toUpperCase()}

{user.name}

{user.email}

{user.role === 'admin' ? '👑 Administrador' : user.role === 'operator' ? '📦 Operador Logística' : '🛍️ Cliente Registrado'}

📱 Celular: {user.phone}

📍 Ciudad: {user.city || 'Cali'}

{user.address &&

🏠 Dirección: {user.address}

}
{user.role === 'admin' || user.role === 'operator' ? ( Ir al Panel de Control Admin ) : null}
) : ( /* Login or Register */
{currentBrand.shortName[0]}

{mode === 'login' ? 'Iniciar Sesión' : 'Crear Cuenta'}

{mode === 'login' ? 'Accede para gestionar pedidos o entrar como admin' : 'Regístrate para compras rápidas y seguimiento'}

{/* Mode Switch Tabs */}
{error && (
{error}
)} {mode === 'login' ? (
setIdentifier(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2.5 text-white outline-hidden focus:border-purple-400" />

Tip Admin: Puedes ingresar con carlos@dripzone.co o 3134848203.

) : (
setName(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" />
setEmail(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" />
setPhone(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" />
setCity(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" />
setAddress(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" />
)}
)}
); };