From 315eaccf508e6cabc1e63017e197afc74b6c9ef8 Mon Sep 17 00:00:00 2001
From: AnsariTufail <168163201+AnsariTufail@users.noreply.github.com>
Date: Fri, 7 Feb 2025 16:38:38 +0530
Subject: [PATCH 1/6] Working on the Master Module
---
dev-dist/sw.js | 2 +-
package-lock.json | 2 +-
src/Pages/ManageCMS/AboutUs/AboutUs.tsx | 2 +-
.../ManageCMS/AboutUs}/AboutUsAddModel.tsx | 28 ++---
.../ManageCMS/FAQ}/EditDetails.tsx | 30 ++---
src/Pages/ManageCMS/FAQ/FAQ.tsx | 8 +-
.../ManageCMS/FAQ}/FaqAddModel.tsx | 34 +++---
.../ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx | 2 +-
.../PrivacyPolicy}/PrivacyPolicyAddModel.tsx | 28 ++---
.../TermsAndConditions/TermsAndConditions.tsx | 2 +-
.../TermsAndConditionsAddModel.tsx | 28 ++---
src/Pages/ManageContact/ManageContact.tsx | 2 +-
.../ManageContact}/PendingRequests.tsx | 44 ++++----
src/Pages/ManageGroups/AddGroup.tsx | 23 ++--
src/Pages/ManageGroups/EditDetailGroup.tsx | 12 +-
src/Pages/ManageGroups/ManageGroups.tsx | 4 +-
src/Pages/ManageGroups/ViewManageGroup.tsx | 17 +--
src/Pages/ManageJobs/ManageJobsAdd.tsx | 12 +-
src/Pages/ManageJobs/ViewManageJob.tsx | 12 +-
src/Pages/ManagePost/ViewDailog.tsx | 8 +-
.../RegisterUsers/AddRegisterUsers.tsx | 78 +++++--------
.../RegisterUsers/EditRegisterUsers.tsx | 68 ++++--------
.../RegisterUsers/ViewRegisterUsers.tsx | 78 ++++---------
.../AgencyMaster/AgencyMaster.tsx | 103 ++++++++++++++++--
.../AgencyMaster/EditAgencyMaster.tsx | 75 +++++++++++++
.../AgencyMaster/ViewAgencyAddModel.tsx | 76 +++++++++++++
.../AgencyMaster/ViewAgencyMaster.tsx | 75 +++++++++++++
src/Pages/MasterModule/Country/Country.tsx | 90 +++++++++++++--
.../MasterModule/Country/CountryAddModel.tsx | 58 ++++++++++
.../MasterModule/Country/EditCountryModel.tsx | 61 +++++++++++
.../JobStatus/EditJobStatusModel.tsx | 61 +++++++++++
.../MasterModule/JobStatus/JobStatus.tsx | 90 +++++++++++++--
.../JobStatus/JobStatusAddModel.tsx | 58 ++++++++++
.../MasterModule/JobType/EditJobModel.tsx | 62 +++++++++++
.../MasterModule/JobType/JobAddModel.tsx | 58 ++++++++++
src/Pages/MasterModule/JobType/JobType.tsx | 90 +++++++++++++--
.../TemplateMaster/EditTemplateModel.tsx | 100 +++++++++++++++++
.../TemplateMaster/TemplateAddModel.tsx | 100 +++++++++++++++++
.../TemplateMaster/TemplateMaster.tsx | 103 ++++++++++++++++--
.../WorkspaceMode/EditWorkModel.tsx | 61 +++++++++++
.../WorkspaceMode/WorkAddModel.tsx | 58 ++++++++++
.../WorkspaceMode/WorkspaceMode.tsx | 90 +++++++++++++--
src/Pages/SubAdmin/AddModel.tsx | 12 +-
src/Pages/SubAdmin/SubAdmin.tsx | 4 +-
src/Pages/SubAdmin/ViewSubAdmin.tsx | 16 ++-
src/assets/Template_img.png | Bin 0 -> 17947 bytes
src/components/EditSubAdmin.tsx | 13 ++-
47 files changed, 1656 insertions(+), 382 deletions(-)
rename src/{components => Pages/ManageCMS/AboutUs}/AboutUsAddModel.tsx (60%)
rename src/{components => Pages/ManageCMS/FAQ}/EditDetails.tsx (63%)
rename src/{components => Pages/ManageCMS/FAQ}/FaqAddModel.tsx (56%)
rename src/{components => Pages/ManageCMS/PrivacyPolicy}/PrivacyPolicyAddModel.tsx (60%)
rename src/{components => Pages/ManageCMS/TermsAndConditions}/TermsAndConditionsAddModel.tsx (60%)
rename src/{components => Pages/ManageContact}/PendingRequests.tsx (63%)
create mode 100644 src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx
create mode 100644 src/Pages/MasterModule/AgencyMaster/ViewAgencyAddModel.tsx
create mode 100644 src/Pages/MasterModule/AgencyMaster/ViewAgencyMaster.tsx
create mode 100644 src/Pages/MasterModule/Country/CountryAddModel.tsx
create mode 100644 src/Pages/MasterModule/Country/EditCountryModel.tsx
create mode 100644 src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx
create mode 100644 src/Pages/MasterModule/JobStatus/JobStatusAddModel.tsx
create mode 100644 src/Pages/MasterModule/JobType/EditJobModel.tsx
create mode 100644 src/Pages/MasterModule/JobType/JobAddModel.tsx
create mode 100644 src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx
create mode 100644 src/Pages/MasterModule/TemplateMaster/TemplateAddModel.tsx
create mode 100644 src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx
create mode 100644 src/Pages/MasterModule/WorkspaceMode/WorkAddModel.tsx
create mode 100644 src/assets/Template_img.png
diff --git a/dev-dist/sw.js b/dev-dist/sw.js
index 6e232b1..8ae0392 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.57smkc9q598"
+ "revision": "0.tm0o9v27ue"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
diff --git a/package-lock.json b/package-lock.json
index 0d62def..f18c84e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1670,7 +1670,7 @@
},
"node_modules/@clack/prompts/node_modules/is-unicode-supported": {
"version": "1.3.0",
- "dev": true,
+ "extraneous": true,
"inBundle": true,
"license": "MIT",
"engines": {
diff --git a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
index 51377a3..a86544c 100644
--- a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
+++ b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
@@ -1,7 +1,7 @@
import { Box, HStack, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
import { p } from "framer-motion/client";
-import AboutUsAddModel from "../../../components/AboutUsAddModel";
+import AboutUsAddModel from "../../ManageCMS/AboutUs/AboutUsAddModel";
const AboutUs = () => {
diff --git a/src/components/AboutUsAddModel.tsx b/src/Pages/ManageCMS/AboutUs/AboutUsAddModel.tsx
similarity index 60%
rename from src/components/AboutUsAddModel.tsx
rename to src/Pages/ManageCMS/AboutUs/AboutUsAddModel.tsx
index 6643c16..75b9c73 100644
--- a/src/components/AboutUsAddModel.tsx
+++ b/src/Pages/ManageCMS/AboutUs/AboutUsAddModel.tsx
@@ -1,7 +1,7 @@
import { FaRegEdit } from "react-icons/fa"
-import { Button } from "./ui/button"
-import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
import { Field, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
function AboutUsAddModel() {
return (
@@ -11,31 +11,33 @@ function AboutUsAddModel() {
{/* */}
-
+
-
- Edit
+
+ Edit
-
+
- AboutUs
-
-
+
diff --git a/src/components/EditDetails.tsx b/src/Pages/ManageCMS/FAQ/EditDetails.tsx
similarity index 63%
rename from src/components/EditDetails.tsx
rename to src/Pages/ManageCMS/FAQ/EditDetails.tsx
index 4c7b8af..a8759e9 100644
--- a/src/components/EditDetails.tsx
+++ b/src/Pages/ManageCMS/FAQ/EditDetails.tsx
@@ -1,5 +1,5 @@
-import { Button } from "./ui/button"
-import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
+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 { FaRegEdit } from "react-icons/fa";
function EditDetails() {
@@ -16,29 +16,31 @@ function EditDetails() {
-
- Edit Details
+
+ Edit Details
-
+
- Questions
-
+ Questions
+
- Answer
-
+ Answer
+
-
+
diff --git a/src/Pages/ManageCMS/FAQ/FAQ.tsx b/src/Pages/ManageCMS/FAQ/FAQ.tsx
index cff2e78..44bd58d 100644
--- a/src/Pages/ManageCMS/FAQ/FAQ.tsx
+++ b/src/Pages/ManageCMS/FAQ/FAQ.tsx
@@ -1,13 +1,13 @@
import { Box, Button, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
-import EditDetails from "../../../components/EditDetails";
+import EditDetails from "./EditDetails";
import { InputGroup } from "../../../components/ui/input-group";
import { LuSearch } from "react-icons/lu";
import DataTable from "../../../components/DataTable";
import AlertDailog from "../../../components/AlertDailog";
import { RiDeleteBin5Line } from "react-icons/ri";
import { Switch } from "../../../components/ui/switch";
-import FaqAddModel from "../../../components/FaqAddModel";
+import FaqAddModel from "./FaqAddModel";
// table data
@@ -60,8 +60,8 @@ const FAQ = () => {
FAQs
-
-
+
}
diff --git a/src/components/FaqAddModel.tsx b/src/Pages/ManageCMS/FAQ/FaqAddModel.tsx
similarity index 56%
rename from src/components/FaqAddModel.tsx
rename to src/Pages/ManageCMS/FAQ/FaqAddModel.tsx
index 563b2ef..40b1f60 100644
--- a/src/components/FaqAddModel.tsx
+++ b/src/Pages/ManageCMS/FAQ/FaqAddModel.tsx
@@ -1,7 +1,7 @@
-import { Button } from "./ui/button"
-import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
-import { Field, Grid, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Field, Input, Stack, Text, Textarea } from "@chakra-ui/react"
import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
function FaqAddModel() {
return (
@@ -11,35 +11,37 @@ function FaqAddModel() {
{/* */}
-
+
-
- Add
+
+ Add
-
+
- Questions
-
+ Questions
+
- Answer
-
+ Answer
+
-
+
diff --git a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
index e427996..26e9126 100644
--- a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
+++ b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
@@ -1,7 +1,7 @@
import { Box, HStack, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
import { p } from "framer-motion/client";
-import PrivacyPolicyAddModel from "../../../components/PrivacyPolicyAddModel";
+import PrivacyPolicyAddModel from "./PrivacyPolicyAddModel";
const PrivacyPolicy = () => {
diff --git a/src/components/PrivacyPolicyAddModel.tsx b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
similarity index 60%
rename from src/components/PrivacyPolicyAddModel.tsx
rename to src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
index 64b6db9..566a00e 100644
--- a/src/components/PrivacyPolicyAddModel.tsx
+++ b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
@@ -1,7 +1,7 @@
import { FaRegEdit } from "react-icons/fa"
-import { Button } from "./ui/button"
-import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
import { Field, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
function PrivacyPolicyAddModel() {
return (
@@ -11,31 +11,33 @@ function PrivacyPolicyAddModel() {
{/* */}
-
+
-
- Edit
+
+ Edit
-
+
- PrivacyPolicy
-
-
+
diff --git a/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
index 8c42617..35f1e5a 100644
--- a/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
+++ b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
@@ -1,7 +1,7 @@
import { Box, HStack, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
import { p } from "framer-motion/client";
-import TermsAndConditionsAddModel from "../../../components/TermsAndConditionsAddModel";
+import TermsAndConditionsAddModel from "./TermsAndConditionsAddModel";
const TermsAndConditions = () => {
diff --git a/src/components/TermsAndConditionsAddModel.tsx b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditionsAddModel.tsx
similarity index 60%
rename from src/components/TermsAndConditionsAddModel.tsx
rename to src/Pages/ManageCMS/TermsAndConditions/TermsAndConditionsAddModel.tsx
index d0033cc..17a97fa 100644
--- a/src/components/TermsAndConditionsAddModel.tsx
+++ b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditionsAddModel.tsx
@@ -1,7 +1,7 @@
import { FaRegEdit } from "react-icons/fa"
-import { Button } from "./ui/button"
-import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
import { Field, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
function TermsAndConditionsAddModel() {
return (
@@ -11,31 +11,33 @@ function TermsAndConditionsAddModel() {
{/* */}
-
+
-
- Edit
+
+ Edit
-
+
- TermsAndConditions
-
+ TermsAndConditions
+
-
+
diff --git a/src/Pages/ManageContact/ManageContact.tsx b/src/Pages/ManageContact/ManageContact.tsx
index cc1e9c8..1207bf7 100644
--- a/src/Pages/ManageContact/ManageContact.tsx
+++ b/src/Pages/ManageContact/ManageContact.tsx
@@ -1,6 +1,6 @@
import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../components/MainFrame"
-import PendingRequests from "../../components/PendingRequests";
+import PendingRequests from "../../Pages/ManageContact/PendingRequests"
import { InputGroup } from "../../components/ui/input-group";
import { LuSearch } from "react-icons/lu";
import DataTable from "../../components/DataTable";
diff --git a/src/components/PendingRequests.tsx b/src/Pages/ManageContact/PendingRequests.tsx
similarity index 63%
rename from src/components/PendingRequests.tsx
rename to src/Pages/ManageContact/PendingRequests.tsx
index 996bc45..23d566b 100644
--- a/src/components/PendingRequests.tsx
+++ b/src/Pages/ManageContact/PendingRequests.tsx
@@ -1,6 +1,6 @@
-import { Button } from "./ui/button"
-import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
-import { Field, HStack, Input, Stack, Textarea, } from "@chakra-ui/react"
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Field, HStack, Input, Stack, Textarea, } from "@chakra-ui/react"
function PendingRequests() {
return (
@@ -16,33 +16,33 @@ function PendingRequests() {
-
- Pending Requests
+
+ Pending Requests
-
-
+
- Request Type
-
+ Request Type
+
- Solution
-
+ Solution
+
-
+
-
-
-
+
+
+
diff --git a/src/Pages/ManageGroups/AddGroup.tsx b/src/Pages/ManageGroups/AddGroup.tsx
index fa2f5f4..d5cc33a 100644
--- a/src/Pages/ManageGroups/AddGroup.tsx
+++ b/src/Pages/ManageGroups/AddGroup.tsx
@@ -8,7 +8,7 @@ function AddGroup() {
- Add
+ Add
@@ -16,19 +16,17 @@ function AddGroup() {
bg={"#fff"}
// w={{ lg: "60%", md: "230px" }}
w={{ base: '90%', md: '400px' }}
-
-
- // height={'80vh'}
- overflow={'scroll'}
- p={2} // Reduced padding
+ height={"auto"}
+ // overflow={'scroll'}
+ p={3} // Reduced padding
bgSize={'md'}
>
-
+
Add
-
+
Group Name
@@ -41,18 +39,11 @@ function AddGroup() {
Add Member
-
-
-
-
-
-
-
public/Private
-
+
Save
diff --git a/src/Pages/ManageGroups/EditDetailGroup.tsx b/src/Pages/ManageGroups/EditDetailGroup.tsx
index e81f7b2..64d8c8f 100644
--- a/src/Pages/ManageGroups/EditDetailGroup.tsx
+++ b/src/Pages/ManageGroups/EditDetailGroup.tsx
@@ -10,7 +10,7 @@ function EditDetailGroups() {
-
+
{/* */}
@@ -19,15 +19,15 @@ function EditDetailGroups() {
-
+
Edit details
-
+
Group Name
@@ -71,7 +71,7 @@ function EditDetailGroups() {
-
+
Save
diff --git a/src/Pages/ManageGroups/ManageGroups.tsx b/src/Pages/ManageGroups/ManageGroups.tsx
index f055d68..7cb4b8f 100644
--- a/src/Pages/ManageGroups/ManageGroups.tsx
+++ b/src/Pages/ManageGroups/ManageGroups.tsx
@@ -5,8 +5,6 @@ import { LuSearch } from "react-icons/lu"
import DataTable from "../../components/DataTable"
import AlertDailog from "../../components/AlertDailog"
import { RiDeleteBin5Line } from "react-icons/ri";
-import AddModel from "../SubAdmin/AddModel"
-import EditSubAdmin from "../../components/EditSubAdmin"
import ViewManageGroup from "./ViewManageGroup"
import EditDetailGroups from "./EditDetailGroup"
import AddGroup from "./AddGroup"
@@ -70,7 +68,7 @@ const ManageGroups = () => {
Manage Groups
-
+
diff --git a/src/Pages/ManageGroups/ViewManageGroup.tsx b/src/Pages/ManageGroups/ViewManageGroup.tsx
index 61c6971..d479bc0 100644
--- a/src/Pages/ManageGroups/ViewManageGroup.tsx
+++ b/src/Pages/ManageGroups/ViewManageGroup.tsx
@@ -11,7 +11,7 @@ function ViewManageGroup() {
-
+
{/* */}
@@ -21,19 +21,16 @@ function ViewManageGroup() {
bg={"#fff"}
// w={{ lg: "60%", md: "230px" }}
w={{ base: '90%', md: '400px' }}
-
-
- // height={'80vh'}
- overflow={'scroll'}
- p={2} // Reduced padding
+ height={"auto"}
+ p={3} // Reduced padding
bgSize={'md'}
>
-
+
View details
-
+
Group Name
@@ -73,10 +70,6 @@ function ViewManageGroup() {
-
-
-
-
public/Private
diff --git a/src/Pages/ManageJobs/ManageJobsAdd.tsx b/src/Pages/ManageJobs/ManageJobsAdd.tsx
index d69907f..6e19bbc 100644
--- a/src/Pages/ManageJobs/ManageJobsAdd.tsx
+++ b/src/Pages/ManageJobs/ManageJobsAdd.tsx
@@ -20,7 +20,7 @@ function ManageJobsAdd() {
-
+
@@ -28,18 +28,18 @@ function ManageJobsAdd() {
bg={"#fff"}
// w={{ lg: "60%", md: "230px" }}
w={{ base: '90%', md: '400px' }}
-
height={'80vh'}
overflow={'scroll'}
- p={2} // Reduced padding
+ overflowX="hidden"
+ p={3} // Reduced padding
bgSize={'md'}
>
-
+
Add Details
-
+
Job title
@@ -92,7 +92,7 @@ function ManageJobsAdd() {
-
+
Save
diff --git a/src/Pages/ManageJobs/ViewManageJob.tsx b/src/Pages/ManageJobs/ViewManageJob.tsx
index c8b574b..fca4cd6 100644
--- a/src/Pages/ManageJobs/ViewManageJob.tsx
+++ b/src/Pages/ManageJobs/ViewManageJob.tsx
@@ -21,7 +21,7 @@ function ViewManageJob() {
-
+
@@ -29,18 +29,18 @@ function ViewManageJob() {
bg={"#fff"}
// w={{ lg: "60%", md: "230px" }}
w={{ base: '90%', md: '400px' }}
-
height={'80vh'}
overflow={'scroll'}
- p={2} // Reduced padding
+ overflowX="hidden"
+ p={3} // Reduced padding
bgSize={'md'}
>
-
+
Add Details
-
+
Job title
@@ -95,7 +95,7 @@ function ViewManageJob() {
-
+
Save
diff --git a/src/Pages/ManagePost/ViewDailog.tsx b/src/Pages/ManagePost/ViewDailog.tsx
index 446b26a..f835014 100644
--- a/src/Pages/ManagePost/ViewDailog.tsx
+++ b/src/Pages/ManagePost/ViewDailog.tsx
@@ -9,7 +9,7 @@ function ViewDailog() {
-
+
@@ -17,14 +17,14 @@ function ViewDailog() {
w={{ base: '90%', md: '400px' }}
bg={"#fff"}
h="auto"
- p={2} // Reduced padding
+ p={3} // Reduced padding
>
-
+
View Details
-
+
Title
diff --git a/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx
index 8fa5979..bbb4ea1 100644
--- a/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx
+++ b/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx
@@ -17,104 +17,76 @@ function AddRegisterUsers() {
return (
-
+
Add
-
-
+
+
Add User Accounts
-
+
-
+
First Name
-
+
Last Name
-
+
Gender
-
+
DOB
-
+
OTP Verified
-
+
Language
-
+
-
+
Save
diff --git a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx
index 4604103..30b934f 100644
--- a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx
+++ b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx
@@ -23,90 +23,62 @@ function EditRegisterUsers() {
-
+
Edit user Accounts
-
+
-
+
First Name
-
+
Last Name
-
+
Gender
-
+
DOB
-
+
OTP Verified
-
+
Language
diff --git a/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx
index 95717cd..7826ee4 100644
--- a/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx
+++ b/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx
@@ -21,97 +21,63 @@ function ViewRegisterUsers() {
-
-
+
+
View Details
-
+
-
+
First Name
-
+
Last Name
-
+
Gender
-
+
DOB
-
+
OTP Verified
-
+
Language
diff --git a/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx b/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx
index 052c2de..360b868 100644
--- a/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx
+++ b/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx
@@ -1,12 +1,99 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import EditAgencyMaster from "./EditAgencyMaster";
+import ViewAgencyAddModel from "./ViewAgencyAddModel";
+import ViewAgencyMaster from "./ViewAgencyMaster";
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Agency Name",
+ "RC no.",
+ "State",
+ "RC Status",
+ "Registered Office Address",
+ "Website/Domain",
+ "GST no.",
+ "Action"
+
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Agency Name": "Lorem Ipsum",
+ "RC no.": "Lorem Ipsum",
+ "State": "Lorem Ipsum",
+ "RC Status": "Active",
+ "Registered Office Address": "Lorem Ipsum",
+ "Website/Domain": "Lorem Ipsum",
+ "GST no.": "Lorem Ipsum",
+ "Action": (
+
+
+
+
+
+
+
+ ),
+ })),
+];
+
const AgencyMaster = () => {
- return (
-
-
- AgencyMaster
-
- )
- }
- export default AgencyMaster
\ No newline at end of file
+ return (
+
+
+
+
+
+ Agency Master
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* Add */}
+
+
+
+
+
+
+ )
+}
+export default AgencyMaster
\ No newline at end of file
diff --git a/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx b/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx
new file mode 100644
index 0000000..841a1ed
--- /dev/null
+++ b/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx
@@ -0,0 +1,75 @@
+import { FaRegEdit } from "react-icons/fa"
+import { Button } from "../../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Field, Input, Stack, } from "@chakra-ui/react"
+
+
+function EditAgencyMaster() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+ Agency name
+
+
+ RC No.
+
+
+ State
+
+
+ Registered Office Address
+
+
+ Website/Domain
+
+
+ GST no.
+
+
+ Action
+
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+
+ )
+}
+
+export default EditAgencyMaster
\ No newline at end of file
diff --git a/src/Pages/MasterModule/AgencyMaster/ViewAgencyAddModel.tsx b/src/Pages/MasterModule/AgencyMaster/ViewAgencyAddModel.tsx
new file mode 100644
index 0000000..d17c6ef
--- /dev/null
+++ b/src/Pages/MasterModule/AgencyMaster/ViewAgencyAddModel.tsx
@@ -0,0 +1,76 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Field, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
+
+function ViewAgencyAddModel() {
+ return (
+
+
+
+ {/*
+
+ */}
+
+ Add
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Agency Name
+
+
+ RC No.
+
+
+ State
+
+
+ Registered Office Address
+
+
+ Website/Domain
+
+
+ GST no.
+
+
+ Action
+
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default ViewAgencyAddModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/AgencyMaster/ViewAgencyMaster.tsx b/src/Pages/MasterModule/AgencyMaster/ViewAgencyMaster.tsx
new file mode 100644
index 0000000..2c5a6f0
--- /dev/null
+++ b/src/Pages/MasterModule/AgencyMaster/ViewAgencyMaster.tsx
@@ -0,0 +1,75 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Field, Input, Stack, } from "@chakra-ui/react"
+import { MdOutlineRemoveRedEye } from "react-icons/md"
+import { Button } from "../../../components/ui/button"
+
+
+function ViewAgencyMaster() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ Add
+
+
+
+
+
+ Agency name
+
+
+ RC No.
+
+
+ State
+
+
+ Registered Office Address
+
+
+ Website/Domain
+
+
+ GST no.
+
+
+ Action
+
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ViewAgencyMaster
\ No newline at end of file
diff --git a/src/Pages/MasterModule/Country/Country.tsx b/src/Pages/MasterModule/Country/Country.tsx
index 71676e1..d1b3d00 100644
--- a/src/Pages/MasterModule/Country/Country.tsx
+++ b/src/Pages/MasterModule/Country/Country.tsx
@@ -1,12 +1,86 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import CountryAddModel from "./CountryAddModel";
+import EditCountryModel from "./EditCountryModel";
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Title",
+ "Action"
+
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Title": "Lorem Ipsum",
+ "Action": (
+
+
+
+
+
+
+ ),
+ })),
+];
+
const Country = () => {
- return (
-
-
- Country
-
- )
- }
- export default Country
\ No newline at end of file
+ return (
+
+
+
+
+
+ Country
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* Add */}
+
+
+
+
+
+
+ )
+}
+export default Country
\ No newline at end of file
diff --git a/src/Pages/MasterModule/Country/CountryAddModel.tsx b/src/Pages/MasterModule/Country/CountryAddModel.tsx
new file mode 100644
index 0000000..f2e2ec9
--- /dev/null
+++ b/src/Pages/MasterModule/Country/CountryAddModel.tsx
@@ -0,0 +1,58 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
+
+function CountryAddModel() {
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+ Add
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Country
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default CountryAddModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/Country/EditCountryModel.tsx b/src/Pages/MasterModule/Country/EditCountryModel.tsx
new file mode 100644
index 0000000..c9da0c4
--- /dev/null
+++ b/src/Pages/MasterModule/Country/EditCountryModel.tsx
@@ -0,0 +1,61 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
+import { FaRegEdit } from "react-icons/fa";
+
+
+function EditCountryModel() {
+
+
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ Country
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default EditCountryModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx b/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx
new file mode 100644
index 0000000..5b0e081
--- /dev/null
+++ b/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx
@@ -0,0 +1,61 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
+import { FaRegEdit } from "react-icons/fa";
+
+
+function EditJobStatusModel() {
+
+
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ Job Status
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default EditJobStatusModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/JobStatus/JobStatus.tsx b/src/Pages/MasterModule/JobStatus/JobStatus.tsx
index 8a7e6ed..95d83ff 100644
--- a/src/Pages/MasterModule/JobStatus/JobStatus.tsx
+++ b/src/Pages/MasterModule/JobStatus/JobStatus.tsx
@@ -1,12 +1,86 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import JobStatusAddModel from "./JobStatusAddModel";
+import EditJobStatusModel from "./EditJobStatusModel";
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Title",
+ "Action"
+
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Title": "Lorem Ipsum",
+ "Action": (
+
+
+
+
+
+
+ ),
+ })),
+];
+
const JobStatus = () => {
- return (
-
-
- JobStatus
-
- )
- }
- export default JobStatus
\ No newline at end of file
+ return (
+
+
+
+
+
+ Job Status
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* Add */}
+
+
+
+
+
+
+ )
+}
+export default JobStatus
\ No newline at end of file
diff --git a/src/Pages/MasterModule/JobStatus/JobStatusAddModel.tsx b/src/Pages/MasterModule/JobStatus/JobStatusAddModel.tsx
new file mode 100644
index 0000000..801e297
--- /dev/null
+++ b/src/Pages/MasterModule/JobStatus/JobStatusAddModel.tsx
@@ -0,0 +1,58 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
+
+function JobStatusAddModel() {
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+ Add
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Job Status
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default JobStatusAddModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/JobType/EditJobModel.tsx b/src/Pages/MasterModule/JobType/EditJobModel.tsx
new file mode 100644
index 0000000..6a8021c
--- /dev/null
+++ b/src/Pages/MasterModule/JobType/EditJobModel.tsx
@@ -0,0 +1,62 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
+import { FiUpload } from "react-icons/fi";
+import { FaRegEdit } from "react-icons/fa";
+
+
+function EditJobeModel() {
+
+
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ Job Type
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default EditJobeModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/JobType/JobAddModel.tsx b/src/Pages/MasterModule/JobType/JobAddModel.tsx
new file mode 100644
index 0000000..15c9477
--- /dev/null
+++ b/src/Pages/MasterModule/JobType/JobAddModel.tsx
@@ -0,0 +1,58 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
+
+function JobAddModel() {
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+ Add
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Job Type
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default JobAddModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/JobType/JobType.tsx b/src/Pages/MasterModule/JobType/JobType.tsx
index d134f83..ba43fba 100644
--- a/src/Pages/MasterModule/JobType/JobType.tsx
+++ b/src/Pages/MasterModule/JobType/JobType.tsx
@@ -1,12 +1,86 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import JobAddModel from "./JobAddModel";
+import EditJobeModel from "./EditJobModel";
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Title",
+ "Action"
+
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Title": "Lorem Ipsum",
+ "Action": (
+
+
+
+
+
+
+ ),
+ })),
+];
+
const JobType = () => {
- return (
-
-
- JobType
-
- )
- }
- export default JobType
\ No newline at end of file
+ return (
+
+
+
+
+
+ Job Type
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* Add */}
+
+
+
+
+
+
+ )
+}
+export default JobType
\ No newline at end of file
diff --git a/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx b/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx
new file mode 100644
index 0000000..7e508c3
--- /dev/null
+++ b/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx
@@ -0,0 +1,100 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
+import { FiUpload } from "react-icons/fi";
+import { useState } from "react";
+import { FaRegEdit } from "react-icons/fa";
+
+
+function EditTemplateModel() {
+
+ const [images, setImages] = useState([]);
+
+ const handleImageChange = (event: React.ChangeEvent) => {
+ if (event.target.files) {
+ const selectedFiles = Array.from(event.target.files);
+
+ const newImages = selectedFiles.map((file) => {
+ return URL.createObjectURL(file); // Convert to preview URL
+ });
+
+ setImages((prevImages) => [...prevImages, ...newImages]); // Append new images
+ }
+ };
+
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Template Name
+
+
+
+ Images
+
+
+
+ {images.length > 0 ? (
+ images.map((img, index) => (
+
+ ))
+ ) : (
+ // Placeholder to maintain layout
+ )}
+
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default EditTemplateModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/TemplateMaster/TemplateAddModel.tsx b/src/Pages/MasterModule/TemplateMaster/TemplateAddModel.tsx
new file mode 100644
index 0000000..4dbc121
--- /dev/null
+++ b/src/Pages/MasterModule/TemplateMaster/TemplateAddModel.tsx
@@ -0,0 +1,100 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
+import { FiUpload } from "react-icons/fi";
+import { useState } from "react";
+
+
+function TemplateAddModel() {
+
+ const [images, setImages] = useState([]);
+
+ const handleImageChange = (event: React.ChangeEvent) => {
+ if (event.target.files) {
+ const selectedFiles = Array.from(event.target.files);
+
+ const newImages = selectedFiles.map((file) => {
+ return URL.createObjectURL(file); // Convert to preview URL
+ });
+
+ setImages((prevImages) => [...prevImages, ...newImages]); // Append new images
+ }
+ };
+
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+ Add
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Template Name
+
+
+
+ Images
+
+
+
+ {images.length > 0 ? (
+ images.map((img, index) => (
+
+ ))
+ ) : (
+ // Placeholder to maintain layout
+ )}
+
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default TemplateAddModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
index a10c785..7764629 100644
--- a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
+++ b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
@@ -1,12 +1,99 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import img from "../../../assets/waterfall.jpg"
+import Templateimg from "../../../assets/Template_img.png"
+import TemplateAddModel from "./TemplateAddModel";
+import EditTemplateModel from "./EditTemplateModel";
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Title",
+ "Images",
+ "Action"
+
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Title": "Lorem Ipsum",
+ "Images": (
+ //
+
+
+
+
+
+
+ ),
+
+ "Action": (
+
+
+
+
+
+
+ ),
+ })),
+];
+
const TemplateMaster = () => {
- return (
-
-
- TemplateMaster
-
- )
- }
- export default TemplateMaster
\ No newline at end of file
+ return (
+
+
+
+
+
+ Template Master
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* Add */}
+
+
+
+
+
+
+ )
+}
+export default TemplateMaster
\ No newline at end of file
diff --git a/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx b/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx
new file mode 100644
index 0000000..b4fcde9
--- /dev/null
+++ b/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx
@@ -0,0 +1,61 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Button } from "../../../components/ui/button"
+import { FaRegEdit } from "react-icons/fa";
+
+
+function EditWorkModel() {
+
+
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ Workspace Mode
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default EditWorkModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/WorkspaceMode/WorkAddModel.tsx b/src/Pages/MasterModule/WorkspaceMode/WorkAddModel.tsx
new file mode 100644
index 0000000..22287a1
--- /dev/null
+++ b/src/Pages/MasterModule/WorkspaceMode/WorkAddModel.tsx
@@ -0,0 +1,58 @@
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
+import { Box, Field, IconButton, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Button } from "../../../components/ui/button"
+
+function WorkAddModel() {
+
+ return (
+
+
+
+ {/*
+
+ */}
+
+ Add
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Workspace Mode
+
+
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ )
+}
+
+export default WorkAddModel
\ No newline at end of file
diff --git a/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
index b6e8985..a236b90 100644
--- a/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
+++ b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
@@ -1,12 +1,86 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import WorkAddModel from "./WorkAddModel";
+import EditWorkModel from "./EditWorkModel";
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Title",
+ "Action"
+
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Title": "Lorem Ipsum",
+ "Action": (
+
+
+
+
+
+
+ ),
+ })),
+];
+
const WorkspaceMode = () => {
- return (
-
-
- WorkspaceMode
-
- )
- }
- export default WorkspaceMode
\ No newline at end of file
+ return (
+
+
+
+
+
+ Workspace Mode
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* Add */}
+
+
+
+
+
+
+ )
+}
+export default WorkspaceMode
\ No newline at end of file
diff --git a/src/Pages/SubAdmin/AddModel.tsx b/src/Pages/SubAdmin/AddModel.tsx
index 6395eeb..403549b 100644
--- a/src/Pages/SubAdmin/AddModel.tsx
+++ b/src/Pages/SubAdmin/AddModel.tsx
@@ -12,7 +12,7 @@ function AddModel() {
{/*
*/}
- Add
+ Add
@@ -20,19 +20,19 @@ function AddModel() {
bg={"#fff"}
// w={{ lg: "60%", md: "230px" }}
w={{ base: '90%', md: '400px' }}
-
height={'80vh'}
overflow={'scroll'}
- p={2} // Reduced padding
+ overflowX="hidden"
+ p={3} // Reduced padding
bgSize={'md'}
>
-
+
Add Sub Admin Account
-
+
First Name
@@ -64,7 +64,7 @@ function AddModel() {
-
+
Save
diff --git a/src/Pages/SubAdmin/SubAdmin.tsx b/src/Pages/SubAdmin/SubAdmin.tsx
index 28c943d..4fa4c0e 100644
--- a/src/Pages/SubAdmin/SubAdmin.tsx
+++ b/src/Pages/SubAdmin/SubAdmin.tsx
@@ -70,8 +70,8 @@ const SubAdmin = () => {
{/* Manage Post */}
-
-
+
}
diff --git a/src/Pages/SubAdmin/ViewSubAdmin.tsx b/src/Pages/SubAdmin/ViewSubAdmin.tsx
index dbe4f88..d3f45b8 100644
--- a/src/Pages/SubAdmin/ViewSubAdmin.tsx
+++ b/src/Pages/SubAdmin/ViewSubAdmin.tsx
@@ -9,7 +9,7 @@ function ViewSubAdmin() {
-
+
{/* */}
@@ -19,20 +19,18 @@ function ViewSubAdmin() {
bg={"#fff"}
// w={{ lg: "60%", md: "230px" }}
w={{ base: '90%', md: '400px' }}
-
-
-
height={'80vh'}
overflow={'scroll'}
- p={2} // Reduced padding
+ overflowX="hidden"
+ p={3} // Reduced padding
bgSize={'md'}
>
-
+
View Sub Admin Account
-
+
First Name
@@ -68,11 +66,11 @@ function ViewSubAdmin() {
- {/*
+
Save
- */}
+
diff --git a/src/assets/Template_img.png b/src/assets/Template_img.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ea7aabf36190bbe5b62923d928877680dc08173
GIT binary patch
literal 17947
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
Wvn$;ePD_OV00008
literal 0
HcmV?d00001
diff --git a/src/components/EditSubAdmin.tsx b/src/components/EditSubAdmin.tsx
index 1640f05..60f92a7 100644
--- a/src/components/EditSubAdmin.tsx
+++ b/src/components/EditSubAdmin.tsx
@@ -9,7 +9,7 @@ function EditSubAdmin() {
-
+
{/* */}
@@ -17,18 +17,19 @@ function EditSubAdmin() {
-
+
Edit Sub Admin Account
-
+
First Name
@@ -61,7 +62,7 @@ function EditSubAdmin() {
-
+
Save
From 7fdcab72152f70920966d90205dd3e9414391c6b Mon Sep 17 00:00:00 2001
From: YasinShaikh123 <123150391+YasinShaikh123@users.noreply.github.com>
Date: Fri, 7 Feb 2025 17:24:33 +0530
Subject: [PATCH 2/6] [ update ]
---
src/Pages/Dashboard/AgencyName.tsx | 103 +++++++++++++++++++
src/Pages/Dashboard/Dashboard.tsx | 111 +++++++++++++++++++--
src/components/Charts/CircularProgress.tsx | 51 ++++++++++
3 files changed, 254 insertions(+), 11 deletions(-)
create mode 100644 src/Pages/Dashboard/AgencyName.tsx
create mode 100644 src/components/Charts/CircularProgress.tsx
diff --git a/src/Pages/Dashboard/AgencyName.tsx b/src/Pages/Dashboard/AgencyName.tsx
new file mode 100644
index 0000000..9941623
--- /dev/null
+++ b/src/Pages/Dashboard/AgencyName.tsx
@@ -0,0 +1,103 @@
+import { Box, HStack, Image, Input, Stack, Text } from "@chakra-ui/react";
+import React, { useState, useEffect } from "react";
+import { Button } from "../../components/ui/button";
+import { IoAddSharp } from "react-icons/io5";
+import delateIcon from "../../assets/deleteIcon.png";
+import { FaClockRotateLeft } from "react-icons/fa6";
+
+interface Todo {
+ id: number;
+ text: string;
+ completed: boolean;
+ timestamp: string;
+}
+
+const AgencyName: React.FC = () => {
+ const [todos, setTodos] = useState([]);
+ const [input, setInput] = useState("");
+
+
+ const getCurrentTime = () => {
+ const now = new Date();
+ return now.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
+ };
+
+
+ const addTodo = () => {
+ if (input.trim() === "") return;
+ setTodos([...todos, { id: Date.now(), text: input, completed: false, timestamp: getCurrentTime() }]);
+ setInput("");
+ };
+
+ // Delete a task
+ const deleteTodo = (id: number) => {
+ setTodos(todos.filter((todo) => todo.id !== id));
+ };
+
+ useEffect(() => {
+ const savedTodos = localStorage.getItem("todos");
+ if (savedTodos) {
+ setTodos(JSON.parse(savedTodos));
+ }
+ }, []); // Runs only on mount
+
+ // 🔹 Save todos to localStorage whenever they change
+ useEffect(() => {
+ if (todos.length > 0) {
+ localStorage.setItem("todos", JSON.stringify(todos));
+ }
+ }, [todos]); // Runs when `todos` changes
+
+
+ return (
+
+
+
+ Add Agency Name
+
+
+ Add
+
+
+ setInput(e.target.value)}
+ placeholder="Add a task..."
+ backgroundColor={"#fff"}
+ size={"sm"}
+ w={"100%"}
+ p={2}
+ mb={4}
+ />
+ {todos.map((todo) => (
+
+ {todo.text}
+
+
+
+ {todo.timestamp}
+
+ deleteTodo(todo.id)}
+ bg={"none"}
+ color={"#22222299"}
+ cursor={'pointer'}
+ >
+
+
+
+
+ ))}
+
+ );
+};
+
+export default AgencyName;
diff --git a/src/Pages/Dashboard/Dashboard.tsx b/src/Pages/Dashboard/Dashboard.tsx
index 5a0e63e..e60e41c 100644
--- a/src/Pages/Dashboard/Dashboard.tsx
+++ b/src/Pages/Dashboard/Dashboard.tsx
@@ -19,17 +19,55 @@ import {
SelectValueText,
} from "../../components/ui/select";
import SemiDoughnutChart from "../../components/Charts/SemiDoughnutChart";
+import { Button } from "../../components/ui/button";
+import {
+ AccordionItem,
+ AccordionItemContent,
+ AccordionItemTrigger,
+ AccordionRoot,
+} from "../../components/ui/accordion";
+import AgencyName from "./AgencyName";
+import CircularProgress from "../../components/Charts/CircularProgress";
+import CircularApp from "../../components/Charts/CircularProgress";
const Dashboard = () => {
const frameworks = createListCollection({
items: [
- { label: "React.js", value: "react" },
- { label: "Vue.js", value: "vue" },
- { label: "Angular", value: "angular" },
- { label: "Svelte", value: "svelte" },
+ { label: "Today", value: "Today" },
+ { label: "Week", value: "Week" },
+ { label: "Month", value: "Month" },
+ { label: "Year", value: "Year" },
],
});
+ const accItems = [
+ {
+ value: "1",
+ title: "How to create new account?",
+ text: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
+ },
+ {
+ value: "2",
+ title: "How to create new account?",
+ text: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
+ },
+ {
+ value: "3",
+ title: "How to create new account?",
+ text: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
+ },
+ {
+ value: "4",
+ title: "How to create new account?",
+ text: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
+ },
+ {
+ value: "5",
+ title: "How to create new account?",
+ text: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum has been the industry's standard dummy text ever since.",
+ },
+ ];
+
return (
@@ -47,16 +85,28 @@ const Dashboard = () => {
mb={6}
>
- Tab 1
- Tab 2
- Tab 3
+
+ Past 24 hrs
+
+
+ Total Users
+
+
+ New Signups
+
-
+
Recruiter 2554
@@ -92,11 +142,50 @@ const Dashboard = () => {
+ p={'10px'}
+ >
+ Number Of Groups created
+
+
-
-
+
+
+ Faqs
+
+ View ALL
+
+
+
+ {accItems.map((item, index) => (
+
+
+ {item.title}
+
+
+ {item.text}
+
+
+ ))}
+
+
+
+
+
);
diff --git a/src/components/Charts/CircularProgress.tsx b/src/components/Charts/CircularProgress.tsx
new file mode 100644
index 0000000..95fb47c
--- /dev/null
+++ b/src/components/Charts/CircularProgress.tsx
@@ -0,0 +1,51 @@
+import { Box, Text } from "@chakra-ui/react";
+import React, { useEffect, useState } from "react";
+
+const CircularProgress: React.FC<{ value: number; max: number }> = ({ value, max }) => {
+ const totalDots = 60; // Total number of dots in the circle
+ const filledDots = Math.round((value / max) * totalDots); // Number of filled dots
+
+ return (
+
+
+ {value}
+
+ );
+};
+
+// Usage Example with Animation
+const CircularApp: React.FC = () => {
+ const [progress, setProgress] = useState(0);
+
+ useEffect(() => {
+ const interval = setInterval(() => {
+ setProgress((prev) => (prev < 350 ? prev + 20 : 350));
+ }, 300);
+ return () => clearInterval(interval);
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default CircularApp;
From d37c8ed196893cc5507209c5e9038a6d95244b28 Mon Sep 17 00:00:00 2001
From: "Siddhesh.More"
Date: Mon, 10 Feb 2025 12:04:43 +0530
Subject: [PATCH 3/6] update
---
.env | 2 +
dev-dist/sw.js | 2 +-
package-lock.json | 268 +++++++++++++++++++++++++--
package.json | 3 +
src/Contexts/GlobalStateProvider.tsx | 2 +-
src/Pages/Login.tsx | 39 ++--
src/Redux/Service/apiSlice.tsx | 55 ++++++
src/Redux/Service/authSlice.tsx | 27 +++
src/Redux/Store.tsx | 15 ++
src/main.tsx | 22 ++-
10 files changed, 392 insertions(+), 43 deletions(-)
create mode 100644 .env
create mode 100644 src/Redux/Service/apiSlice.tsx
create mode 100644 src/Redux/Service/authSlice.tsx
create mode 100644 src/Redux/Store.tsx
diff --git a/.env b/.env
new file mode 100644
index 0000000..905ee5e
--- /dev/null
+++ b/.env
@@ -0,0 +1,2 @@
+VITE_API_URL=https://ssa.betadelivery.com/apia
+VITE_APP_NAME=MyViteApp
\ No newline at end of file
diff --git a/dev-dist/sw.js b/dev-dist/sw.js
index 8ae0392..9c5feb8 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.tm0o9v27ue"
+ "revision": "0.tg13lftuk78"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
diff --git a/package-lock.json b/package-lock.json
index f18c84e..1d95b8a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,8 @@
"@chakra-ui/react": "^3.2.3",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
+ "@reduxjs/toolkit": "^2.5.1",
+ "axios": "^1.7.9",
"chart.js": "^4.4.7",
"framer-motion": "^11.18.0",
"next-themes": "^0.4.4",
@@ -19,6 +21,7 @@
"react-dom": "^18.3.1",
"react-hook-form": "^7.54.2",
"react-icons": "^5.4.0",
+ "react-redux": "^9.2.0",
"react-router-dom": "^7.1.1",
"vite-plugin-pwa": "^0.21.1"
},
@@ -1670,7 +1673,6 @@
},
"node_modules/@clack/prompts/node_modules/is-unicode-supported": {
"version": "1.3.0",
- "extraneous": true,
"inBundle": true,
"license": "MIT",
"engines": {
@@ -1920,6 +1922,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1936,6 +1939,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1952,6 +1956,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1968,6 +1973,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1984,6 +1990,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2000,6 +2007,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2016,6 +2024,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2032,6 +2041,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2048,6 +2058,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2064,6 +2075,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2080,6 +2092,7 @@
"cpu": [
"ia32"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2096,6 +2109,7 @@
"cpu": [
"loong64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2112,6 +2126,7 @@
"cpu": [
"mips64el"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2128,6 +2143,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2144,6 +2160,7 @@
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2160,6 +2177,7 @@
"cpu": [
"s390x"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2176,6 +2194,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2192,6 +2211,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2208,6 +2228,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2224,6 +2245,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2240,6 +2262,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2256,6 +2279,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2272,6 +2296,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2288,6 +2313,7 @@
"cpu": [
"ia32"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2304,6 +2330,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2722,6 +2749,30 @@
"node": ">=14"
}
},
+ "node_modules/@reduxjs/toolkit": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.5.1.tgz",
+ "integrity": "sha512-UHhy3p0oUpdhnSxyDjaRDYaw8Xra75UiLbCiRozVPHjfDwNYkh0TsVm/1OmTW8Md+iDAJmYPWUKMvsMc2GtpNg==",
+ "license": "MIT",
+ "dependencies": {
+ "immer": "^10.0.3",
+ "redux": "^5.0.1",
+ "redux-thunk": "^3.1.0",
+ "reselect": "^5.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
+ "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ },
+ "react-redux": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@rollup/plugin-babel": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@@ -2874,6 +2925,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2887,6 +2939,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2900,6 +2953,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2913,6 +2967,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2926,6 +2981,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2939,6 +2995,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2952,6 +3009,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2965,6 +3023,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2978,6 +3037,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -2991,6 +3051,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3004,6 +3065,7 @@
"cpu": [
"loong64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3017,6 +3079,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3030,6 +3093,7 @@
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3043,6 +3107,7 @@
"cpu": [
"s390x"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3056,6 +3121,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3069,6 +3135,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3082,6 +3149,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3095,6 +3163,7 @@
"cpu": [
"ia32"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3108,6 +3177,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3152,7 +3222,7 @@
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
"integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.7",
@@ -3166,7 +3236,7 @@
"version": "7.6.8",
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
"integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.0.0"
@@ -3176,7 +3246,7 @@
"version": "7.4.4",
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
"integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.1.0",
@@ -3187,7 +3257,7 @@
"version": "7.20.6",
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
"integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.20.7"
@@ -3282,6 +3352,12 @@
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"license": "MIT"
},
+ "node_modules/@types/use-sync-external-store": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
+ "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
+ "license": "MIT"
+ },
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.18.2",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz",
@@ -4537,6 +4613,12 @@
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
"license": "MIT"
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -4561,6 +4643,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/axios": {
+ "version": "1.7.9",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
+ "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/babel-plugin-macros": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
@@ -5318,6 +5411,18 @@
"node": ">=0.1.90"
}
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/commander": {
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
@@ -5554,6 +5659,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -5743,6 +5857,7 @@
"version": "0.24.2",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
"integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==",
+ "dev": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -6228,6 +6343,26 @@
"tabbable": "^6.2.0"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -6254,6 +6389,20 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/form-data": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/formdata-polyfill": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
@@ -6710,6 +6859,16 @@
"node": ">= 4"
}
},
+ "node_modules/immer": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz",
+ "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -7496,6 +7655,27 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -7555,6 +7735,7 @@
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -7940,6 +8121,7 @@
"version": "8.4.49",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -8008,6 +8190,12 @@
"integrity": "sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==",
"license": "MIT"
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
+ },
"node_modules/proxy-memoize": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/proxy-memoize/-/proxy-memoize-3.0.1.tgz",
@@ -8122,6 +8310,29 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
+ "node_modules/react-redux": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz",
+ "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/use-sync-external-store": "^0.0.6",
+ "use-sync-external-store": "^1.4.0"
+ },
+ "peerDependencies": {
+ "@types/react": "^18.2.25 || ^19",
+ "react": "^18.0 || ^19",
+ "redux": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "redux": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-refresh": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
@@ -8198,6 +8409,21 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/redux": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
+ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
+ "license": "MIT"
+ },
+ "node_modules/redux-thunk": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
+ "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "redux": "^5.0.0"
+ }
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -8329,6 +8555,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/reselect": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
+ "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
+ "license": "MIT"
+ },
"node_modules/resolve": {
"version": "1.22.10",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
@@ -8713,6 +8945,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -9461,10 +9694,20 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/use-sync-external-store": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
+ "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/vite": {
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz",
"integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"esbuild": "^0.24.2",
@@ -9566,6 +9809,7 @@
"version": "4.34.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.1.tgz",
"integrity": "sha512-iYZ/+PcdLYSGfH3S+dGahlW/RWmsqDhLgj1BT9DH/xXJ0ggZN7xkdP9wipPNjjNLczI+fmMLmTB9pye+d2r4GQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.6"
@@ -10080,20 +10324,6 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"license": "ISC"
},
- "node_modules/yaml": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
- "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
- "license": "ISC",
- "optional": true,
- "peer": true,
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/package.json b/package.json
index ca92e73..aef7be3 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,8 @@
"@chakra-ui/react": "^3.2.3",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
+ "@reduxjs/toolkit": "^2.5.1",
+ "axios": "^1.7.9",
"chart.js": "^4.4.7",
"framer-motion": "^11.18.0",
"next-themes": "^0.4.4",
@@ -21,6 +23,7 @@
"react-dom": "^18.3.1",
"react-hook-form": "^7.54.2",
"react-icons": "^5.4.0",
+ "react-redux": "^9.2.0",
"react-router-dom": "^7.1.1",
"vite-plugin-pwa": "^0.21.1"
},
diff --git a/src/Contexts/GlobalStateProvider.tsx b/src/Contexts/GlobalStateProvider.tsx
index 1f2c713..9a839de 100644
--- a/src/Contexts/GlobalStateProvider.tsx
+++ b/src/Contexts/GlobalStateProvider.tsx
@@ -5,7 +5,7 @@ import GlobalStateContext from './GlobalStateContext';
const GlobalStateProvider = ({ children }:{children:ReactNode}) => {
- const [isAuthenticate, setIsAuthenticate] = useState(true);
+ const [isAuthenticate, setIsAuthenticate] = useState(false);
return (
diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx
index c479a26..4e0daa4 100644
--- a/src/Pages/Login.tsx
+++ b/src/Pages/Login.tsx
@@ -6,13 +6,17 @@ 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 { useDispatch } from "react-redux"
+import { setToken } from "../Redux/Service/authSlice"
+import axios from "axios";
interface FormValues {
mobileNumber: number
+ password: string
}
const Login = () => {
-
+ const dispatch = useDispatch()
const [isLoading, setIsLoading] = useState(false)
const context = useContext(GlobalStateContext);
if (!context) {
@@ -26,24 +30,27 @@ const Login = () => {
} = useForm()
- const onSubmit = handleSubmit((data) => {
+ const onSubmit = handleSubmit(async (data) => {
setIsLoading(true)
- if (data?.mobileNumber === 1234567890) {
- setTimeout(() => {
- setIsAuthenticate(true);
- setIsLoading(false)
- }, 3000); // 3-second delay
+ try {
+ const response = await axios.post(`${import.meta.env.VITE_API_URL}/v1/login`, {
+ mobile_number: data.mobileNumber,
+ password: data.password,
+ });
+ console.log('====================================');
+ console.log(response);
+ console.log('====================================');
+ dispatch(setToken(String(response.data["access-token"])));
- } else {
- toaster.create({
- title: `Invalid Credentials`,
- type: "error",
- })
- setIsLoading(false)
+ } catch (error) {
+ console.error("Login failed", error);
}
});
+
+
+
return (
@@ -79,7 +86,11 @@ const Login = () => {
{/* Forget password */}
- Send OTP
+
+
+ {/* Forget password */}
+
+ Login
Forgot password
diff --git a/src/Redux/Service/apiSlice.tsx b/src/Redux/Service/apiSlice.tsx
new file mode 100644
index 0000000..af6c96a
--- /dev/null
+++ b/src/Redux/Service/apiSlice.tsx
@@ -0,0 +1,55 @@
+import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
+import { BaseQueryFn, FetchArgs, FetchBaseQueryError } from "@reduxjs/toolkit/query";
+import { logout } from "./authSlice"; // Import logout action from authSlice
+import { RootState } from "../Store";
+
+const baseQuery = fetchBaseQuery({
+ baseUrl: "https://api.example.com",
+ prepareHeaders: (headers, { getState }) => {
+ const token = (getState() as RootState).auth.token; // Get token from Redux store
+ if (token) {
+ headers.set("Authorization", `Bearer ${token}`);
+ }
+ headers.set("Content-Type", "application/json");
+ return headers;
+ },
+});
+
+// ✅ Handle 401 Errors (Auto Logout)
+const baseQueryWithReauth: BaseQueryFn<
+ string | FetchArgs,
+ unknown,
+ FetchBaseQueryError
+> = async (args, api, extraOptions) => {
+ const result = await baseQuery(args, api, extraOptions);
+
+ if (result.error && result.error.status === 401) {
+ api.dispatch(logout()); // Logout user on 401 error
+ }
+
+ return result;
+};
+
+export const apiSlice = createApi({
+ reducerPath: "api",
+ baseQuery: baseQueryWithReauth, // Use enhanced baseQuery with error handling
+ endpoints: (builder) => ({
+
+
+
+ getPosts: builder.query({ query: () => "/posts" }),
+
+
+
+
+
+ }),
+});
+
+export const { useGetPostsQuery } = apiSlice;
+
+export type Post = {
+ id: number;
+ title: string;
+ body: string;
+};
diff --git a/src/Redux/Service/authSlice.tsx b/src/Redux/Service/authSlice.tsx
new file mode 100644
index 0000000..f94a531
--- /dev/null
+++ b/src/Redux/Service/authSlice.tsx
@@ -0,0 +1,27 @@
+import { createSlice, PayloadAction } from "@reduxjs/toolkit";
+
+type AuthState = {
+ token: string | null;
+};
+
+const initialState: AuthState = {
+ token: localStorage.getItem("token"), // Load token from localStorage
+};
+
+const authSlice = createSlice({
+ name: "auth",
+ initialState,
+ reducers: {
+ setToken: (state, action: PayloadAction) => {
+ state.token = action.payload;
+ localStorage.setItem("token", action.payload);
+ },
+ logout: (state) => {
+ state.token = null;
+ localStorage.removeItem("token");
+ },
+ },
+});
+
+export const { setToken, logout } = authSlice.actions;
+export default authSlice.reducer;
diff --git a/src/Redux/Store.tsx b/src/Redux/Store.tsx
new file mode 100644
index 0000000..f2d8548
--- /dev/null
+++ b/src/Redux/Store.tsx
@@ -0,0 +1,15 @@
+import { configureStore } from "@reduxjs/toolkit";
+import { apiSlice } from "./Service/apiSlice";
+import authReducer from "./Service/authSlice"
+
+export const store = configureStore({
+ reducer: {
+ [apiSlice.reducerPath]: apiSlice.reducer,
+ auth: authReducer,
+ },
+ middleware: (getDefaultMiddleware) =>
+ getDefaultMiddleware().concat(apiSlice.middleware),
+});
+
+export type RootState = ReturnType;
+export type AppDispatch = typeof store.dispatch;
diff --git a/src/main.tsx b/src/main.tsx
index d66c166..5bc746e 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,17 +1,23 @@
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
+import { Provider as ReduxProvider } from "react-redux";
import { Provider } from './components/ui/provider'
import GlobalStateProvider from './Contexts/GlobalStateProvider'
import './index.css'
+import { Theme } from '@chakra-ui/react'
+import { store } from './Redux/Store'
ReactDOM.createRoot(document.getElementById('root')!).render(
-
-
-
-
-
-
-
- ,
+
+ {/* ✅ Wrap with Redux Provider */}
+
+ {/* ✅ Wrap with Provider */}
+
+
+
+
+
+
+
)
\ No newline at end of file
From b9a902507ec979345a465c8bf6ed0d08d09da2bd Mon Sep 17 00:00:00 2001
From: "Siddhesh.More"
Date: Mon, 10 Feb 2025 12:06:34 +0530
Subject: [PATCH 4/6] update warnings
---
src/Pages/Dashboard/Dashboard.tsx | 23 ++++++++++-------------
src/Pages/Login.tsx | 8 ++++----
src/components/MainFrame.tsx | 4 ++--
3 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/Pages/Dashboard/Dashboard.tsx b/src/Pages/Dashboard/Dashboard.tsx
index e60e41c..056fa6c 100644
--- a/src/Pages/Dashboard/Dashboard.tsx
+++ b/src/Pages/Dashboard/Dashboard.tsx
@@ -3,32 +3,29 @@ import {
createListCollection,
Heading,
HStack,
- Stack,
Status,
Tabs,
Text,
} from "@chakra-ui/react";
-import MainFrame from "../../components/MainFrame";
import BarChart from "../../components/Charts/BarChart";
-import {
- SelectContent,
- SelectItem,
- SelectLabel,
- SelectRoot,
- SelectTrigger,
- SelectValueText,
-} from "../../components/ui/select";
+import CircularApp from "../../components/Charts/CircularProgress";
import SemiDoughnutChart from "../../components/Charts/SemiDoughnutChart";
-import { Button } from "../../components/ui/button";
+import MainFrame from "../../components/MainFrame";
import {
AccordionItem,
AccordionItemContent,
AccordionItemTrigger,
AccordionRoot,
} from "../../components/ui/accordion";
+import { Button } from "../../components/ui/button";
+import {
+ SelectContent,
+ SelectItem,
+ SelectRoot,
+ SelectTrigger,
+ SelectValueText
+} from "../../components/ui/select";
import AgencyName from "./AgencyName";
-import CircularProgress from "../../components/Charts/CircularProgress";
-import CircularApp from "../../components/Charts/CircularProgress";
const Dashboard = () => {
const frameworks = createListCollection({
diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx
index 4e0daa4..d71bcfe 100644
--- a/src/Pages/Login.tsx
+++ b/src/Pages/Login.tsx
@@ -1,14 +1,14 @@
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, toaster } from "../components/ui/toaster"
-import { useDispatch } from "react-redux"
-import { setToken } from "../Redux/Service/authSlice"
-import axios from "axios";
+import { Toaster } from "../components/ui/toaster"
interface FormValues {
mobileNumber: number
diff --git a/src/components/MainFrame.tsx b/src/components/MainFrame.tsx
index 95160b2..575830b 100644
--- a/src/components/MainFrame.tsx
+++ b/src/components/MainFrame.tsx
@@ -1,4 +1,4 @@
-import { Box, Text, VStack } from "@chakra-ui/react"
+import { Box, VStack } from "@chakra-ui/react"
import { motion } from "framer-motion"
import React, { FC } from "react"
import { OPACITY_ON_LOAD } from "../Layouts/animations"
@@ -11,7 +11,7 @@ interface MainFrameProps {
title?: string
}
-const MainFrame: FC = ({ children, title }) => {
+const MainFrame: FC = ({ children }) => {
return (
Date: Mon, 10 Feb 2025 12:09:15 +0530
Subject: [PATCH 5/6] Working on that Fixed alingment
---
dev-dist/sw.js | 2 +-
src/Pages/ManageCMS/AboutUs/AboutUs.tsx | 2 +-
src/Pages/ManageCMS/FAQ/EditDetails.tsx | 6 +++---
src/Pages/ManageCMS/FAQ/FAQ.tsx | 2 +-
src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx | 2 +-
src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx | 2 +-
.../ManageCMS/TermsAndConditions/TermsAndConditions.tsx | 2 +-
src/Pages/ManageContact/ManageContact.tsx | 6 +++---
src/Pages/ManageGroups/EditDetailGroup.tsx | 6 +++---
src/Pages/ManageGroups/ViewManageGroup.tsx | 6 +++---
src/Pages/ManageJobs/ManageJobs.tsx | 4 ++--
src/Pages/ManageJobs/ManageJobsAdd.tsx | 6 +++---
src/Pages/ManageJobs/ViewManageJob.tsx | 6 +++---
src/Pages/ManagePost/ViewDailog.tsx | 4 ++--
src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx | 6 +++---
src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx | 6 +++---
src/Pages/MasterModule/AgencyMaster/ViewAgencyAddModel.tsx | 2 +-
src/Pages/MasterModule/AgencyMaster/ViewAgencyMaster.tsx | 6 +++---
src/Pages/MasterModule/Country/Country.tsx | 6 +++---
src/Pages/MasterModule/Country/EditCountryModel.tsx | 6 +++---
src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx | 6 +++---
src/Pages/MasterModule/JobStatus/JobStatus.tsx | 4 ++--
src/Pages/MasterModule/JobType/EditJobModel.tsx | 6 +++---
src/Pages/MasterModule/JobType/JobType.tsx | 4 ++--
src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx | 6 +++---
src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx | 4 ++--
src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx | 6 +++---
src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx | 4 ++--
src/Pages/SubAdmin/ViewSubAdmin.tsx | 6 +++---
src/components/AlertDailog.tsx | 1 -
src/components/EditSubAdmin.tsx | 6 +++---
31 files changed, 70 insertions(+), 71 deletions(-)
diff --git a/dev-dist/sw.js b/dev-dist/sw.js
index 8ae0392..9e48fdb 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.tm0o9v27ue"
+ "revision": "0.nq13s8vv818"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
diff --git a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
index a86544c..a080942 100644
--- a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
+++ b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
@@ -20,7 +20,7 @@ const AboutUs = () => {
AboutUs
-
+
diff --git a/src/Pages/ManageCMS/FAQ/EditDetails.tsx b/src/Pages/ManageCMS/FAQ/EditDetails.tsx
index a8759e9..2ea1b8d 100644
--- a/src/Pages/ManageCMS/FAQ/EditDetails.tsx
+++ b/src/Pages/ManageCMS/FAQ/EditDetails.tsx
@@ -7,9 +7,9 @@ function EditDetails() {
-
-
-
+
+
+
{/* */}
diff --git a/src/Pages/ManageCMS/FAQ/FAQ.tsx b/src/Pages/ManageCMS/FAQ/FAQ.tsx
index 44bd58d..4b833de 100644
--- a/src/Pages/ManageCMS/FAQ/FAQ.tsx
+++ b/src/Pages/ManageCMS/FAQ/FAQ.tsx
@@ -1,4 +1,4 @@
-import { Box, Button, HStack, Image, Input, Text } from "@chakra-ui/react";
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../../components/MainFrame"
import EditDetails from "./EditDetails";
import { InputGroup } from "../../../components/ui/input-group";
diff --git a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
index 26e9126..d6fa126 100644
--- a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
+++ b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
@@ -20,7 +20,7 @@ const PrivacyPolicy = () => {
Privacy Policy
-
+
diff --git a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
index 566a00e..05eacd1 100644
--- a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
+++ b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
@@ -1,6 +1,6 @@
import { FaRegEdit } from "react-icons/fa"
import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog"
-import { Field, Input, Stack, Text, Textarea } from "@chakra-ui/react"
+import { Field, Stack, Text, Textarea } from "@chakra-ui/react"
import { Button } from "../../../components/ui/button"
function PrivacyPolicyAddModel() {
diff --git a/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
index 35f1e5a..0fe385e 100644
--- a/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
+++ b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
@@ -20,7 +20,7 @@ const TermsAndConditions = () => {
Terms And Conditions
-
+
diff --git a/src/Pages/ManageContact/ManageContact.tsx b/src/Pages/ManageContact/ManageContact.tsx
index 1207bf7..e3bd9d6 100644
--- a/src/Pages/ManageContact/ManageContact.tsx
+++ b/src/Pages/ManageContact/ManageContact.tsx
@@ -1,4 +1,4 @@
-import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
+import { Box, HStack, Input, Text } from "@chakra-ui/react";
import MainFrame from "../../components/MainFrame"
import PendingRequests from "../../Pages/ManageContact/PendingRequests"
import { InputGroup } from "../../components/ui/input-group";
@@ -47,8 +47,8 @@ const ManageContact = () => {
Contact Requests
-
-
+
}
diff --git a/src/Pages/ManageGroups/EditDetailGroup.tsx b/src/Pages/ManageGroups/EditDetailGroup.tsx
index 64d8c8f..31ad9ba 100644
--- a/src/Pages/ManageGroups/EditDetailGroup.tsx
+++ b/src/Pages/ManageGroups/EditDetailGroup.tsx
@@ -9,9 +9,9 @@ function EditDetailGroups() {
-
-
-
+
+
+
{/* */}
diff --git a/src/Pages/ManageGroups/ViewManageGroup.tsx b/src/Pages/ManageGroups/ViewManageGroup.tsx
index d479bc0..720e799 100644
--- a/src/Pages/ManageGroups/ViewManageGroup.tsx
+++ b/src/Pages/ManageGroups/ViewManageGroup.tsx
@@ -10,9 +10,9 @@ function ViewManageGroup() {
-
-
-
+
+
+
{/* */}
diff --git a/src/Pages/ManageJobs/ManageJobs.tsx b/src/Pages/ManageJobs/ManageJobs.tsx
index 6de9a5c..0e2beaa 100644
--- a/src/Pages/ManageJobs/ManageJobs.tsx
+++ b/src/Pages/ManageJobs/ManageJobs.tsx
@@ -73,8 +73,8 @@ const ManageJobs = () => {
View job Posting
-
-
+
}
diff --git a/src/Pages/ManageJobs/ManageJobsAdd.tsx b/src/Pages/ManageJobs/ManageJobsAdd.tsx
index 018b2e8..4d90998 100644
--- a/src/Pages/ManageJobs/ManageJobsAdd.tsx
+++ b/src/Pages/ManageJobs/ManageJobsAdd.tsx
@@ -19,9 +19,9 @@ function ManageJobsAdd() {
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
{
Agency Master
-
-
+
}
diff --git a/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx b/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx
index 841a1ed..c075e91 100644
--- a/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx
+++ b/src/Pages/MasterModule/AgencyMaster/EditAgencyMaster.tsx
@@ -10,9 +10,9 @@ function EditAgencyMaster() {
-
-
-
+
+
+
-
-
-
+
+
+
{
Country
-
-
+
}
diff --git a/src/Pages/MasterModule/Country/EditCountryModel.tsx b/src/Pages/MasterModule/Country/EditCountryModel.tsx
index c9da0c4..a26501e 100644
--- a/src/Pages/MasterModule/Country/EditCountryModel.tsx
+++ b/src/Pages/MasterModule/Country/EditCountryModel.tsx
@@ -15,9 +15,9 @@ function EditCountryModel() {
{/*
*/}
-
-
-
+
+
+
diff --git a/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx b/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx
index 5b0e081..7efe0a1 100644
--- a/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx
+++ b/src/Pages/MasterModule/JobStatus/EditJobStatusModel.tsx
@@ -15,9 +15,9 @@ function EditJobStatusModel() {
{/*
*/}
-
-
-
+
+
+
diff --git a/src/Pages/MasterModule/JobStatus/JobStatus.tsx b/src/Pages/MasterModule/JobStatus/JobStatus.tsx
index 95d83ff..409dfc1 100644
--- a/src/Pages/MasterModule/JobStatus/JobStatus.tsx
+++ b/src/Pages/MasterModule/JobStatus/JobStatus.tsx
@@ -49,8 +49,8 @@ const JobStatus = () => {
Job Status
-
-
+
}
diff --git a/src/Pages/MasterModule/JobType/EditJobModel.tsx b/src/Pages/MasterModule/JobType/EditJobModel.tsx
index 6a8021c..86938b0 100644
--- a/src/Pages/MasterModule/JobType/EditJobModel.tsx
+++ b/src/Pages/MasterModule/JobType/EditJobModel.tsx
@@ -16,9 +16,9 @@ function EditJobeModel() {
{/*
*/}
-
-
-
+
+
+
diff --git a/src/Pages/MasterModule/JobType/JobType.tsx b/src/Pages/MasterModule/JobType/JobType.tsx
index ba43fba..353387f 100644
--- a/src/Pages/MasterModule/JobType/JobType.tsx
+++ b/src/Pages/MasterModule/JobType/JobType.tsx
@@ -49,8 +49,8 @@ const JobType = () => {
Job Type
-
-
+
}
diff --git a/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx b/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx
index 7e508c3..a96fffd 100644
--- a/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx
+++ b/src/Pages/MasterModule/TemplateMaster/EditTemplateModel.tsx
@@ -30,9 +30,9 @@ function EditTemplateModel() {
{/*
*/}
-
-
-
+
+
+
diff --git a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
index 7764629..de0a4d3 100644
--- a/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
+++ b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
@@ -62,8 +62,8 @@ const TemplateMaster = () => {
Template Master
-
-
+
}
diff --git a/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx b/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx
index b4fcde9..ec0defb 100644
--- a/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx
+++ b/src/Pages/MasterModule/WorkspaceMode/EditWorkModel.tsx
@@ -15,9 +15,9 @@ function EditWorkModel() {
{/*
*/}
-
-
-
+
+
+
diff --git a/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
index a236b90..c5a2a21 100644
--- a/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
+++ b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
@@ -49,8 +49,8 @@ const WorkspaceMode = () => {
Workspace Mode
-
-
+
}
diff --git a/src/Pages/SubAdmin/ViewSubAdmin.tsx b/src/Pages/SubAdmin/ViewSubAdmin.tsx
index d3f45b8..87f49a4 100644
--- a/src/Pages/SubAdmin/ViewSubAdmin.tsx
+++ b/src/Pages/SubAdmin/ViewSubAdmin.tsx
@@ -8,9 +8,9 @@ function ViewSubAdmin() {
-
-
-
+
+
+
{/* */}
diff --git a/src/components/AlertDailog.tsx b/src/components/AlertDailog.tsx
index 0202dd6..afbad58 100644
--- a/src/components/AlertDailog.tsx
+++ b/src/components/AlertDailog.tsx
@@ -25,7 +25,6 @@ const AlertDailog: React.FC = ({
onConfirm,
alertText,
alertCaption,
- alertIcon,
AltertTiggerIcon,
button,
iconColor,
diff --git a/src/components/EditSubAdmin.tsx b/src/components/EditSubAdmin.tsx
index 767022d..73ad646 100644
--- a/src/components/EditSubAdmin.tsx
+++ b/src/components/EditSubAdmin.tsx
@@ -8,9 +8,9 @@ function EditSubAdmin() {
-
-
-
+
+
+
{/* */}
From d56678786b6b996532030c1869d723726e83e2ce Mon Sep 17 00:00:00 2001
From: "Siddhesh.More"
Date: Mon, 10 Feb 2025 12:27:51 +0530
Subject: [PATCH 6/6] update api
---
.env | 4 +++-
src/Pages/Login.tsx | 42 ++++++++++++++++++++++++----------
src/Redux/Service/apiSlice.tsx | 4 ++--
3 files changed, 35 insertions(+), 15 deletions(-)
diff --git a/.env b/.env
index 905ee5e..90e2eef 100644
--- a/.env
+++ b/.env
@@ -1,2 +1,4 @@
-VITE_API_URL=https://ssa.betadelivery.com/apia
+VITE_API_URL=https://ssa.betadelivery.com/apia/v1
+VITE_USER_NAME="Admin"
+VITE_PASSWORD="71%@L%es^bUX94`J9XT*%4&^%tUU^%Q^ffgt"
VITE_APP_NAME=MyViteApp
\ No newline at end of file
diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx
index d71bcfe..b8d4a68 100644
--- a/src/Pages/Login.tsx
+++ b/src/Pages/Login.tsx
@@ -29,25 +29,43 @@ const Login = () => {
formState: { errors },
} = useForm()
-
const onSubmit = handleSubmit(async (data) => {
- setIsLoading(true)
+ 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 basicAuth = btoa(`${username}:${password}`); // Encode to Base64
+
try {
- const response = await axios.post(`${import.meta.env.VITE_API_URL}/v1/login`, {
- mobile_number: data.mobileNumber,
- password: data.password,
- });
- console.log('====================================');
+ const response = await axios.post(
+ `${import.meta.env.VITE_API_URL}/v1/login`,
+ {
+ mobile_number: data.mobileNumber,
+ password: data.password,
+ },
+ {
+ headers: {
+ Authorization: `Basic ${basicAuth}`,
+ "Content-Type": "application/json",
+ },
+ }
+ );
+
+ console.log("====================================");
console.log(response);
- console.log('====================================');
+ console.log("====================================");
dispatch(setToken(String(response.data["access-token"])));
-
} catch (error) {
- console.error("Login failed", error);
+ if (error) {
+
+ console.error("Login failed", error);
+ setIsLoading(false)
+
+ }
}
});
-
-
+
diff --git a/src/Redux/Service/apiSlice.tsx b/src/Redux/Service/apiSlice.tsx
index af6c96a..cc8ae3a 100644
--- a/src/Redux/Service/apiSlice.tsx
+++ b/src/Redux/Service/apiSlice.tsx
@@ -4,7 +4,7 @@ import { logout } from "./authSlice"; // Import logout action from authSlice
import { RootState } from "../Store";
const baseQuery = fetchBaseQuery({
- baseUrl: "https://api.example.com",
+ baseUrl: `${import.meta.env.VITE_API_URL}`,
prepareHeaders: (headers, { getState }) => {
const token = (getState() as RootState).auth.token; // Get token from Redux store
if (token) {
@@ -42,7 +42,7 @@ export const apiSlice = createApi({
-
+
}),
});