import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; import config from "../config"; import { useAuth } from "../AuthContext"; import PageWrapper from "../components/PageWrapper"; const styles = { form: { backgroundColor: "#2a2a2a", padding: "2rem", borderRadius: "8px", boxShadow: "0 0 10px rgba(0,0,0,0.5)", width: "100%", maxWidth: "350px", display: "flex", flexDirection: "column", gap: "1rem", }, title: { textAlign: "center", color: "#f2f2f2", marginBottom: "1rem", }, input: { padding: "0.75rem", borderRadius: "4px", border: "1px solid #444", backgroundColor: "#333", color: "#eee", outline: "none", }, buttonRow: { display: "flex", justifyContent: "space-between", gap: "0.5rem", }, button: { flex: 1, padding: "0.75rem", borderRadius: "4px", border: "none", backgroundColor: "#555", color: "#fff", cursor: "pointer", transition: "background 0.2s ease", }, }; const Login = () => { const navigate = useNavigate(); const { login } = useAuth(); const [form, setForm] = useState({ username: "", password: "", }); const handleChange = (e) => { setForm({ ...form, [e.target.name]: e.target.value }); }; const handleSubmit = async (e) => { e.preventDefault(); const payload = { username: form.username, password: form.password, }; try { const res = await fetch(`${config.apiBaseUrl}/api/Auth/login`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(payload), }); if (!res.ok) { const data = await res.json(); throw new Error(data.message || "Login failed"); } const data = await res.json(); login(data.accessToken); localStorage.setItem("token", data.accessToken); localStorage.setItem("role", data.role); localStorage.setItem("username", data.username); navigate("/dashboard"); } catch (err) { console.error("Login error:", err); } }; return (

Login

); }; export default Login;