From 3cc5093ab24067eb17d4370177057f95bdbe749a Mon Sep 17 00:00:00 2001 From: basantnema31 Date: Sun, 24 May 2026 15:22:00 +0530 Subject: [PATCH] feat: add remember me option to login page (Issue #276) --- client/src/components/Login/Login.jsx | 37 ++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/client/src/components/Login/Login.jsx b/client/src/components/Login/Login.jsx index e6321e1..49498e7 100644 --- a/client/src/components/Login/Login.jsx +++ b/client/src/components/Login/Login.jsx @@ -1,4 +1,4 @@ -import { useContext, useState } from "react"; +import { useContext, useState, useEffect } from "react"; import { useForm } from "react-hook-form"; import { useNavigate } from "react-router"; import { Link } from "react-router-dom"; @@ -15,11 +15,23 @@ const Login = () => { register, handleSubmit, formState: { errors }, + setValue, } = useForm(); const { setUser } = useContext(UserContext); const [passToggle, setPassToggle] = useState("password"); const [loading, setLoading] = useState(false); + const [rememberMe, setRememberMe] = useState(false); + + useEffect(() => { + const savedEmail = localStorage.getItem("rememberedEmail"); + const savedPassword = localStorage.getItem("rememberedPassword"); + if (savedEmail && savedPassword) { + setValue("email", savedEmail); + setValue("password", savedPassword); + setRememberMe(true); + } + }, [setValue]); const navigate = useNavigate(); @@ -39,6 +51,13 @@ const Login = () => { data ); if (res.data.message === "login success") { + if (rememberMe) { + localStorage.setItem("rememberedEmail", data.email); + localStorage.setItem("rememberedPassword", data.password); + } else { + localStorage.removeItem("rememberedEmail"); + localStorage.removeItem("rememberedPassword"); + } localStorage.setItem("token", res.data.token); setUser(res.data.user); toast.success("Logged in successfully!", { @@ -238,6 +257,22 @@ const Login = () => { +
+
+ setRememberMe(e.target.checked)} + /> + +
+
+