From a80163d589c7aa1d54a380c577c7c204736c4bdf Mon Sep 17 00:00:00 2001 From: YasinShaikh123 <123150391+YasinShaikh123@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:47:33 +0530 Subject: [PATCH 1/8] 'Login chnges' --- src/Pages/Login.tsx | 179 ++++++++++++++++++++++++++------------------ 1 file changed, 107 insertions(+), 72 deletions(-) diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx index 9db1596..4253c8f 100644 --- a/src/Pages/Login.tsx +++ b/src/Pages/Login.tsx @@ -1,45 +1,45 @@ -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 { 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"; 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`, @@ -56,84 +56,119 @@ const Login = () => { ); if (res.data) { - setIsAuthenticate(true) - console.log('===================================='); + setIsAuthenticate(true); + console.log("===================================="); console.log(res.data?.data); - console.log('===================================='); - navigate('/') + console.log("===================================="); + navigate("/"); 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) - + 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; From b9b62bb034689a736edaecf6b0ba5a86d4e7f3c1 Mon Sep 17 00:00:00 2001 From: "Siddhesh.More" Date: Tue, 11 Feb 2025 16:10:48 +0530 Subject: [PATCH 2/8] udpate --- src/App.tsx | 50 ++++++++++++++++++++++++++--------- src/Layouts/DefaultLayout.tsx | 22 ++++++++++++--- src/index.css | 14 ++++++++++ 3 files changed, 70 insertions(+), 16 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index b9302aa..a4eae2f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,21 +1,47 @@ -import { useContext } from 'react'; -import { Route, BrowserRouter as Router, Routes } from "react-router-dom"; -import GlobalStateContext from './Contexts/GlobalStateContext'; -import DefaultLayout from './Layouts/DefaultLayout'; -import Login from './Pages/Login'; -import { RouteLink } from './Routes/Routes'; +import { useContext, useEffect } from "react"; +import { BrowserRouter as Router, Routes, Route, Navigate } from "react-router-dom"; +import GlobalStateContext from "./Contexts/GlobalStateContext"; +import DefaultLayout from "./Layouts/DefaultLayout"; +import Login from "./Pages/Login"; +import { RouteLink } from "./Routes/Routes"; -function App() { +function App() { const context = useContext(GlobalStateContext); - if (!context) throw new Error('App must be used within a GlobalStateProvider'); - const { isAuthenticate } = context; + if (!context) throw new Error("App must be used within a GlobalStateProvider"); + + const { isAuthenticate, setIsAuthenticate } = context; + + useEffect(() => { + const token = localStorage.getItem("token"); + setIsAuthenticate(!!token); // Converts token to boolean + }, [setIsAuthenticate]); + + console.log("Auth Status:", isAuthenticate); return ( - } /> - {RouteLink.map(({ path, Component }, index) => (} />))}) : ()} /> - } /> + {/* Redirect logged-in users away from login */} + : } /> + + {/* Protected Routes */} + + + {RouteLink.map(({ path, Component }, index) => ( + } /> + ))} + + + ) : ( + + )} + /> + + {/* Catch-all route to prevent unauthorized access */} + } /> ); diff --git a/src/Layouts/DefaultLayout.tsx b/src/Layouts/DefaultLayout.tsx index 2e63eae..1cf5b32 100644 --- a/src/Layouts/DefaultLayout.tsx +++ b/src/Layouts/DefaultLayout.tsx @@ -1,5 +1,5 @@ import { HStack, Image, Text, VStack } from "@chakra-ui/react"; -import React, { FC } from "react"; +import React, { FC, useContext } from "react"; import { RiNotificationLine } from "react-icons/ri"; import { NavLink, useLocation, useNavigate } from "react-router-dom"; import { nav } from "../Routes/Nav"; @@ -9,15 +9,29 @@ import { Avatar } from "../components/ui/avatar"; import { LuLogOut } from "react-icons/lu"; import { logout, setToken } from "../Redux/Service/authSlice"; import { useDispatch } from "react-redux"; +import GlobalStateContext from "../Contexts/GlobalStateContext"; const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { + const dispatch = useDispatch() const navigate = useNavigate() const location = useLocation() + const context = useContext(GlobalStateContext); + if (!context) { + throw new Error('App must be used within a GlobalStateProvider'); + } + const { setIsAuthenticate } = context; + // Logout function + const handleLogout = () => { + dispatch(logout()) + localStorage.removeItem("token"); // Clear token + setIsAuthenticate(false); // Update state + }; + return ( @@ -27,8 +41,8 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { {nav?.map(({ title, path, Icon, type, children }, index) => type === 'single' ? - {title} : - + {title} : + navigate(path)} gap={0} style={{ cursor: 'pointer', borderRadius: '8px', padding: '5px', width: '100%', display: 'flex', alignItems: 'center', border: '1px solid #ffffff', backgroundColor:'#fff',color:'#000', fontSize: '14px', }}> {title} {children?.map(({ title, path, Icon }, index) => navigate(path)} style={{ marginTop: 6, cursor: 'pointer', borderRadius: '8px', padding: '6px', width: '100%', display: 'flex', alignItems: 'center', gap: 6, border: '1px solid #ffffff', backgroundColor:'#fff',color:'#919198' }} > {title})} @@ -37,7 +51,7 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { - {dispatch(logout()), navigate('/login')}} className="link" style={{ cursor: 'pointer', borderRadius: '8px', padding: '6px', width: '100%', display: 'flex', alignItems: 'center', gap: 6, border: '1px solid #ffffff', backgroundColor:'#fff', color:'#000', boxShadow:'rgba(99, 99, 99, 0.2) 0px 2px 8px 0px'}} > Logout + Logout diff --git a/src/index.css b/src/index.css index 521b87f..862601a 100644 --- a/src/index.css +++ b/src/index.css @@ -14,12 +14,26 @@ body { margin: 0; padding: 0; font-family: "Roboto", serif; + background-color: #fff; } .Oxygen { font-family: "Oxygen", serif } +/* Change text selection color */ +::selection { + background-color: #02A0A0; /* Yellow */ + color: #fff; /* Black */ +} + +/* For Firefox */ +::-moz-selection { + background-color: #02A0A0; + color: #fff; +} + + .active { background-color: #02A0A0 !important; From e36c343cbfa34a055ec84eb699809e671b7d4eb4 Mon Sep 17 00:00:00 2001 From: YasinShaikh123 <123150391+YasinShaikh123@users.noreply.github.com> Date: Tue, 11 Feb 2025 17:19:32 +0530 Subject: [PATCH 3/8] [ forget modal ] --- src/Layouts/DefaultLayout.tsx | 2 +- src/Pages/ForgetPassword.tsx | 65 ++++++++++++++++++++++++++++ src/Pages/Login.tsx | 17 +++++--- src/components/MainFrame.tsx | 2 +- src/components/ui/password-input.tsx | 2 +- 5 files changed, 78 insertions(+), 10 deletions(-) create mode 100644 src/Pages/ForgetPassword.tsx diff --git a/src/Layouts/DefaultLayout.tsx b/src/Layouts/DefaultLayout.tsx index 2e63eae..3d2e95e 100644 --- a/src/Layouts/DefaultLayout.tsx +++ b/src/Layouts/DefaultLayout.tsx @@ -43,7 +43,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 541ec13..0287d06 100644 --- a/src/Pages/Login.tsx +++ b/src/Pages/Login.tsx @@ -1,4 +1,4 @@ -import { Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react"; +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"; @@ -11,6 +11,7 @@ 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 ForgetPassword from "./ForgetPassword"; interface FormValues { mobileNumber: number; @@ -103,14 +104,14 @@ const Login = () => {
-
- + { LOGIN - + { w={"100%"} invalid={!!errors.password} errorText={errors.password?.message} + mb={2} > { Login - Forgot password - + + -
+
diff --git a/src/components/MainFrame.tsx b/src/components/MainFrame.tsx index 2646c63..285d3b9 100644 --- a/src/components/MainFrame.tsx +++ b/src/components/MainFrame.tsx @@ -13,7 +13,7 @@ interface MainFrameProps { const MainFrame: FC = ({ children }) => { return ( - + ( Date: Tue, 11 Feb 2025 19:48:41 +0530 Subject: [PATCH 4/8] [ forget modal ] --- src/Pages/Login.tsx | 35 ++++++++++++------- src/Redux/Service/forget.password.service.ts | 36 ++++++++++++++++++++ src/components/ui/toaster.tsx | 2 +- 3 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 src/Redux/Service/forget.password.service.ts diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx index 487ded4..23f08c8 100644 --- a/src/Pages/Login.tsx +++ b/src/Pages/Login.tsx @@ -1,4 +1,12 @@ -import { Box, Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react"; +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"; @@ -8,7 +16,7 @@ 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 { toaster, Toaster } from "../components/ui/toaster"; import { PasswordInput } from "../components/ui/password-input"; import { useNavigate } from "react-router-dom"; import ForgetPassword from "./ForgetPassword"; @@ -35,7 +43,6 @@ const Login = () => { 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 @@ -53,16 +60,17 @@ const Login = () => { Authorization: `Basic ${basicAuth}`, "Content-Type": "application/json", }, - } ); + console.log("============",res); + if (res.data) { 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("===================================="); @@ -71,16 +79,17 @@ const Login = () => { } } 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 ( { required: "Mobile Number address is required", })} placeholder="Mobile Number Address" - /> + /> {/* Forget password */} ({ + + + + // 🔹 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/toaster.tsx b/src/components/ui/toaster.tsx index 7503ff7..a4251eb 100644 --- a/src/components/ui/toaster.tsx +++ b/src/components/ui/toaster.tsx @@ -27,7 +27,7 @@ export const Toaster = () => { )} - {toast.title && {toast.title}} + {toast.title && {toast.title}} {toast.description && ( {toast.description} )} From 2149144d84c2e56c1887e647b5ad79ef09dc0b58 Mon Sep 17 00:00:00 2001 From: "Siddhesh.More" Date: Tue, 11 Feb 2025 19:52:50 +0530 Subject: [PATCH 5/8] [ update edit delete view icon hover ] --- dev-dist/sw.js | 2 +- src/Layouts/DefaultLayout.tsx | 27 ++++++++++++------- src/Pages/ManageCMS/FAQ/EditDetails.tsx | 16 ++++++++--- src/Pages/ManageGroups/EditDetailGroup.tsx | 17 ++++++++---- src/Pages/ManageGroups/ViewManageGroup.tsx | 16 ++++++++--- src/Pages/ManageJobs/ManageJobs.tsx | 14 ++++------ src/Pages/ManageJobs/ManageJobsAdd.tsx | 23 ++++++++++------ src/Pages/ManageJobs/ViewManageJob.tsx | 18 ++++++++----- src/Pages/ManagePost/ManagePost.tsx | 6 ++--- src/Pages/ManagePost/ViewDailog.tsx | 21 ++++++++++----- .../DeactivatedAccounts.tsx | 2 +- .../RegisterUsers/EditRegisterUsers.tsx | 14 ++++++++-- .../RegisterUsers/RegisterUsers.tsx | 2 +- .../RegisterUsers/ViewRegisterUsers.tsx | 16 +++++++---- .../AgencyMaster/EditAgencyMaster.tsx | 16 ++++++++--- .../AgencyMaster/ViewAgencyMaster.tsx | 14 +++++++--- src/Pages/SubAdmin/AddModel.tsx | 2 +- src/Pages/SubAdmin/SubAdmin.tsx | 4 +-- src/Pages/SubAdmin/ViewSubAdmin.tsx | 17 +++++++++--- src/Redux/Service/apiSlice.tsx | 10 ++++++- src/components/EditSubAdmin.tsx | 21 ++++++++++----- src/components/MainFrame.tsx | 2 +- 22 files changed, 194 insertions(+), 86 deletions(-) diff --git a/dev-dist/sw.js b/dev-dist/sw.js index 24a967b..115230b 100644 --- a/dev-dist/sw.js +++ b/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.f3u8hds6p7" + "revision": "0.3bv9k3911i8" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/src/Layouts/DefaultLayout.tsx b/src/Layouts/DefaultLayout.tsx index 1cf5b32..97af72e 100644 --- a/src/Layouts/DefaultLayout.tsx +++ b/src/Layouts/DefaultLayout.tsx @@ -7,9 +7,10 @@ import logo from '../assets/logo.svg'; import { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot } from "../components/ui/accordion"; import { Avatar } from "../components/ui/avatar"; import { LuLogOut } from "react-icons/lu"; -import { logout, setToken } from "../Redux/Service/authSlice"; +import { logout } from "../Redux/Service/authSlice"; import { useDispatch } from "react-redux"; import GlobalStateContext from "../Contexts/GlobalStateContext"; +import { useLogOutMutation } from "../Redux/Service/apiSlice"; const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { @@ -23,18 +24,29 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { throw new Error('App must be used within a GlobalStateProvider'); } const { setIsAuthenticate } = context; + const [ logOutAdmin ] = useLogOutMutation() // Logout function - const handleLogout = () => { - dispatch(logout()) - localStorage.removeItem("token"); // Clear token - setIsAuthenticate(false); // Update state + const handleLogout = async () => { + try { + // ✅ Call mutation and wait for the response + const res = await logOutAdmin().unwrap(); + console.log("Logout Success:", res); + + // ✅ Clear local storage & update authentication state + dispatch(logout()); + localStorage.removeItem("token"); + setIsAuthenticate(false); + // ✅ Redirect to login page + navigate("/login"); + } catch (error) { + console.error("Logout Failed:", error); + } }; return ( - @@ -49,13 +61,10 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { )} - Logout - - diff --git a/src/Pages/ManageCMS/FAQ/EditDetails.tsx b/src/Pages/ManageCMS/FAQ/EditDetails.tsx index 2ea1b8d..ee9a64e 100644 --- a/src/Pages/ManageCMS/FAQ/EditDetails.tsx +++ b/src/Pages/ManageCMS/FAQ/EditDetails.tsx @@ -1,15 +1,23 @@ +import { TbEdit } from "react-icons/tb"; import { Button } from "../../../components/ui/button" import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog" -import { Field, Grid, Input, Stack, Text, Textarea } from "@chakra-ui/react" +import { Field, Grid, Icon, Input, Stack, Text, Textarea } from "@chakra-ui/react" import { FaRegEdit } from "react-icons/fa"; function EditDetails() { return ( - - - + + + {/* */} diff --git a/src/Pages/ManageGroups/EditDetailGroup.tsx b/src/Pages/ManageGroups/EditDetailGroup.tsx index 31ad9ba..b7da10c 100644 --- a/src/Pages/ManageGroups/EditDetailGroup.tsx +++ b/src/Pages/ManageGroups/EditDetailGroup.tsx @@ -1,19 +1,26 @@ import { Button } from "../../components/ui/button" import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog" -import { Avatar, Box, Field, Heading, Input, Stack, Text } from "@chakra-ui/react" +import { Avatar, Box, Field, Heading, Icon, Input, Stack, Text } from "@chakra-ui/react" import { Switch } from "../../components/ui/switch"; import { FaRegEdit } from "react-icons/fa"; import { AvatarGroup } from "../../components/ui/avatar"; +import { TbEdit } from "react-icons/tb"; function EditDetailGroups() { return ( - - - {/* */} - + + + - - - {/* */} + + + diff --git a/src/Pages/ManageJobs/ManageJobs.tsx b/src/Pages/ManageJobs/ManageJobs.tsx index 0e2beaa..06ec2bf 100644 --- a/src/Pages/ManageJobs/ManageJobs.tsx +++ b/src/Pages/ManageJobs/ManageJobs.tsx @@ -1,15 +1,11 @@ -import { Box, createListCollection, HStack, Image, Input, Text } from "@chakra-ui/react"; -import MainFrame from "../../components/MainFrame" -import ViewSubAdmin from "../SubAdmin/ViewSubAdmin"; -import EditSubAdmin from "../../components/EditSubAdmin"; -import AlertDailog from "../../components/AlertDailog"; -import { InputGroup } from "../../components/ui/input-group"; +import { Box, HStack, Image, Input, Text } from "@chakra-ui/react"; import { LuSearch } from "react-icons/lu"; -import AddModel from "../SubAdmin/AddModel"; -import DataTable from "../../components/DataTable"; import { RiDeleteBin5Line } from "react-icons/ri"; +import AlertDailog from "../../components/AlertDailog"; +import DataTable from "../../components/DataTable"; +import MainFrame from "../../components/MainFrame"; +import { InputGroup } from "../../components/ui/input-group"; import ManageJobsAdd from "./ManageJobsAdd"; -import { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectTrigger, SelectValueText } from "../../components/ui/select"; import ViewManageJob from "./ViewManageJob"; diff --git a/src/Pages/ManageJobs/ManageJobsAdd.tsx b/src/Pages/ManageJobs/ManageJobsAdd.tsx index 4d90998..60f300e 100644 --- a/src/Pages/ManageJobs/ManageJobsAdd.tsx +++ b/src/Pages/ManageJobs/ManageJobsAdd.tsx @@ -1,9 +1,9 @@ -import { Button } from "../../components/ui/button" -import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog" -import { createListCollection, Field, Input, SelectValueText, Stack } from "@chakra-ui/react" +import { Field, Icon, Input, SelectValueText, Stack, createListCollection } from "@chakra-ui/react"; +import { Button } from "../../components/ui/button"; +import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"; -import { FaRegEdit } from "react-icons/fa" -import { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectTrigger } from "../../components/ui/select" +import { TbEdit } from "react-icons/tb"; +import { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectTrigger } from "../../components/ui/select"; const frameworks = createListCollection({ items: [ @@ -19,9 +19,16 @@ function ManageJobsAdd() { - - - + + + - - - + + + - + ), @@ -36,8 +36,8 @@ const managepost: any[] = [ ), "Publish Data": "12/01/2025", "Activate/Deactivate": ( - - + + ), "Action": ( diff --git a/src/Pages/ManagePost/ViewDailog.tsx b/src/Pages/ManagePost/ViewDailog.tsx index dcd0c94..390da84 100644 --- a/src/Pages/ManagePost/ViewDailog.tsx +++ b/src/Pages/ManagePost/ViewDailog.tsx @@ -1,16 +1,23 @@ -import { MdOutlineRemoveRedEye } from "react-icons/md" -import { Button } from "../../components/ui/button" -import { DialogBody, DialogCloseTrigger, DialogContent, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog" -import { Field, Image, Input, Stack } from "@chakra-ui/react" +import { Field, Icon, Image, Input, Stack } from "@chakra-ui/react" +import { TbEdit } from "react-icons/tb" import img from "../../assets/waterfall.jpg" +import { DialogBody, DialogCloseTrigger, DialogContent, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog" + function ViewDailog() { return ( - - - + + + - + ), })), diff --git a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx index 30b934f..739830f 100644 --- a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx +++ b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx @@ -1,5 +1,5 @@ import { MdOutlineRemoveRedEye } from "react-icons/md"; -import { Field, Input, Stack } from "@chakra-ui/react"; +import { Field, Icon, Input, Stack } from "@chakra-ui/react"; import { DialogActionTrigger, DialogBody, @@ -13,12 +13,22 @@ import { } from "../../../components/ui/dialog"; import { BiEdit } from "react-icons/bi"; import { Button } from "../../../components/ui/button"; +import { TbEdit } from "react-icons/tb"; function EditRegisterUsers() { return ( - + + + - + ), "Action": ( diff --git a/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx index 7826ee4..5f26943 100644 --- a/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx +++ b/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx @@ -1,5 +1,5 @@ import { MdOutlineRemoveRedEye } from "react-icons/md"; -import { Field, Input, Stack } from "@chakra-ui/react"; +import { Field, Icon, Input, Stack } from "@chakra-ui/react"; import { DialogBody, DialogCloseTrigger, @@ -14,10 +14,16 @@ function ViewRegisterUsers() { return ( - + + + - - - + + + - - + + + */} - + diff --git a/src/Pages/SubAdmin/SubAdmin.tsx b/src/Pages/SubAdmin/SubAdmin.tsx index 974216f..51a01b2 100644 --- a/src/Pages/SubAdmin/SubAdmin.tsx +++ b/src/Pages/SubAdmin/SubAdmin.tsx @@ -76,10 +76,10 @@ const SubAdmin = () => { p={3} w={300} bg={"#fff"} - colorPalette={"blue"} + colorPalette={"cyan"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} + size={"xs"} fontSize={"2sm"} placeholder="Search..." bgColor={'#EEEEEE'} diff --git a/src/Pages/SubAdmin/ViewSubAdmin.tsx b/src/Pages/SubAdmin/ViewSubAdmin.tsx index c1d3a56..b566162 100644 --- a/src/Pages/SubAdmin/ViewSubAdmin.tsx +++ b/src/Pages/SubAdmin/ViewSubAdmin.tsx @@ -1,17 +1,28 @@ import { Button } from "../../components/ui/button" import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog" -import { Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react" +import { Field, Grid, Heading, Icon, Input, Stack, Text } from "@chakra-ui/react" import { Checkbox } from "../../components/ui/checkbox" import { MdOutlineRemoveRedEye } from "react-icons/md"; +import { FaRegEdit } from "react-icons/fa"; function ViewSubAdmin() { return ( + + + - + {/* */} - {/* */} + {/* */} diff --git a/src/Redux/Service/apiSlice.tsx b/src/Redux/Service/apiSlice.tsx index 13eb4e6..b93eaf0 100644 --- a/src/Redux/Service/apiSlice.tsx +++ b/src/Redux/Service/apiSlice.tsx @@ -51,6 +51,14 @@ export const dashboard = createApi({ getPosts: builder.query({ query: () => "/posts" }), + + // 🔹 POST: Create a new post + logOut: builder.mutation({ + query: () => ({ + url: "/logout", + method: "POST", + }), + }), @@ -58,7 +66,7 @@ export const dashboard = createApi({ }), }); -export const { useGetPostsQuery } = dashboard; +export const { useGetPostsQuery, useLogOutMutation } = dashboard; export type Post = { id: number; diff --git a/src/components/EditSubAdmin.tsx b/src/components/EditSubAdmin.tsx index 9b826a4..4928b75 100644 --- a/src/components/EditSubAdmin.tsx +++ b/src/components/EditSubAdmin.tsx @@ -1,4 +1,7 @@ +import { Field, Grid, Heading, Icon, Input, Stack, Text } from "@chakra-ui/react"; +import { TbEdit } from "react-icons/tb"; import { Button } from "./ui/button"; +import { Checkbox } from "./ui/checkbox"; import { DialogBody, DialogCloseTrigger, @@ -9,16 +12,22 @@ import { DialogTitle, DialogTrigger, } from "./ui/dialog"; -import { Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react"; -import { Checkbox } from "./ui/checkbox"; -import { FaRegEdit } from "react-icons/fa"; function EditSubAdmin() { return ( - + {/* */} + + + + {/* */} diff --git a/src/components/MainFrame.tsx b/src/components/MainFrame.tsx index 2646c63..e486ade 100644 --- a/src/components/MainFrame.tsx +++ b/src/components/MainFrame.tsx @@ -13,7 +13,7 @@ interface MainFrameProps { const MainFrame: FC = ({ children }) => { return ( - + Date: Tue, 11 Feb 2025 19:59:38 +0530 Subject: [PATCH 6/8] update --- .../RegisterUsers/EditRegisterUsers.tsx | 12 ++-------- .../AgencyMaster/AgencyMaster.tsx | 2 +- src/components/ActionIcons/Edit.tsx | 22 +++++++++++++++++++ 3 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 src/components/ActionIcons/Edit.tsx diff --git a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx index 739830f..56462c9 100644 --- a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx +++ b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx @@ -14,21 +14,13 @@ import { import { BiEdit } from "react-icons/bi"; import { Button } from "../../../components/ui/button"; import { TbEdit } from "react-icons/tb"; +import Edit from "../../../components/ActionIcons/Edit"; function EditRegisterUsers() { return ( - - - + { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} + size={"xs"} fontSize={"2sm"} placeholder="Search..." bgColor={'#EEEEEE'} diff --git a/src/components/ActionIcons/Edit.tsx b/src/components/ActionIcons/Edit.tsx new file mode 100644 index 0000000..d6d4b09 --- /dev/null +++ b/src/components/ActionIcons/Edit.tsx @@ -0,0 +1,22 @@ +import { Icon } from '@chakra-ui/react' +import { TbEdit } from 'react-icons/tb' +import { Tooltip } from '../ui/tooltip' + +const Edit = () => { + return ( + + + + + + ) +} + +export default Edit \ No newline at end of file From 795643eead2a4d82159dbea5a90c8926d14edf01 Mon Sep 17 00:00:00 2001 From: "Siddhesh.More" Date: Tue, 11 Feb 2025 20:14:29 +0530 Subject: [PATCH 7/8] updaate --- src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx | 4 ++-- src/Routes/Nav.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx index de0a4d3..0fec845 100644 --- a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx +++ b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx @@ -28,8 +28,8 @@ const managepost: any[] = [ "Images": ( // - - + + diff --git a/src/Routes/Nav.ts b/src/Routes/Nav.ts index e0c0a56..83956b9 100644 --- a/src/Routes/Nav.ts +++ b/src/Routes/Nav.ts @@ -17,7 +17,7 @@ export const nav = [ }, { title: "Manage Users", - path: "", + path: "/register-users", Icon: BiUserPin, type:'multiple', children: [ @@ -65,7 +65,7 @@ export const nav = [ }, { title: "Manage CMS", - path: "", + path: "/faq", Icon: AiOutlineFileText, type:'multiple', children: [ @@ -104,7 +104,7 @@ export const nav = [ }, { title: "Master Module", - path: "", + path: "/agency-master", Icon: BsBoxes, type:'multiple', children: [ From 688f6740627f6cdb421849d1fb012420be1d9d10 Mon Sep 17 00:00:00 2001 From: "Siddhesh.More" Date: Wed, 12 Feb 2025 11:54:21 +0530 Subject: [PATCH 8/8] update --- src/Layouts/DefaultLayout.tsx | 15 +++++++--- src/Pages/Dashboard/Dashboard.tsx | 2 ++ src/Pages/Login.tsx | 6 +++- src/Pages/ManageCMS/FAQ/FAQ.tsx | 2 +- src/Pages/ManageContact/ManageContact.tsx | 4 +-- src/Pages/ManageGroups/ManageGroups.tsx | 4 +-- src/Pages/ManageJobs/ManageJobs.tsx | 4 +-- src/Pages/ManagePost/ManagePost.tsx | 4 +-- .../DeactivatedAccounts.tsx | 2 +- .../RegisterUsers/RegisterUsers.tsx | 4 +-- .../AgencyMaster/AgencyMaster.tsx | 2 +- src/Pages/MasterModule/Country/Country.tsx | 4 +-- .../MasterModule/JobStatus/JobStatus.tsx | 4 +-- src/Pages/MasterModule/JobType/JobType.tsx | 4 +-- .../TemplateMaster/TemplateMaster.tsx | 4 +-- .../WorkspaceMode/WorkspaceMode.tsx | 4 +-- src/Pages/SubAdmin/SubAdmin.tsx | 2 +- src/Routes/Routes.ts | 3 ++ src/components/MainFrame.tsx | 3 +- src/components/ProgressBar/ProgessBar.css | 20 +++++++++++++ src/components/ProgressBar/ProgressBar.tsx | 12 ++++++++ src/components/Sipnner/Spinner.css | 28 ++++++++++++++++++ src/components/Sipnner/Spinner.tsx | 7 +++++ src/components/ui/toaster.tsx | 6 ++-- src/index.css | 29 +++---------------- 25 files changed, 121 insertions(+), 58 deletions(-) create mode 100644 src/components/ProgressBar/ProgessBar.css create mode 100644 src/components/ProgressBar/ProgressBar.tsx create mode 100644 src/components/Sipnner/Spinner.css create mode 100644 src/components/Sipnner/Spinner.tsx diff --git a/src/Layouts/DefaultLayout.tsx b/src/Layouts/DefaultLayout.tsx index e398ae7..ac7cd29 100644 --- a/src/Layouts/DefaultLayout.tsx +++ b/src/Layouts/DefaultLayout.tsx @@ -11,6 +11,7 @@ import { logout } from "../Redux/Service/authSlice"; import { useDispatch } from "react-redux"; import GlobalStateContext from "../Contexts/GlobalStateContext"; import { useLogOutMutation } from "../Redux/Service/apiSlice"; +import ProgressBar from "../components/ProgressBar/ProgressBar"; const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { @@ -46,12 +47,15 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { }; return ( - - - + + + + + + - + {nav?.map(({ title, path, Icon, type, children }, index) => type === 'single' ? {title} : @@ -66,7 +70,9 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { + + navigate('/profile')} > @@ -79,6 +85,7 @@ const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => { {children} + ); }; diff --git a/src/Pages/Dashboard/Dashboard.tsx b/src/Pages/Dashboard/Dashboard.tsx index 10539a7..a01dcf6 100644 --- a/src/Pages/Dashboard/Dashboard.tsx +++ b/src/Pages/Dashboard/Dashboard.tsx @@ -26,6 +26,7 @@ import { SelectValueText } from "../../components/ui/select"; import AgencyName from "./AgencyName"; +import { Spinner } from "../../components/Sipnner/Spinner"; const Dashboard = () => { const frameworks = createListCollection({ @@ -186,6 +187,7 @@ const Dashboard = () => { + ); }; diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx index 23f08c8..585aada 100644 --- a/src/Pages/Login.tsx +++ b/src/Pages/Login.tsx @@ -5,6 +5,7 @@ import { Image, Input, Text, + Theme, VStack, } from "@chakra-ui/react"; import axios from "axios"; @@ -78,6 +79,8 @@ const Login = () => { console.log("===================================="); } } catch (error) { + console.log('error', error); + if (error) { toaster.create({ // title: error?.response?.data?.message, @@ -91,7 +94,8 @@ const Login = () => { }); return ( - + + { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} + size={"xs"} fontSize={"2sm"} placeholder="Search..." bgColor={'#EEEEEE'} diff --git a/src/Pages/ManageContact/ManageContact.tsx b/src/Pages/ManageContact/ManageContact.tsx index d4d44ed..9861955 100644 --- a/src/Pages/ManageContact/ManageContact.tsx +++ b/src/Pages/ManageContact/ManageContact.tsx @@ -60,8 +60,8 @@ const ManageContact = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/ManageGroups/ManageGroups.tsx b/src/Pages/ManageGroups/ManageGroups.tsx index 7cb4b8f..5824d73 100644 --- a/src/Pages/ManageGroups/ManageGroups.tsx +++ b/src/Pages/ManageGroups/ManageGroups.tsx @@ -82,8 +82,8 @@ const ManageGroups = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/ManageJobs/ManageJobs.tsx b/src/Pages/ManageJobs/ManageJobs.tsx index 06ec2bf..3d408ab 100644 --- a/src/Pages/ManageJobs/ManageJobs.tsx +++ b/src/Pages/ManageJobs/ManageJobs.tsx @@ -83,8 +83,8 @@ const ManageJobs = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/ManagePost/ManagePost.tsx b/src/Pages/ManagePost/ManagePost.tsx index fe4709e..8f63a58 100644 --- a/src/Pages/ManagePost/ManagePost.tsx +++ b/src/Pages/ManagePost/ManagePost.tsx @@ -90,8 +90,8 @@ const ManagePost = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx b/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx index 8daf4f8..93c5727 100644 --- a/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx +++ b/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx @@ -57,7 +57,7 @@ const DeactivatedAccounts = () => { _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} size={"2xs"} - fontSize={"2sm"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx index 95965a9..c552fe3 100644 --- a/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx +++ b/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx @@ -84,8 +84,8 @@ const RegisterUsers = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx b/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx index 2390a39..2bac861 100644 --- a/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx +++ b/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx @@ -77,7 +77,7 @@ const AgencyMaster = () => { _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} size={"xs"} - fontSize={"2sm"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/MasterModule/Country/Country.tsx b/src/Pages/MasterModule/Country/Country.tsx index 063eb7d..96afe6e 100644 --- a/src/Pages/MasterModule/Country/Country.tsx +++ b/src/Pages/MasterModule/Country/Country.tsx @@ -63,8 +63,8 @@ const Country = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/MasterModule/JobStatus/JobStatus.tsx b/src/Pages/MasterModule/JobStatus/JobStatus.tsx index 409dfc1..403509a 100644 --- a/src/Pages/MasterModule/JobStatus/JobStatus.tsx +++ b/src/Pages/MasterModule/JobStatus/JobStatus.tsx @@ -63,8 +63,8 @@ const JobStatus = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/MasterModule/JobType/JobType.tsx b/src/Pages/MasterModule/JobType/JobType.tsx index 353387f..6c7b3d4 100644 --- a/src/Pages/MasterModule/JobType/JobType.tsx +++ b/src/Pages/MasterModule/JobType/JobType.tsx @@ -63,8 +63,8 @@ const JobType = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx index 0fec845..a26c28f 100644 --- a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx +++ b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx @@ -76,8 +76,8 @@ const TemplateMaster = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx index c5a2a21..ffc6939 100644 --- a/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx +++ b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx @@ -63,8 +63,8 @@ const WorkspaceMode = () => { colorPalette={"blue"} _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} - size={"2xs"} - fontSize={"2sm"} + size={"xs"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Pages/SubAdmin/SubAdmin.tsx b/src/Pages/SubAdmin/SubAdmin.tsx index 51a01b2..b48a452 100644 --- a/src/Pages/SubAdmin/SubAdmin.tsx +++ b/src/Pages/SubAdmin/SubAdmin.tsx @@ -80,7 +80,7 @@ const SubAdmin = () => { _focus={{ border: "1px solid #02A0A0" }} rounded={"md"} size={"xs"} - fontSize={"2sm"} + fontSize={"sm"} placeholder="Search..." bgColor={'#EEEEEE'} ps={8} diff --git a/src/Routes/Routes.ts b/src/Routes/Routes.ts index 084cc1b..c014a40 100644 --- a/src/Routes/Routes.ts +++ b/src/Routes/Routes.ts @@ -22,6 +22,7 @@ import Country from "../Pages/MasterModule/Country/Country"; import JobStatus from "../Pages/MasterModule/JobStatus/JobStatus"; import RegisterUsers from "../Pages/ManageUsers/RegisterUsers/RegisterUsers"; import DeactivatedAccounts from "../Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts"; +import { Spinner } from "../components/Sipnner/Spinner"; export const RouteLink = [ { path: "/", Component: Dashboard }, @@ -47,4 +48,6 @@ export const RouteLink = [ { path: "/workspace-mode", Component: WorkspaceMode}, { path: "/country", Component: Country}, { path: "/job-status", Component: JobStatus}, + // { path: "/job-status", Component: Spinner}, + ] \ No newline at end of file diff --git a/src/components/MainFrame.tsx b/src/components/MainFrame.tsx index e486ade..d6a3404 100644 --- a/src/components/MainFrame.tsx +++ b/src/components/MainFrame.tsx @@ -13,7 +13,7 @@ interface MainFrameProps { const MainFrame: FC = ({ children }) => { return ( - + = ({ children }) => { rounded="lg" boxShadow={'rgba(99, 99, 99, 0.2) 0px 2px 8px 0px'} pt={3} + > {children} diff --git a/src/components/ProgressBar/ProgessBar.css b/src/components/ProgressBar/ProgessBar.css new file mode 100644 index 0000000..4c270b8 --- /dev/null +++ b/src/components/ProgressBar/ProgessBar.css @@ -0,0 +1,20 @@ +/* HTML:
*/ +.progressbar { + height: 4px; + width: 100%; + --c: no-repeat linear-gradient(#02A0A0 0 0); + background: var(--c), var(--c), #B8F8F8; + background-size: 60% 100%; + animation: l16 3s infinite; +} + +@keyframes l16 { + 0% {background-position: -150% 0, -150% 0} + 66% {background-position: 250% 0, -150% 0} + 100% {background-position: 250% 0, 250% 0} +} + +.progressbarInactive{ + height: 4px; + width: 100%; +} \ No newline at end of file diff --git a/src/components/ProgressBar/ProgressBar.tsx b/src/components/ProgressBar/ProgressBar.tsx new file mode 100644 index 0000000..f5ff9ac --- /dev/null +++ b/src/components/ProgressBar/ProgressBar.tsx @@ -0,0 +1,12 @@ +import React from "react"; +import './ProgessBar.css'; + +interface ProgressBarProps { + isLoading: boolean; +} + +const ProgressBar: React.FC = ({ isLoading }) => { + return ; +}; + +export default ProgressBar; diff --git a/src/components/Sipnner/Spinner.css b/src/components/Sipnner/Spinner.css new file mode 100644 index 0000000..b6df8cd --- /dev/null +++ b/src/components/Sipnner/Spinner.css @@ -0,0 +1,28 @@ +/* HTML:
*/ +.loader { + width: 25px; + aspect-ratio: 1; + display: grid; + border-radius: 50%; + background: + linear-gradient(0deg, rgba(2, 160, 160, 0.5) 30%, transparent 0 70%, rgba(2, 160, 160, 1) 0) 50% / 8% 100%, + linear-gradient(90deg, rgba(2, 160, 160, 0.25) 30%, transparent 0 70%, rgba(2, 160, 160, 0.75) 0) 50% / 100% 8%; + background-repeat: no-repeat; + animation: l23 1s infinite steps(12); + } + .loader::before, + .loader::after { + content: ""; + grid-area: 1/1; + border-radius: 50%; + background: inherit; + opacity: 0.915; + transform: rotate(30deg); + } + .loader::after { + opacity: 0.83; + transform: rotate(60deg); + } + @keyframes l23 { + 100% {transform: rotate(1turn)} + } \ No newline at end of file diff --git a/src/components/Sipnner/Spinner.tsx b/src/components/Sipnner/Spinner.tsx new file mode 100644 index 0000000..12dc49d --- /dev/null +++ b/src/components/Sipnner/Spinner.tsx @@ -0,0 +1,7 @@ +import { Center } from '@chakra-ui/react' +import './Spinner.css' +export const Spinner = () =>
+ + + + diff --git a/src/components/ui/toaster.tsx b/src/components/ui/toaster.tsx index a4251eb..9101dbf 100644 --- a/src/components/ui/toaster.tsx +++ b/src/components/ui/toaster.tsx @@ -17,16 +17,16 @@ export const toaster = createToaster({ export const Toaster = () => { return ( - + {(toast) => ( - + {toast.type === "loading" ? ( ) : ( )} - + {toast.title && {toast.title}} {toast.description && ( {toast.description} diff --git a/src/index.css b/src/index.css index 862601a..a7a0c7c 100644 --- a/src/index.css +++ b/src/index.css @@ -147,32 +147,10 @@ body { } -/* Style the scrollbar */ -::-webkit-scrollbar { - width: 6px; - /* Width of the vertical scrollbar */ - height: 12px; - /* Height of the horizontal scrollbar */ -} - -/* Style the scrollbar track (the background area) */ -::-webkit-scrollbar-track { - background-color: #f1f1f1; - border-radius: 10px; -} - -/* Style the scrollbar thumb (the draggable part) */ -::-webkit-scrollbar-thumb { - background-color: #c8c8c8cf; - /* Gray color for the thumb */ - border-radius: 10px; - border: 1px solid #f1f1f1; - /* Border around the thumb */ -} /* Scrollbar width */ ::-webkit-scrollbar { - width: 8px; + width: 6px; height: 8px; cursor: pointer; } @@ -184,14 +162,15 @@ body { /* Scrollbar thumb (the draggable part) */ ::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.3); /* Light black (30% opacity) */ + background: rgba(0, 0, 0, 0.2); /* Light black (30% opacity) */ border-radius: 10px; /* Rounded edges */ transition: background 0.3s; } /* On hover, make it darker */ ::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, 0.5); + background: rgba(0, 0, 0, 0.411); + cursor: pointer; }