From 7646122e0780d22e4879a161c335b469c504114b Mon Sep 17 00:00:00 2001 From: MHR81 Date: Thu, 25 Dec 2025 20:29:13 +0330 Subject: [PATCH] some changes --- src/components/layout/Header/header.jsx | 11 +- src/components/layout/layout.jsx | 2 +- src/pages/Login/Login.jsx | 451 ++++++++++++------------ 3 files changed, 232 insertions(+), 232 deletions(-) diff --git a/src/components/layout/Header/header.jsx b/src/components/layout/Header/header.jsx index b4834de..a3284bc 100644 --- a/src/components/layout/Header/header.jsx +++ b/src/components/layout/Header/header.jsx @@ -30,10 +30,11 @@ import Arrow from "../../../assets/icons/arrow.svg"; import Vector7 from "../../../assets/icons/Vector7.svg"; import Pic from "../../../assets/icons/pic.png"; import toggleTheme from "../../ToggleTheme"; +import { CgDarkMode } from "react-icons/cg"; -const Header = ({ title }) => { +const Header = () => { return ( -
+
{/*

{title}

*/}
@@ -42,9 +43,9 @@ const Header = ({ title }) => {
@@ -55,7 +56,7 @@ const Header = ({ title }) => { vector - +
); }; diff --git a/src/components/layout/layout.jsx b/src/components/layout/layout.jsx index caca754..19ea08e 100644 --- a/src/components/layout/layout.jsx +++ b/src/components/layout/layout.jsx @@ -35,7 +35,7 @@ export default function Layout() {
{/* Header */} {showHeader && ( -
+
)} diff --git a/src/pages/Login/Login.jsx b/src/pages/Login/Login.jsx index 671e0ce..672d815 100644 --- a/src/pages/Login/Login.jsx +++ b/src/pages/Login/Login.jsx @@ -14,244 +14,243 @@ import { setProfile } from "../../redux/slices/profileSlice"; // Services import authService from "../../services/auth"; - import toggleTheme from "../../components/ToggleTheme"; +import { CgDarkMode } from "react-icons/cg"; export default function Login() { - const navigate = useNavigate(); - const dispatch = useDispatch(); + const navigate = useNavigate(); + const dispatch = useDispatch(); - // State Management - const [userName, setUserName] = useState(""); - const [password, setPassword] = useState(""); - const [loading, setLoading] = useState(false); - const [error, setError] = useState(""); - const [isMobile, setIsMobile] = useState(window.innerWidth < 768); + // State Management + const [userName, setUserName] = useState(""); + const [password, setPassword] = useState(""); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(""); + const [isMobile, setIsMobile] = useState(window.innerWidth < 768); - useEffect(() => { - const handleResize = () => { - setIsMobile(window.innerWidth < 768); + useEffect(() => { + const handleResize = () => { + setIsMobile(window.innerWidth < 768); + }; + + window.addEventListener("resize", handleResize); + return () => window.removeEventListener("resize", handleResize); + }, []); + + // Handle Login + const handleLogin = async (e) => { + e.preventDefault(); + setError(""); + setLoading(true); + + try { + const res = await authService.login({ userName, password }); + if (res.data.success && res.data.data?.tokens?.accessToken) { + dispatch(setToken(res.data.data.tokens.accessToken)); + dispatch(setProfile(res.data.data.admin)); + console.log("✅ Login successful:", res.data.data.admin); + navigate("/dashboard"); + } else { + setError("اطلاعات دریافتی معتبر نیست"); + } + } catch (error) { + console.error("❌ Login error:", error); + const errorMessage = + error.response?.data?.message || + (error.request + ? "خطا در برقراری ارتباط با سرور" + : "خطای نامشخص رخ داده است"); + setError(errorMessage); + } finally { + setLoading(false); + } }; - window.addEventListener("resize", handleResize); - return () => window.removeEventListener("resize", handleResize); - }, []); - - // Handle Login - const handleLogin = async (e) => { - e.preventDefault(); - setError(""); - setLoading(true); - - try { - const res = await authService.login({ userName, password }); - if (res.data.success && res.data.data?.tokens?.accessToken) { - dispatch(setToken(res.data.data.tokens.accessToken)); - dispatch(setProfile(res.data.data.admin)); - console.log("✅ Login successful:", res.data.data.admin); - navigate("/dashboard"); - } else { - setError("اطلاعات دریافتی معتبر نیست"); - } - } catch (error) { - console.error("❌ Login error:", error); - const errorMessage = - error.response?.data?.message || - (error.request - ? "خطا در برقراری ارتباط با سرور" - : "خطای نامشخص رخ داده است"); - setError(errorMessage); - } finally { - setLoading(false); - } - }; - - return ( -
- {/* Header */} -
-
- {/* Left Section */} -
- Logo -
- - - - -
-
- - {/* Center Links (Hidden on Mobile) */} - - - {/* Right Section */} - -
-
- - {/* Main Content */} -
- {/* Left Side - Login Form */} -
- {/* Dark Overlay */} -
-
- {/* Breadcrumb */} -
- ورود - > - خانه -
- + return ( +
{/* Header */} -
-

- ورود ادمین -

-

- دسترسی ویژه برای مدیریت و گزارش‌ها -

-
+ {/*
+
+
+ Logo +
+ + + + +
+
+ + - {/* Login Form */} -
- {/* Error Message */} - {error && ( -
- {error} +
- )} - - {/* Username Field */} -
- -
- setUserName(e.target.value)} - placeholder="userName" - className="w-full pl-12 pr-4 py-3 border-2 bg-background border-gray-300 dark:text-white rounded-xl focus:outline-none focus:border-button1 transition-colors text-sm" - dir="ltr" - required - /> - -
-
- - {/* Password Field */} -
- -
- setPassword(e.target.value)} - placeholder="password" - className="w-full pl-12 pr-4 py-3 border-2 bg-background border-gray-300 dark:text-white rounded-xl focus:outline-none focus:border-button1 transition-colors text-sm" - dir="ltr" - required - /> - -
-
- - {/* Forgot Password */} -
- */} + + {/* Main Content */} +
+ {/* Left Side - Login Form */} + - {/* Submit Button */} - - -
-
+ {/* Dark Overlay */} + {/*
*/} +
+ {/* Breadcrumb */} + {/*
+ ورود + > + خانه +
*/} - {/* Right Side - Image (Hidden on Mobile) */} -
- Coffee workspace + {/* Header */} +
+

+ ورود ادمین +

+

+ دسترسی ویژه برای مدیریت و گزارش‌ها +

+
+ + {/* Login Form */} +
+ {/* Error Message */} + {error && ( +
+ {error} +
+ )} + + {/* Username Field */} +
+ +
+ setUserName(e.target.value)} + placeholder="userName" + className="w-full pl-12 pr-4 py-3 border-2 bg-background border-gray-300 dark:text-white rounded-xl focus:outline-none focus:border-button1 transition-colors text-sm" + dir="ltr" + required + /> + +
+
+ + {/* Password Field */} +
+ +
+ setPassword(e.target.value)} + placeholder="password" + className="w-full pl-12 pr-4 py-3 border-2 bg-background border-gray-300 dark:text-white rounded-xl focus:outline-none focus:border-button1 transition-colors text-sm" + dir="ltr" + required + /> + +
+
+ + {/* Forgot Password */} + + + {/* Submit Button */} + +
+
+
+ + {/* Right Side - Image (Hidden on Mobile) */} +
+ Coffee workspace +
+
-
-
- ); + ); }