import { useState } from 'react'; import { useRouter } from 'next/router'; import Layout from '../components/Layout'; export default function Login() { const router = useRouter(); const [formData, setFormData] = useState({ email: '', password: '' }); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const handleInputChange = (field, value) => { setFormData(prev => ({ ...prev, [field]: value })); // Clear error when user starts typing if (error) setError(''); }; const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); setError(''); try { const response = await fetch('/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(formData) }); const data = await response.json(); if (response.ok) { // Store the JWT token in localStorage localStorage.setItem('auth_token', data.token); // Redirect to admin panel or dashboard if (data.user.role === 'admin') { router.push('/admin/card-editor'); } else { router.push('/dashboard'); } } else { setError(data.error || 'Login failed'); } } catch (error) { console.error('Login error:', error); setError('Network error. Please try again.'); } finally { setLoading(false); } }; const handleQuickAdminLogin = () => { setFormData({ email: 'admin@tcgvault.com', password: 'admin123' }); }; return (
🃏

Sign in to TCG Vault

Access your trading card collection

{error && (

{error}

)}
handleInputChange('email', e.target.value)} className="w-full px-4 py-3 rounded-lg border transition-all duration-200 focus:ring-2 focus:ring-purple-500 focus:border-transparent" style={{ backgroundColor: 'var(--bg-primary)', borderColor: 'var(--border)', color: 'var(--text-primary)' }} placeholder="Enter your email" />
handleInputChange('password', e.target.value)} className="w-full px-4 py-3 rounded-lg border transition-all duration-200 focus:ring-2 focus:ring-purple-500 focus:border-transparent" style={{ backgroundColor: 'var(--bg-primary)', borderColor: 'var(--border)', color: 'var(--text-primary)' }} placeholder="Enter your password" />
{/* Quick Admin Login for Development */}

Development Quick Login:

Don't have an account?{' '}

{/* Admin Info Card */}

🛡️ Admin Access

Email: admin@tcgvault.com

Password: admin123

); }