import React, { useState } from "react"; import { useAuth } from "../contexts/AuthContext"; import { useNavigate, useLocation } from "react-router-dom"; function LoginForm() { const [formData, setFormData] = useState({ username: "", password: "", }); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const { login } = useAuth(); const navigate = useNavigate(); const location = useLocation(); // Redirect to intended location after login, or to admin dashboard const redirectTo = location.state?.from?.pathname || "/admin"; const handleChange = (e) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); }; const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); setError(""); if (!formData.username.trim() || !formData.password) { setError("Please enter both username and password"); setLoading(false); return; } try { const result = await login( formData.username.trim(), formData.password, ); if (result.success) { navigate(redirectTo, { replace: true }); } else { setError(result.error || "Login failed"); } } catch (err) { setError("An unexpected error occurred"); } finally { setLoading(false); } }; return (

Sign in to Admin Panel

Access the{" "} Goon Blog admin interface

{error && (

Error

{error}
)}
); } export default LoginForm;