import React, { useState, FormEvent } from "react"; import { useNavigate } from "react-router-dom"; import { useAuth } from "../context/AuthContext"; export default function LoginPage() { const { login } = useAuth(); const navigate = useNavigate(); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const handleSubmit = async (e: FormEvent) => { e.preventDefault(); setError(""); setLoading(true); try { await login(email, password); navigate("/", { replace: true }); } catch (err) { setError(err instanceof Error ? err.message : "Login failed"); } finally { setLoading(false); } }; return (

POS Admin

Sign in to your account

{error &&
{error}
}
); } const styles: Record = { page: { minHeight: "100vh", display: "flex", alignItems: "center", justifyContent: "center", background: "var(--color-bg)", }, card: { background: "var(--color-surface)", borderRadius: "var(--radius)", boxShadow: "var(--shadow)", border: "1px solid var(--color-border)", padding: "40px", width: "100%", maxWidth: "380px", }, title: { fontSize: "22px", fontWeight: 700, marginBottom: "4px", }, subtitle: { color: "var(--color-text-muted)", marginBottom: "24px", }, form: { display: "flex", flexDirection: "column", gap: "16px", }, label: { display: "flex", flexDirection: "column", gap: "4px", fontWeight: 500, }, input: { border: "1px solid var(--color-border)", borderRadius: "var(--radius)", padding: "8px 12px", outline: "none", fontSize: "14px", }, button: { background: "var(--color-primary)", color: "#fff", border: "none", borderRadius: "var(--radius)", padding: "10px", fontWeight: 600, fontSize: "14px", marginTop: "4px", }, error: { background: "#fef2f2", border: "1px solid #fecaca", color: "var(--color-danger)", borderRadius: "var(--radius)", padding: "10px 12px", fontSize: "13px", }, };