diff --git a/app/LoginPage.tsx b/app/LoginPage.tsx index dc0ed00..9d5eea8 100644 --- a/app/LoginPage.tsx +++ b/app/LoginPage.tsx @@ -6,16 +6,25 @@ import { useRouter } from "next/navigation"; import axios from "axios"; import Cookies from "js-cookie"; import ErrorToast from "@/components/Error"; +import { Eye, EyeClosed, Lock, Mail } from "lucide-react"; export default function LoginPage() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [remember, setRemember] = useState(false); - + const [showPassword, setShowPassword] = useState(false); + const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(""); + const router = useRouter(); const login = async () => { + if (!email || !password) { + setError("Please enter both email and password"); + return; + } + + setIsLoading(true); try { const response = await axios.post("/api/user/login", { email, password, remember }); @@ -29,69 +38,130 @@ export default function LoginPage() { } } } catch (error: any) { - setError(error.response.data.error); + setError(error.response?.data?.error || "Login failed"); + } finally { + setIsLoading(false); + } + }; + + const handleKeyPress = (e: React.KeyboardEvent) => { + if (e.key === 'Enter') { + login(); } }; - return ( -
Please login with your account
-Please login with your account
+