diff --git a/client/src/pages/public/Login.jsx b/client/src/pages/public/Login.jsx index 146afb0..3fa281d 100644 --- a/client/src/pages/public/Login.jsx +++ b/client/src/pages/public/Login.jsx @@ -6,6 +6,8 @@ import { motion as Motion } from "framer-motion"; import { toast } from "react-toastify"; import { Loader2, Eye, EyeOff, ArrowLeft } from "lucide-react"; import SDEverse from "../../assets/sdeverse.png"; +import { MdDarkMode } from "react-icons/md"; +import { MdLightMode } from "react-icons/md"; const Login = () => { const dispatch = useDispatch(); @@ -14,6 +16,11 @@ const Login = () => { const [formData, setFormData] = useState({ email: "", password: "" }); const [showPassword, setShowPassword] = useState(false); + const [toggleMode, setToggleMode] = useState(()=>{ + const savedTheme = localStorage.getItem('login-theme') + + return savedTheme === 'dark' + }) const handleChange = (e) => setFormData({ ...formData, [e.target.name]: e.target.value }); @@ -22,13 +29,22 @@ const Login = () => { e.preventDefault(); dispatch(loginUser(formData)); }; - + const handleModeChange = () => { + setToggleMode(!toggleMode) + } useEffect(() => { if (user) { toast.success("Login successful!"); navigate("/"); } }, [user, navigate]); + useEffect(() => { + if (toggleMode) { + localStorage.setItem('login-theme' ,'dark') + } else { + localStorage.setItem('login-theme' ,'light') + } + }, [toggleMode]); useEffect(() => { if (error) { @@ -41,9 +57,12 @@ const Login = () => { initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ duration: 0.5 }} - className="min-h-screen flex items-center justify-center bg-gradient-to-br from-indigo-50 via-purple-50 to-pink-50 p-4" + className={`min-h-screen flex items-center justify-center bg-gradient-to-br from-indigo-50 via-purple-50 to-pink-50 p-4 ${toggleMode ? 'dark' : ''} dark:from-[#030712] dark:via-[#030712] dark:to-[#030712] ` } > -
+ +
@@ -53,10 +72,10 @@ const Login = () => { initial={{ y: 20, opacity: 0 }} animate={{ y: 0, opacity: 1 }} transition={{ duration: 0.5, delay: 0.1 }} - className="relative z-10 max-w-md w-full bg-white/80 backdrop-blur-lg rounded-2xl shadow-xl p-8 border border-white/30" + className="relative z-10 max-w-md w-full bg-white/80 dark:bg-gray-900 backdrop-blur-lg rounded-2xl shadow-xl p-8 border border-white/30" > - - + +
@@ -64,16 +83,16 @@ const Login = () => { whileHover={{ scale: 1.05 }} className="mx-auto mb-4" > - SDEverse Logo + SDEverse Logo -

+

Welcome back to SDEverse

-

Sign in to continue your journey

+

Sign in to continue your journey

{error && ( @@ -88,7 +107,7 @@ const Login = () => {
-