// frontend/src/pages/Login.tsx import { Loader2, Volleyball } from 'lucide-react'; import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import api from '../services/api'; interface TokenResponse { access_token: string; token_type?: string; } export default function Login() { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); const formData = new FormData(e.currentTarget); try { const res = await api.postForm('/auth/token', formData); localStorage.setItem('volleyToken', res.access_token); navigate('/'); } catch { setError('Invalid credentials.'); } finally { setLoading(false); } }; return (

Staff Login

Enter staff credentials

{error && (
{error}
)}
Back to Dashboard
); }