import { useState } from "react"; import { useNavigate } from "react-router-dom"; import axiosInstance, { scheduleTokenRefresh } from "./api/axiosInstance"; import { useAuth } from "./context/authContext"; import type { UserResponse } from "./types"; const Login = () => { const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(null); const { setUser } = useAuth(); const navigate = useNavigate(); const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); try { const response = await axiosInstance.post<{ user: UserResponse; tokenExpiresIn: number; }>("/auth/login", { username, password }); scheduleTokenRefresh(response.data.tokenExpiresIn); setUser({ username: response.data.user.username, fullName: "demo", email: "demo@demo.com", role: response.data.user.role, }); navigate("/"); } catch (error) { setError("Login failed. Please check your credentials."); } }; return (

Login

{error &&

{error}

}
setUsername(e.target.value)} />
setPassword(e.target.value)} />
); }; export default Login;