diff --git a/src/Layouts/DefaultLayout.tsx b/src/Layouts/DefaultLayout.tsx index 97af72e..e398ae7 100644 --- a/src/Layouts/DefaultLayout.tsx +++ b/src/Layouts/DefaultLayout.tsx @@ -66,7 +66,7 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { - + navigate('/profile')} > diff --git a/src/Pages/ForgetPassword.tsx b/src/Pages/ForgetPassword.tsx new file mode 100644 index 0000000..e0be6bc --- /dev/null +++ b/src/Pages/ForgetPassword.tsx @@ -0,0 +1,65 @@ +import { Field, Input, Stack, Text } from "@chakra-ui/react"; +import { Button } from "../components/ui/button"; +import { + DialogBody, + DialogContent, + DialogFooter, + DialogHeader, + DialogRoot, + DialogTitle, + DialogTrigger, +} from "../components/ui/dialog"; +function ForgetPassword() { + return ( + + + + Forgot password? + + + + + + + Forgot Password + + + + + + + + Please Enter Email Address + + + + + + + + + + + ); +} + +export default ForgetPassword; diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx index 512f1fe..23f08c8 100644 --- a/src/Pages/Login.tsx +++ b/src/Pages/Login.tsx @@ -1,45 +1,53 @@ -import { Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react" -import axios from "axios" -import { useContext, useState } from "react" -import { useForm } from "react-hook-form" -import { useDispatch } from "react-redux" -import GlobalStateContext from "../Contexts/GlobalStateContext" -import { setToken } from "../Redux/Service/authSlice" -import logo from '../assets/logo.svg' -import { Button } from "../components/ui/button" -import { Field } from "../components/ui/field" -import { Toaster } from "../components/ui/toaster" -import { PasswordInput } from "../components/ui/password-input" -import { useNavigate } from "react-router-dom" +import { + Box, + Center, + HStack, + Image, + Input, + Text, + VStack, +} from "@chakra-ui/react"; +import axios from "axios"; +import { useContext, useState } from "react"; +import { useForm } from "react-hook-form"; +import { useDispatch } from "react-redux"; +import GlobalStateContext from "../Contexts/GlobalStateContext"; +import { setToken } from "../Redux/Service/authSlice"; +import logo from "../assets/logo.svg"; +import { Button } from "../components/ui/button"; +import { Field } from "../components/ui/field"; +import { toaster, Toaster } from "../components/ui/toaster"; +import { PasswordInput } from "../components/ui/password-input"; +import { useNavigate } from "react-router-dom"; +import ForgetPassword from "./ForgetPassword"; interface FormValues { - mobileNumber: number - password: string + mobileNumber: number; + password: string; } const Login = () => { - const navigate = useNavigate() - const dispatch = useDispatch() - const [isLoading, setIsLoading] = useState(false) + const navigate = useNavigate(); + const dispatch = useDispatch(); + const [isLoading, setIsLoading] = useState(false); const context = useContext(GlobalStateContext); if (!context) { - throw new Error('App must be used within a GlobalStateProvider'); + throw new Error("App must be used within a GlobalStateProvider"); } const { setIsAuthenticate } = context; const { register, handleSubmit, formState: { errors }, - } = useForm() + } = useForm(); const onSubmit = handleSubmit(async (data) => { setIsLoading(true); - // Encode Basic Auth Credentials - const username = import.meta.env.VITE_USER_NAME||''; // Replace with actual username - const password = import.meta.env.VITE_PASSWORD||''; // Replace with actual password + const username = import.meta.env.VITE_USER_NAME || ""; // Replace with actual username + const password = import.meta.env.VITE_PASSWORD || ""; // Replace with actual password const basicAuth = `${username} : ${password}`; // Encode to Base64 - + try { const res = await axios.post( `${import.meta.env.VITE_API_URL}/login`, @@ -52,89 +60,132 @@ const Login = () => { Authorization: `Basic ${basicAuth}`, "Content-Type": "application/json", }, - } ); + console.log("============",res); + if (res.data) { - setIsAuthenticate(true) - console.log('===================================='); + setIsAuthenticate(true); + console.log("===================================="); console.log(res.data?.data); - console.log('===================================='); - navigate('/dashboard') + console.log("===================================="); + navigate("/dashboard"); dispatch(setToken(String(res.data?.data["access-token"]))); } else { - console.log("===================================="); console.log(res); console.log("===================================="); - } - } catch (error) { if (error) { - - console.error("Login failed", error); - setIsLoading(false) - + toaster.create({ + // title: error?.response?.data?.message, + title: "Something Went Wrong", + type: "info", + }) + // console.log("Login failed", error?.response?.data?.message); + setIsLoading(false); } } }); - - - return ( - - - - - + + - - - - - - - -
+ +
+ + + + LOGIN + - - - -
- - LOGIN - - - - - {/* Forget password */} + + + + {/* Forget password */} - - - {/* Forget password */} + + + {/* Forget password */} - - - Forgot password - - + + + -
+
- ) -} + ); +}; -export default Login \ No newline at end of file +export default Login; diff --git a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx index c704868..0d73b52 100644 --- a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx +++ b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx @@ -5,15 +5,27 @@ import AboutUsAddModel from "../../ManageCMS/AboutUs/AboutUsAddModel"; import { useGetAboutUsQuery } from "../../../Redux/Service/manage.aboutus.service"; +interface AboutUsContent { + content: string; +} + +interface ApiResponse { + data: AboutUsContent[]; +} + + const AboutUs = () => { - const { - data - } = useGetAboutUsQuery() + // const { + // data: data + // } = useGetAboutUsQuery() + const { data: response } = useGetAboutUsQuery<{ data: ApiResponse }>(); + console.log('===================================='); + console.log(response); + console.log('===================================='); + + const content = response?.data?.[0]?.content || "No content available"; - console.log('===================================='); - console.log(data); - console.log('===================================='); return ( @@ -26,21 +38,21 @@ const AboutUs = () => { px={3} > - AboutUs + AboutUs - + - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam soluta doloremque quibusdam facilis quas, unde hic eaque doloribus sed perferendis atque, eos dolores eius consectetur iure sint adipisci itaque tempora fugit quidem culpa provident possimus. Ullam, vitae in voluptatum dignissimos, quos blanditiis sequi aut repellat error eaque veritatis unde quam temporibus adipisci consectetur neque vero exercitationem dolor cum numquam maiores alias, totam minima quas. Possimus, ratione harum. Alias laboriosam nesciunt esse fugit deserunt pariatur corporis tempora quia veniam laborum aliquid enim voluptatibus asperiores minima tempore repudiandae vero quo porro, doloribus explicabo sit beatae et hic natus. Non earum nisi reiciendis? + {content} - + {/* Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam soluta doloremque quibusdam facilis quas, unde hic eaque doloribus sed perferendis atque, eos dolores eius consectetur iure sint adipisci itaque tempora fugit quidem culpa provident possimus. Ullam, vitae in voluptatum dignissimos, quos blanditiis sequi aut repellat error eaque veritatis unde quam temporibus adipisci consectetur neque vero exercitationem dolor cum numquam maiores alias, totam minima quas. Possimus, ratione harum. Alias laboriosam nesciunt esse fugit deserunt pariatur corporis tempora quia veniam laborum aliquid enim voluptatibus asperiores minima tempore repudiandae vero quo porro, doloribus explicabo sit beatae et hic natus. Non earum nisi reiciendis? - - + */} + ) } diff --git a/src/Redux/Service/forget.password.service.ts b/src/Redux/Service/forget.password.service.ts new file mode 100644 index 0000000..6e88741 --- /dev/null +++ b/src/Redux/Service/forget.password.service.ts @@ -0,0 +1,36 @@ +import { createApi } from "@reduxjs/toolkit/query/react"; +import { baseQueryWithReauth } from "./apiSlice"; + +export const forgetPassword = createApi({ + reducerPath: "aboutUs", + baseQuery: baseQueryWithReauth, // Use enhanced baseQuery with error handling + endpoints: (builder) => ({ + + + + // 🔹 GET: Fetch all posts + getAboutUs: builder.query({ + query: () => "/send-otp", + }), + + }), +}); + +export const { + useGetAboutUsQuery, +} = forgetPassword; + +// Define Post type +export type Post = { + id: number; + title: string; + body: string; +}; + + +export type AboutUs = { + id: number; + language_master_xid: number; + content: string; + is_active: boolean; +}; diff --git a/src/components/ui/password-input.tsx b/src/components/ui/password-input.tsx index 0c608a9..03b8415 100644 --- a/src/components/ui/password-input.tsx +++ b/src/components/ui/password-input.tsx @@ -86,7 +86,7 @@ const VisibilityTrigger = React.forwardRef( { )} - {toast.title && {toast.title}} + {toast.title && {toast.title}} {toast.description && ( {toast.description} )}