diff --git a/dev-dist/sw.js b/dev-dist/sw.js
index b003956..5c0a65a 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.jlpvaemfr1"
+ "revision": "0.4goaulr6o2o"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
diff --git a/src/App.tsx b/src/App.tsx
index fa6affb..0ba553c 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,24 +1,44 @@
-import { useContext } from 'react';
+import { useContext } from "react";
import { Route, BrowserRouter as Router, Routes } from "react-router-dom";
-import GlobalStateContext from './Contexts/GlobalStateContext';
-import DefaultLayout from './Layouts/DefaultLayout';
-import Login from './Pages/Login';
-import { RouteLink } from './Routes/Routes';
+import GlobalStateContext from "./Contexts/GlobalStateContext";
+import DefaultLayout from "./Layouts/DefaultLayout";
+import Login from "./Pages/Login";
+import { RouteLink } from "./Routes/Routes";
+import LoginOtp from "./Pages/OnBoarding/LoginOtp";
+import CreatePass from "./Pages/OnBoarding/CreatePass";
-function App() {
- const context = useContext(GlobalStateContext);
- if (!context) throw new Error('App must be used within a GlobalStateProvider');
- const { isAuthenticate } = context;
+function App() {
+ const context = useContext(GlobalStateContext);
+ if (!context)
+ throw new Error("App must be used within a GlobalStateProvider");
+ const { isAuthenticate } = context;
- return (
-
-
- } />
- {RouteLink.map(({ path, Component }, index) => (} />))}) : ()} />
- } />
-
-
- );
-}
+ return (
+
+
+ } />
+ } />
+ }/>
+
+
+ {RouteLink.map(({ path, Component }, index) => (
+ } />
+ ))}
+
+
+ ) : (
+
+ )
+ }
+ />
+ } />
+
+
+ );
+}
export default App;
diff --git a/src/Constants/Constants.tsx b/src/Constants/Constants.tsx
new file mode 100644
index 0000000..b897aeb
--- /dev/null
+++ b/src/Constants/Constants.tsx
@@ -0,0 +1,19 @@
+export const getTitle = (location: string): string => {
+ const titles: { [key: string]: string } = {
+ '/': 'Dashboard',
+ '/manage-user/register-user': 'Manage User',
+ '/manage-user/active-user': 'Manage User',
+ '/manage-post': 'Manage Post',
+ '/manage-sub-admin': 'Manage Sub Admin',
+ '/manage-jobs': 'Manage Jobs',
+ '/manage-contact-us': 'Manage Contact Us',
+ '/manage-cms/faq': 'Manage CMS',
+ '/manage-cms/about-us': 'Manage CMS',
+ '/manage-cms/privacy-policy': 'Manage CMS',
+ '/manage-cms/terms-and-condition': 'Manage CMS',
+ '/profile': 'My Profile',
+ };
+
+ return titles[location] || 'Page Not Found';
+ };
+
\ No newline at end of file
diff --git a/src/Layouts/DefaultLayout.tsx b/src/Layouts/DefaultLayout.tsx
index cd9428a..face04c 100644
--- a/src/Layouts/DefaultLayout.tsx
+++ b/src/Layouts/DefaultLayout.tsx
@@ -3,44 +3,199 @@ import React, { FC } from "react";
import { RiNotificationLine } from "react-icons/ri";
import { NavLink, useLocation, useNavigate } from "react-router-dom";
import { nav } from "../Routes/Nav";
-import logo from '../assets/logo.svg';
-import { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot } from "../components/ui/accordion";
+import logo from "../assets/logo.svg";
+import {
+ AccordionItem,
+ AccordionItemContent,
+ AccordionItemTrigger,
+ AccordionRoot,
+} from "../components/ui/accordion";
import { Avatar } from "../components/ui/avatar";
+import { getTitle } from "../Constants/Constants";
const DefaultLayout: FC<{ children: React.ReactNode }> = ({ children }) => {
- const navigate = useNavigate()
- const location = useLocation()
-
-
-
+ const navigate = useNavigate();
+ const location = useLocation();
+ const headerTitle = getTitle(location?.pathname);
+ console.log(location);
return (
-
-
-
-
+
+
+
-
- {nav?.map(({ title, path, Icon, type, children }, index) => type === 'single' ?
- {title} :
-
-
- navigate(path)} gap={0} style={{ cursor: 'pointer', borderRadius: '8px', padding: '5px', width: '100%', display: 'flex', alignItems: 'center', border: '1px solid #ffffff', backgroundColor:'#fff',color:'#000', fontSize: '14px', }}> {title}
- {children?.map(({ title, path, Icon }, index) => navigate(path)} style={{ marginTop: 6, cursor: 'pointer', borderRadius: '8px', padding: '6px', width: '100%', display: 'flex', alignItems: 'center', gap: 6, border: '1px solid #ffffff', backgroundColor:'#fff',color:'#000' }} > {title})}
-
- )}
+
+ {nav?.map(({ title, path, Icon, type, children, initPath }, index) =>
+ type === "single" ? (
+
+ {" "}
+
+ {title}
+
+
+ ) : (
+
+
+ navigate(path)}
+ gap={0}
+ style={{
+ cursor: "pointer",
+ borderRadius: "8px",
+ padding: "5px",
+ width: "100%",
+ display: "flex",
+ alignItems: "center",
+ border: "1px solid #ffffff",
+ backgroundColor: "#fff",
+ color: "#000",
+ fontSize: "14px",
+ fontWeight: "normal",
+ }}
+ >
+ {" "}
+
+
+ {title}
+
+
+ {children?.map(({ title, path, Icon }, index) => (
+ navigate(path)}
+ style={{
+ marginTop: 6,
+ cursor: "pointer",
+ borderRadius: "8px",
+ padding: "6px",
+ width: "100%",
+ display: "flex",
+ alignItems: "center",
+ gap: 6,
+ border: "1px solid #ffffff",
+ backgroundColor: "#fff",
+ color: "#000",
+ }}
+ >
+ {" "}
+
+ {title}
+
+
+ ))}
+
+
+ )
+ )}
-
-
-
- navigate('/profile')} >
-
-
- Ritesh Pandey
- ritesh.pandey@wdimails.com
-
+
+
+
+ {headerTitle}
+
+
+
+ navigate("/profile")}>
+
+
+
+ Ritesh Pandey
+
+ ritesh.pandey@wdimails.com
+
+
{children}
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
+
+
+
+ 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 d063737..a322836 100644
--- a/src/Pages/Dashboard/Dashboard.tsx
+++ b/src/Pages/Dashboard/Dashboard.tsx
@@ -1,7 +1,10 @@
+import MainFrame from "../../components/MainFrame"
const Dashboard = () => {
return (
- Dashboard
+
+
+
)
}
diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx
index ea2c5dd..5c37c55 100644
--- a/src/Pages/Login.tsx
+++ b/src/Pages/Login.tsx
@@ -1,96 +1,127 @@
-import { Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react"
-import { useContext, useState } from "react"
-import { useForm } from "react-hook-form"
-import GlobalStateContext from "../Contexts/GlobalStateContext"
-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 { Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react";
+import { useContext, useState } from "react";
+import { useForm } from "react-hook-form";
+import GlobalStateContext from "../Contexts/GlobalStateContext";
+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 { LuUser } from "react-icons/lu";
interface FormValues {
- mobileNumber: number
+ mobileNumber: number;
}
const Login = () => {
-
- const [isLoading, setIsLoading] = useState(false)
+ const [isLoading, setIsLoading] = useState(false);
const context = useContext(GlobalStateContext);
if (!context) {
- throw new Error('App must be used within a GlobalStateProvider');
+ throw new Error("App must be used within a GlobalStateProvider");
}
const { setIsAuthenticate } = context;
const {
register,
handleSubmit,
formState: { errors },
- } = useForm()
-
+ } = useForm();
const onSubmit = handleSubmit((data) => {
- setIsLoading(true)
+ setIsLoading(true);
if (data?.mobileNumber === 1234567890) {
setTimeout(() => {
setIsAuthenticate(true);
- setIsLoading(false)
+ setIsLoading(false);
}, 3000); // 3-second delay
-
} else {
toaster.create({
title: `Invalid Credentials`,
type: "error",
- })
- setIsLoading(false)
+ });
+ setIsLoading(false);
}
});
-
return (
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+ LOGIN
+
+
+
+
+
-
-
-
-
- LOGIN
-
-
-
-
- {/* Forget password */}
+ Forget password
-
+
Forgot password
-
-
- )
-}
+ );
+};
-export default Login
\ No newline at end of file
+export default Login;
diff --git a/src/Pages/ManageCMS/AboutUs/AboutUs.tsx b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
new file mode 100644
index 0000000..c16d6d9
--- /dev/null
+++ b/src/Pages/ManageCMS/AboutUs/AboutUs.tsx
@@ -0,0 +1,11 @@
+import MainFrame from '../../../components/MainFrame'
+
+const AboutUs = () => {
+ return (
+
+
+
+ )
+}
+
+export default AboutUs
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/AboutUs/AboutUsAddModel.tsx b/src/Pages/ManageCMS/AboutUs/AboutUsAddModel.tsx
new file mode 100644
index 0000000..75b9c73
--- /dev/null
+++ b/src/Pages/ManageCMS/AboutUs/AboutUsAddModel.tsx
@@ -0,0 +1,53 @@
+import { FaRegEdit } from "react-icons/fa"
+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 (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ AboutUs
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default AboutUsAddModel
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/FAQ/EditDetails.tsx b/src/Pages/ManageCMS/FAQ/EditDetails.tsx
new file mode 100644
index 0000000..a8759e9
--- /dev/null
+++ b/src/Pages/ManageCMS/FAQ/EditDetails.tsx
@@ -0,0 +1,56 @@
+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() {
+ return (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ Edit Details
+
+
+
+
+
+
+ Questions
+
+
+ Answer
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default EditDetails
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/FAQ/FAQ.tsx b/src/Pages/ManageCMS/FAQ/FAQ.tsx
new file mode 100644
index 0000000..44bd58d
--- /dev/null
+++ b/src/Pages/ManageCMS/FAQ/FAQ.tsx
@@ -0,0 +1,97 @@
+import { Box, Button, HStack, Image, Input, Text } from "@chakra-ui/react";
+import MainFrame from "../../../components/MainFrame"
+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 "./FaqAddModel";
+
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Question",
+ "Answer",
+ "Action",
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Question": "Lorem Ipsum",
+ "Answer": "Lorem Ipsum",
+ "Action": (
+
+
+
+
+
+ }
+ alertCaption="are you sure you want to delete ?"
+ onConfirm={() => {
+ console.log("User deleted:", i + 1);
+ }}
+ />
+
+ ),
+ })),
+];
+
+const FAQ = () => {
+ return (
+
+
+
+
+
+ FAQs
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+export default FAQ
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/FAQ/FaqAddModel.tsx b/src/Pages/ManageCMS/FAQ/FaqAddModel.tsx
new file mode 100644
index 0000000..40b1f60
--- /dev/null
+++ b/src/Pages/ManageCMS/FAQ/FaqAddModel.tsx
@@ -0,0 +1,57 @@
+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 (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Questions
+
+
+ Answer
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default FaqAddModel
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/FAQ/FreqAskQuestion.tsx b/src/Pages/ManageCMS/FAQ/FreqAskQuestion.tsx
new file mode 100644
index 0000000..f562825
--- /dev/null
+++ b/src/Pages/ManageCMS/FAQ/FreqAskQuestion.tsx
@@ -0,0 +1,12 @@
+import { Text } from '@chakra-ui/react'
+import MainFrame from '../../../components/MainFrame'
+
+const FreqAskQuestion = () => {
+ return (
+
+ hello
+
+ )
+}
+
+export default FreqAskQuestion
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/Privacy/Privacy.tsx b/src/Pages/ManageCMS/Privacy/Privacy.tsx
new file mode 100644
index 0000000..04c2cab
--- /dev/null
+++ b/src/Pages/ManageCMS/Privacy/Privacy.tsx
@@ -0,0 +1,12 @@
+import MainFrame from "../../../components/MainFrame"
+
+
+const Privacy = () => {
+ return (
+
+
+ Privacy
+
+ )
+ }
+ export default Privacy
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
new file mode 100644
index 0000000..8a43a36
--- /dev/null
+++ b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy.tsx
@@ -0,0 +1,11 @@
+import MainFrame from '../../../components/MainFrame'
+
+const PrivacyPolicy = () => {
+ return (
+
+
+
+ )
+}
+
+export default PrivacyPolicy
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
new file mode 100644
index 0000000..566a00e
--- /dev/null
+++ b/src/Pages/ManageCMS/PrivacyPolicy/PrivacyPolicyAddModel.tsx
@@ -0,0 +1,53 @@
+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 { Button } from "../../../components/ui/button"
+
+function PrivacyPolicyAddModel() {
+ return (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ PrivacyPolicy
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default PrivacyPolicyAddModel
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/TermsAndCondition/TermsAndCondition.tsx b/src/Pages/ManageCMS/TermsAndCondition/TermsAndCondition.tsx
new file mode 100644
index 0000000..fac9972
--- /dev/null
+++ b/src/Pages/ManageCMS/TermsAndCondition/TermsAndCondition.tsx
@@ -0,0 +1,11 @@
+import MainFrame from '../../../components/MainFrame'
+
+const TermsAndCondition = () => {
+ return (
+
+
+
+ )
+}
+
+export default TermsAndCondition
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
new file mode 100644
index 0000000..35f1e5a
--- /dev/null
+++ b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditions.tsx
@@ -0,0 +1,38 @@
+import { Box, HStack, Text } from "@chakra-ui/react";
+import MainFrame from "../../../components/MainFrame"
+import { p } from "framer-motion/client";
+import TermsAndConditionsAddModel from "./TermsAndConditionsAddModel";
+
+
+const TermsAndConditions = () => {
+ return (
+
+
+
+
+
+ Terms And Conditions
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam soluta doloremque quibusdam facilis quas, unde hic eaque doloribus sed perferendis atque, eos dolores eius consectetur iure sint adipisci itaque tempora fugit quidem culpa provident possimus. Ullam, vitae in voluptatum dignissimos, quos blanditiis sequi aut repellat error eaque veritatis unde quam temporibus adipisci consectetur neque vero exercitationem dolor cum numquam maiores alias, totam minima quas. Possimus, ratione harum. Alias laboriosam nesciunt esse fugit deserunt pariatur corporis tempora quia veniam laborum aliquid enim voluptatibus asperiores minima tempore repudiandae vero quo porro, doloribus explicabo sit beatae et hic natus. Non earum nisi reiciendis?
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam soluta doloremque quibusdam facilis quas, unde hic eaque doloribus sed perferendis atque, eos dolores eius consectetur iure sint adipisci itaque tempora fugit quidem culpa provident possimus. Ullam, vitae in voluptatum dignissimos, quos blanditiis sequi aut repellat error eaque veritatis unde quam temporibus adipisci consectetur neque vero exercitationem dolor cum numquam maiores alias, totam minima quas. Possimus, ratione harum. Alias laboriosam nesciunt esse fugit deserunt pariatur corporis tempora quia veniam laborum aliquid enim voluptatibus asperiores minima tempore repudiandae vero quo porro, doloribus explicabo sit beatae et hic natus. Non earum nisi reiciendis?
+
+
+
+ )
+}
+export default TermsAndConditions
\ No newline at end of file
diff --git a/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditionsAddModel.tsx b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditionsAddModel.tsx
new file mode 100644
index 0000000..17a97fa
--- /dev/null
+++ b/src/Pages/ManageCMS/TermsAndConditions/TermsAndConditionsAddModel.tsx
@@ -0,0 +1,53 @@
+import { FaRegEdit } from "react-icons/fa"
+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 (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ TermsAndConditions
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default TermsAndConditionsAddModel
\ No newline at end of file
diff --git a/src/Pages/ManageContact/ManageContact.tsx b/src/Pages/ManageContact/ManageContact.tsx
new file mode 100644
index 0000000..1207bf7
--- /dev/null
+++ b/src/Pages/ManageContact/ManageContact.tsx
@@ -0,0 +1,83 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
+import MainFrame from "../../components/MainFrame"
+import PendingRequests from "../../Pages/ManageContact/PendingRequests"
+import { InputGroup } from "../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import DataTable from "../../components/DataTable";
+
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Email id",
+ "Name",
+ "Date",
+ "Action",
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Email id": "ABC@gmail.com",
+ "Name": "Pooja",
+ "Date": "11/02/1989",
+ "Action": (
+
+
+
+
+ ),
+ })),
+];
+
+const ManageContact = () => {
+ return (
+
+
+
+
+
+ Contact Requests
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+ )
+}
+export default ManageContact
\ No newline at end of file
diff --git a/src/Pages/ManageContact/PendingRequests.tsx b/src/Pages/ManageContact/PendingRequests.tsx
new file mode 100644
index 0000000..23d566b
--- /dev/null
+++ b/src/Pages/ManageContact/PendingRequests.tsx
@@ -0,0 +1,77 @@
+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 (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ Pending Requests
+
+
+
+
+
+ Request Type
+
+
+ Solution
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default PendingRequests
\ No newline at end of file
diff --git a/src/Pages/ManageContactUs/ManageContactUs.tsx b/src/Pages/ManageContactUs/ManageContactUs.tsx
new file mode 100644
index 0000000..f713710
--- /dev/null
+++ b/src/Pages/ManageContactUs/ManageContactUs.tsx
@@ -0,0 +1,11 @@
+import MainFrame from '../../components/MainFrame'
+
+const ManageContactUs = () => {
+ return (
+
+
+
+ )
+}
+
+export default ManageContactUs
\ No newline at end of file
diff --git a/src/Pages/ManageGroups/AddGroup.tsx b/src/Pages/ManageGroups/AddGroup.tsx
new file mode 100644
index 0000000..d5cc33a
--- /dev/null
+++ b/src/Pages/ManageGroups/AddGroup.tsx
@@ -0,0 +1,58 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Avatar, Box, Field, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { Switch } from "../../components/ui/switch";
+import { IoMdAdd } from "react-icons/io";
+function AddGroup() {
+ return (
+
+
+
+
+
+
+
+
+
+ Add
+
+
+
+
+
+
+ Group Name
+
+
+ Group Introduction
+
+
+
+
+ public/Private
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default AddGroup
\ No newline at end of file
diff --git a/src/Pages/ManageGroups/EditDetailGroup.tsx b/src/Pages/ManageGroups/EditDetailGroup.tsx
new file mode 100644
index 0000000..64d8c8f
--- /dev/null
+++ b/src/Pages/ManageGroups/EditDetailGroup.tsx
@@ -0,0 +1,85 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Avatar, Box, Field, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { Switch } from "../../components/ui/switch";
+import { FaRegEdit } from "react-icons/fa";
+import { AvatarGroup } from "../../components/ui/avatar";
+function EditDetailGroups() {
+ return (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ Edit details
+
+
+
+
+
+
+ Group Name
+
+
+ Description
+
+
+ Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +3
+
+
+
+
+ public/Private
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default EditDetailGroups
\ No newline at end of file
diff --git a/src/Pages/ManageGroups/ManageGroups.tsx b/src/Pages/ManageGroups/ManageGroups.tsx
index ae5dedc..7cb4b8f 100644
--- a/src/Pages/ManageGroups/ManageGroups.tsx
+++ b/src/Pages/ManageGroups/ManageGroups.tsx
@@ -1,11 +1,105 @@
+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 AlertDailog from "../../components/AlertDailog"
+import { RiDeleteBin5Line } from "react-icons/ri";
+import ViewManageGroup from "./ViewManageGroup"
+import EditDetailGroups from "./EditDetailGroup"
+import AddGroup from "./AddGroup"
+// import ViewSubAdmin from "./ViewSubAdmin"
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Group Name",
+ "Description",
+ "Date",
+ "Group type",
+ "Action",
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Group Name": "ABC",
+ "Description": "Lorem ipsum",
+ "Date": "12/01/1987",
+ "Group type": "Private",
+ "Action": (
+
+
+ {/* */}
+
+
+
+ {/* */}
+ }
+ alertCaption="are you sure you want to delete ?"
+ onConfirm={() => {
+ console.log("User deleted:", i + 1);
+ }}
+ />
+
+ ),
+ })),
+];
const ManageGroups = () => {
return (
-
-
+
+
+
+
+ Manage Groups
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
)
}
-
export default ManageGroups
\ No newline at end of file
diff --git a/src/Pages/ManageGroups/ViewManageGroup.tsx b/src/Pages/ManageGroups/ViewManageGroup.tsx
new file mode 100644
index 0000000..d479bc0
--- /dev/null
+++ b/src/Pages/ManageGroups/ViewManageGroup.tsx
@@ -0,0 +1,86 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Avatar, Box, Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { Checkbox } from "../../components/ui/checkbox"
+import { MdOutlineRemoveRedEye } from "react-icons/md";
+import { Switch } from "../../components/ui/switch";
+import { AvatarGroup } from "../../components/ui/avatar";
+function ViewManageGroup() {
+ return (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ View details
+
+
+
+
+
+
+ Group Name
+
+
+ Description
+
+
+ Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +3
+
+
+
+
+
+ public/Private
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ViewManageGroup
\ No newline at end of file
diff --git a/src/Pages/Support/Support.tsx b/src/Pages/ManageJobs/ManageJobs.tsx
similarity index 53%
rename from src/Pages/Support/Support.tsx
rename to src/Pages/ManageJobs/ManageJobs.tsx
index 47bd3d4..2c13107 100644
--- a/src/Pages/Support/Support.tsx
+++ b/src/Pages/ManageJobs/ManageJobs.tsx
@@ -1,11 +1,11 @@
import MainFrame from "../../components/MainFrame"
-const Support = () => {
+const ManageJobs = () => {
return (
-
-
-
+
+
)
}
-export default Support
\ No newline at end of file
+
+export default ManageJobs
\ No newline at end of file
diff --git a/src/Pages/ManageJobs/ManageJobsAdd.tsx b/src/Pages/ManageJobs/ManageJobsAdd.tsx
new file mode 100644
index 0000000..018b2e8
--- /dev/null
+++ b/src/Pages/ManageJobs/ManageJobsAdd.tsx
@@ -0,0 +1,118 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { createListCollection, Field, Input, SelectValueText, Stack } from "@chakra-ui/react"
+
+import { FaRegEdit } from "react-icons/fa"
+import { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectTrigger } from "../../components/ui/select"
+
+const frameworks = createListCollection({
+ items: [
+ { label: "React.js", value: "react" },
+ { label: "Vue.js", value: "vue" },
+ { label: "Angular", value: "angular" },
+ { label: "Svelte", value: "svelte" },
+ ],
+})
+function ManageJobsAdd() {
+ return (
+
+
+
+
+
+
+
+
+
+ Add Details
+
+
+
+
+
+ Job title
+
+
+
+
+ Workspace mode
+
+
+
+ Category
+
+
+
+ Sub-Category
+
+
+
+ Salary
+
+
+
+ Experience
+
+
+
+ Job Location
+
+
+ {/* Country Selection
+ */}
+
+ Country Selection
+
+
+
+
+ {frameworks.items.map((movie) => (
+
+ {movie.label}
+
+ ))}
+
+
+
+
+ Job type
+
+
+
+ Skills required
+
+
+
+ Job Description*
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ManageJobsAdd
\ No newline at end of file
diff --git a/src/Pages/ManageJobs/ViewManageJob.tsx b/src/Pages/ManageJobs/ViewManageJob.tsx
new file mode 100644
index 0000000..3dcf57c
--- /dev/null
+++ b/src/Pages/ManageJobs/ViewManageJob.tsx
@@ -0,0 +1,113 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { createListCollection, Field, Input, SelectValueText, Stack, } from "@chakra-ui/react"
+
+import { FaRegEdit } from "react-icons/fa"
+import { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectTrigger } from "../../components/ui/select"
+import { MdOutlineRemoveRedEye } from "react-icons/md"
+
+const frameworks = createListCollection({
+ items: [
+ { label: "React.js", value: "react" },
+ { label: "Vue.js", value: "vue" },
+ { label: "Angular", value: "angular" },
+ { label: "Svelte", value: "svelte" },
+ ],
+})
+function ViewManageJob() {
+ return (
+
+
+
+
+
+
+
+
+
+ Add Details
+
+
+
+
+
+ Job title
+
+
+ Workspace mode
+
+
+ Category
+
+
+ Sub-Category
+
+
+ Salary
+
+
+ Experience
+
+
+ Job Location
+
+
+ {/* Country Selection
+ */}
+
+ Country Selection
+
+
+
+
+ {frameworks.items.map((movie) => (
+
+ {movie.label}
+
+ ))}
+
+
+
+
+ Job type
+
+
+ Skills required
+
+
+ Job Description*
+
+
+ Upload Image
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ViewManageJob
\ No newline at end of file
diff --git a/src/Pages/ManageCommunity/ManagePost.tsx b/src/Pages/ManagePost/ManagePost.tsx
similarity index 70%
rename from src/Pages/ManageCommunity/ManagePost.tsx
rename to src/Pages/ManagePost/ManagePost.tsx
index 17f55ca..2dc46be 100644
--- a/src/Pages/ManageCommunity/ManagePost.tsx
+++ b/src/Pages/ManagePost/ManagePost.tsx
@@ -2,8 +2,8 @@ import MainFrame from "../../components/MainFrame"
const ManagePost = () => {
return (
-
-
+
+
)
}
diff --git a/src/Pages/ManagePost/ViewDailog.tsx b/src/Pages/ManagePost/ViewDailog.tsx
new file mode 100644
index 0000000..f835014
--- /dev/null
+++ b/src/Pages/ManagePost/ViewDailog.tsx
@@ -0,0 +1,51 @@
+import { MdOutlineRemoveRedEye } from "react-icons/md"
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Field, Image, Input, Stack } from "@chakra-ui/react"
+import img from "../../assets/waterfall.jpg"
+function ViewDailog() {
+ return (
+
+
+
+
+
+
+
+
+ View Details
+
+
+
+
+
+ Title
+
+
+ Subtitle
+
+
+ Description
+
+
+ Image
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ViewDailog
\ No newline at end of file
diff --git a/src/Pages/ManageSubAdmin/ManageSubAdmin.tsx b/src/Pages/ManageSubAdmin/ManageSubAdmin.tsx
new file mode 100644
index 0000000..6ffd6d5
--- /dev/null
+++ b/src/Pages/ManageSubAdmin/ManageSubAdmin.tsx
@@ -0,0 +1,11 @@
+import MainFrame from '../../components/MainFrame'
+
+const ManageSubAdmin = () => {
+ return (
+
+
+
+ )
+}
+
+export default ManageSubAdmin
\ No newline at end of file
diff --git a/src/Pages/ManageUser/DeactivatedAccounts/DeactivatedAccounts.tsx b/src/Pages/ManageUser/DeactivatedAccounts/DeactivatedAccounts.tsx
new file mode 100644
index 0000000..1b031a0
--- /dev/null
+++ b/src/Pages/ManageUser/DeactivatedAccounts/DeactivatedAccounts.tsx
@@ -0,0 +1,11 @@
+import MainFrame from '../../../components/MainFrame'
+
+const DeactivatedAccounts = () => {
+ return (
+
+
+
+ )
+}
+
+export default DeactivatedAccounts
\ No newline at end of file
diff --git a/src/Pages/ManageUser/RegisterUsers/RegisterUsers.tsx b/src/Pages/ManageUser/RegisterUsers/RegisterUsers.tsx
new file mode 100644
index 0000000..4388fbe
--- /dev/null
+++ b/src/Pages/ManageUser/RegisterUsers/RegisterUsers.tsx
@@ -0,0 +1,233 @@
+import { Box, HStack, Input, Stack, Table, 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";
+
+// Table setup
+const tableHeadRow = [
+ "Sr. No",
+ "First Name",
+ "Mobile number",
+ "Gender",
+ "DOB",
+ "Type of User",
+ "Language",
+ "Status",
+ "Action",
+];
+
+const usersData: any[] = [
+ {
+ "Sr. No": 1,
+ "First Name": "Ritesh",
+ "Mobile number": "9876543210",
+ Gender: "Male",
+ DOB: "15-01-1990",
+ "Type of User": "Admin",
+ Language: "English",
+ Status: "Active",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 2,
+ "First Name": "Anjali",
+ "Mobile number": "9123456789",
+ Gender: "Female",
+ DOB: "21-06-1995",
+ "Type of User": "Customer",
+ Language: "Hindi",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 3,
+ "First Name": "Rajesh",
+ "Mobile number": "9871234560",
+ Gender: "Male",
+ DOB: "12-12-1985",
+ "Type of User": "Vendor",
+ Language: "English",
+ Status: "Active",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 4,
+ "First Name": "Priya",
+ "Mobile number": "9988776655",
+ Gender: "Female",
+ DOB: "05-05-1998",
+ "Type of User": "Customer",
+ Language: "Tamil",
+ Status: "Active",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 5,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 6,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 7,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 5,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 6,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 7,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 8,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 9,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 10,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 11,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 12,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+ {
+ "Sr. No": 13,
+ "First Name": "Amit",
+ "Mobile number": "8899665544",
+ Gender: "Male",
+ DOB: "03-03-1992",
+ "Type of User": "Admin",
+ Language: "Gujarati",
+ Status: "Inactive",
+ Action: "Edit/Delete",
+ },
+];
+
+const RegisterUsers = () => {
+ return (
+
+
+
+ Register User
+
+
+
+ }
+ w={"100%"}
+ color={"#000"}
+ >
+
+
+
+
+
+
+
+ );
+};
+
+export default RegisterUsers;
diff --git a/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx b/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx
new file mode 100644
index 0000000..1a5a24f
--- /dev/null
+++ b/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx
@@ -0,0 +1,78 @@
+import { Box, HStack, Input, Text } from "@chakra-ui/react";
+import MainFrame from "../../../components/MainFrame";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+
+const tableHeadRow = [
+ "Sr. No",
+ "First Name",
+ "Last Name",
+ "Company name",
+ "Activate/Deactivate",
+];
+
+const manageUser: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "First Name": "Ritesh",
+ "Last Name": "akanksha@gmail.com",
+ "Company name": "9876543210",
+ "Activate/Deactivate": (
+
+
+
+ ),
+ })),
+];
+
+const DeactivatedAccounts = () => {
+ return (
+
+
+
+
+ Deactivated User Accounts
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+
+
+
+
+
+ );
+};
+
+export default DeactivatedAccounts;
diff --git a/src/Pages/ManageUsers/ManageUsers.tsx b/src/Pages/ManageUsers/ManageUsers.tsx
deleted file mode 100644
index e6080cd..0000000
--- a/src/Pages/ManageUsers/ManageUsers.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import MainFrame from "../../components/MainFrame"
-
-const ManageUsers = () => {
- return (
-
-
-
- )
-}
-
-export default ManageUsers
\ No newline at end of file
diff --git a/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx
new file mode 100644
index 0000000..bbb4ea1
--- /dev/null
+++ b/src/Pages/ManageUsers/RegisterUsers/AddRegisterUsers.tsx
@@ -0,0 +1,100 @@
+import { Field, Input, Stack } from "@chakra-ui/react";
+import {
+ DialogActionTrigger,
+ DialogBody,
+ DialogCloseTrigger,
+ DialogContent,
+ DialogFooter,
+ DialogHeader,
+ DialogRoot,
+ DialogTitle,
+ DialogTrigger,
+} from "../../../components/ui/dialog";
+import { Button } from "../../../components/ui/button";
+import { IoMdAdd } from "react-icons/io";
+
+function AddRegisterUsers() {
+ return (
+
+
+
+
+
+
+
+
+ Add User Accounts
+
+
+
+
+
+
+
+ First Name
+
+
+
+
+ Last Name
+
+
+
+
+ Gender
+
+
+
+
+ DOB
+
+
+
+
+ OTP Verified
+
+
+
+
+ Language
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default AddRegisterUsers;
diff --git a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx
new file mode 100644
index 0000000..30b934f
--- /dev/null
+++ b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx
@@ -0,0 +1,97 @@
+import { MdOutlineRemoveRedEye } from "react-icons/md";
+import { Field, Input, Stack } from "@chakra-ui/react";
+import {
+ DialogActionTrigger,
+ DialogBody,
+ DialogCloseTrigger,
+ DialogContent,
+ DialogFooter,
+ DialogHeader,
+ DialogRoot,
+ DialogTitle,
+ DialogTrigger,
+} from "../../../components/ui/dialog";
+import { BiEdit } from "react-icons/bi";
+import { Button } from "../../../components/ui/button";
+
+function EditRegisterUsers() {
+ return (
+
+
+
+
+
+
+
+
+ Edit user Accounts
+
+
+
+
+
+
+
+ First Name
+
+
+
+
+ Last Name
+
+
+
+
+ Gender
+
+
+
+
+ DOB
+
+
+
+
+ OTP Verified
+
+
+
+
+ Language
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default EditRegisterUsers;
diff --git a/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx
new file mode 100644
index 0000000..4bf7247
--- /dev/null
+++ b/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx
@@ -0,0 +1,111 @@
+import { Box, HStack, Image, Input, Text } from "@chakra-ui/react";
+import MainFrame from "../../../components/MainFrame";
+import AlertDailog from "../../../components/AlertDailog";
+import { NavLink } from "react-router-dom";
+import { RiDeleteBin5Line } from "react-icons/ri";
+import DataTable from "../../../components/DataTable";
+import { Switch } from "../../../components/ui/switch";
+import { InputGroup } from "../../../components/ui/input-group";
+import { LuSearch } from "react-icons/lu";
+import { BiEdit } from "react-icons/bi";
+import ViewRegisterUsers from "./ViewRegisterUsers";
+import EditRegisterUsers from "./EditRegisterUsers";
+import { Button } from "../../../components/ui/button";
+import { IoMdAdd } from "react-icons/io";
+import AddRegisterUsers from "./AddRegisterUsers";
+
+const tableHeadRow = [
+ "Sr. No",
+ "First Name",
+ "Mobile Number",
+ "Gender",
+ "DOB",
+ "Type Of User",
+ "Language",
+ "Activate/Deactivate",
+ "Action",
+];
+
+const registerUser: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "First Name": "Ritesh",
+ "Mobile Number": "akanksha@gmail.com",
+ "Gender": "9876543210",
+ "DOB": "Female",
+ "Type Of User": "15-01-1990",
+ "Language": "Mumbai",
+ "Activate/Deactivate": (
+
+
+
+ ),
+ "Action": (
+
+
+
+ {/* */}
+ }
+ alertCaption="Are You Sure You Want To Delete This User ?"
+ onConfirm={() => {
+ console.log("User deleted:", i + 1);
+ }}
+ />
+
+ ),
+ })),
+];
+
+const RegisterUsers = () => {
+ return (
+
+
+
+
+ Register Users
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+
+
+
+
+
+
+ );
+};
+
+export default RegisterUsers;
diff --git a/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx
new file mode 100644
index 0000000..7826ee4
--- /dev/null
+++ b/src/Pages/ManageUsers/RegisterUsers/ViewRegisterUsers.tsx
@@ -0,0 +1,92 @@
+import { MdOutlineRemoveRedEye } from "react-icons/md";
+import { Field, Input, Stack } from "@chakra-ui/react";
+import {
+ DialogBody,
+ DialogCloseTrigger,
+ DialogContent,
+ DialogHeader,
+ DialogRoot,
+ DialogTitle,
+ DialogTrigger,
+} from "../../../components/ui/dialog";
+
+function ViewRegisterUsers() {
+ return (
+
+
+
+
+
+
+
+
+ View Details
+
+
+
+
+
+
+
+ First Name
+
+
+
+
+ Last Name
+
+
+
+
+ Gender
+
+
+
+
+ DOB
+
+
+
+
+ OTP Verified
+
+
+
+
+ Language
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default ViewRegisterUsers;
diff --git a/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx b/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx
new file mode 100644
index 0000000..360b868
--- /dev/null
+++ b/src/Pages/MasterModule/AgencyMaster/AgencyMaster.tsx
@@ -0,0 +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 (
+
+
+
+
+
+ Agency Master
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+ Agency Name
+
+
+ RC No.
+
+
+ State
+
+
+ Registered Office Address
+
+
+ Website/Domain
+
+
+ GST no.
+
+
+ Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
new file mode 100644
index 0000000..d1b3d00
--- /dev/null
+++ b/src/Pages/MasterModule/Country/Country.tsx
@@ -0,0 +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
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+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
+
+
+
+
+
+
+ Country
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
new file mode 100644
index 0000000..95d83ff
--- /dev/null
+++ b/src/Pages/MasterModule/JobStatus/JobStatus.tsx
@@ -0,0 +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 (
+
+
+
+
+
+ Job Status
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+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
+
+
+
+
+
+
+ Job Status
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+ Job Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
new file mode 100644
index 0000000..ba43fba
--- /dev/null
+++ b/src/Pages/MasterModule/JobType/JobType.tsx
@@ -0,0 +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 (
+
+
+
+
+
+ Job Type
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+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
+ )}
+
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+ Template Name
+
+
+
+ Images
+
+
+
+ {images.length > 0 ? (
+ images.map((img, index) => (
+
+ ))
+ ) : (
+ // Placeholder to maintain layout
+ )}
+
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
new file mode 100644
index 0000000..7764629
--- /dev/null
+++ b/src/Pages/MasterModule/TemplateMaster/TemplateMaster.tsx
@@ -0,0 +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 (
+
+
+
+
+
+ Template Master
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
+
+
+
+
+
+
+ Workspace Mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+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
new file mode 100644
index 0000000..a236b90
--- /dev/null
+++ b/src/Pages/MasterModule/WorkspaceMode/WorkspaceMode.tsx
@@ -0,0 +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 (
+
+
+
+
+
+ Workspace Mode
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
+
+ )
+}
+export default WorkspaceMode
\ No newline at end of file
diff --git a/src/Pages/ManageCommunity/ManageCommunity.tsx b/src/Pages/MyProfile/MyProfile.tsx
similarity index 61%
rename from src/Pages/ManageCommunity/ManageCommunity.tsx
rename to src/Pages/MyProfile/MyProfile.tsx
index 9588a01..e72c329 100644
--- a/src/Pages/ManageCommunity/ManageCommunity.tsx
+++ b/src/Pages/MyProfile/MyProfile.tsx
@@ -1,10 +1,11 @@
import MainFrame from "../../components/MainFrame"
-const ManageCommunity = () => {
+const MyProfile = () => {
return (
-
+
+ MyProfile
)
}
-export default ManageCommunity
\ No newline at end of file
+export default MyProfile
\ No newline at end of file
diff --git a/src/Pages/OnBoarding/CreatePass.tsx b/src/Pages/OnBoarding/CreatePass.tsx
new file mode 100644
index 0000000..0fd60ac
--- /dev/null
+++ b/src/Pages/OnBoarding/CreatePass.tsx
@@ -0,0 +1,149 @@
+import { Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react";
+import { useContext, useState } from "react";
+import { useForm } from "react-hook-form";
+import GlobalStateContext from "../../Contexts/GlobalStateContext";
+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";
+
+interface FormValues {
+ password: string;
+ confirmPassword: string;
+}
+
+const CreatePass = () => {
+ const [isLoading, setIsLoading] = useState(false);
+ const context = useContext(GlobalStateContext);
+ if (!context) {
+ throw new Error("App must be used within a GlobalStateProvider");
+ }
+ const { setIsAuthenticate } = context;
+ const {
+ register,
+ handleSubmit,
+ formState: { errors },
+ } = useForm();
+
+ const onSubmit = handleSubmit((data) => {
+ setIsLoading(true);
+ if (data?.password === "password123") {
+ setTimeout(() => {
+ setIsAuthenticate(true);
+ setIsLoading(false);
+ }, 3000);
+ } else {
+ toaster.create({
+ title: `Invalid Credentials`,
+ type: "error",
+ });
+ setIsLoading(false);
+ }
+ });
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create a password
+
+
+
+
+
+
+
+
+ value === getValues("password") || "Passwords do not match",
+ })}
+ placeholder="Confirm your password"
+ />
+
+
+
+ Forgot password
+
+
+
+
+
+
+ );
+};
+
+export default CreatePass;
diff --git a/src/Pages/OnBoarding/LoginOtp.tsx b/src/Pages/OnBoarding/LoginOtp.tsx
new file mode 100644
index 0000000..b5c9b7e
--- /dev/null
+++ b/src/Pages/OnBoarding/LoginOtp.tsx
@@ -0,0 +1,142 @@
+import { Center, HStack, Image, Input, Text, VStack } from "@chakra-ui/react";
+import { useContext, useState } from "react";
+import { useForm } from "react-hook-form";
+import GlobalStateContext from "../../Contexts/GlobalStateContext";
+import logo from "../../assets/logo.svg";
+import uiEdit from "../../assets/icons/edit.png";
+import { Button } from "../../components/ui/button";
+import { Field } from "../../components/ui/field";
+import { Toaster, toaster } from "../../components/ui/toaster";
+import { PinInput } from "../../components/ui/pin-input";
+
+interface FormValues {
+ mobileNumber: number;
+}
+
+const LoginOtp = () => {
+ const [isLoading, setIsLoading] = useState(false);
+ const context = useContext(GlobalStateContext);
+ if (!context) {
+ throw new Error("App must be used within a GlobalStateProvider");
+ }
+ const { setIsAuthenticate } = context;
+ const {
+ register,
+ handleSubmit,
+ formState: { errors },
+ } = useForm();
+
+ const onSubmit = handleSubmit((data) => {
+ setIsLoading(true);
+ if (data?.mobileNumber === 1234567890) {
+ setTimeout(() => {
+ setIsAuthenticate(true);
+ setIsLoading(false);
+ }, 3000); // 3-second delay
+ } else {
+ toaster.create({
+ title: `Invalid Credentials`,
+ type: "error",
+ });
+ setIsLoading(false);
+ }
+ });
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enter otp
+
+
+ OTP has been send to your E-mail Address
+
+
+
+
+ 9619565889
+
+
+
+
+
+
+ Resend OTP
+
+
+
+ Forgot password
+
+
+
+
+
+
+ );
+};
+
+export default LoginOtp;
diff --git a/src/Pages/Profile/ChangePassword.tsx b/src/Pages/Profile/ChangePassword.tsx
new file mode 100644
index 0000000..fee0a39
--- /dev/null
+++ b/src/Pages/Profile/ChangePassword.tsx
@@ -0,0 +1,58 @@
+
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { FaRegEdit } from "react-icons/fa";
+import { Button } from "../../components/ui/button";
+import EnterPassword from "./EnterPassword";
+function Changepassword() {
+ return (
+
+
+
+
+
+
+
+
+
+ CHANGE PASSWORD
+
+
+
+
+
+ New password
+
+
+ Confirm password
+
+
+
+
+
+ {/* */}
+
+
+
+ {/* */}
+
+
+
+ )
+}
+
+export default Changepassword
\ No newline at end of file
diff --git a/src/Pages/Profile/EnterOTP.tsx b/src/Pages/Profile/EnterOTP.tsx
new file mode 100644
index 0000000..1e07d2c
--- /dev/null
+++ b/src/Pages/Profile/EnterOTP.tsx
@@ -0,0 +1,109 @@
+import { DialogBody, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Box, Input, Stack, Text } from "@chakra-ui/react"
+import { Button } from "../../components/ui/button";
+import { useState } from "react";
+import { BiSolidEdit } from "react-icons/bi";
+
+function EnterOTP() {
+ const [otp, setOtp] = useState(["", "", "", ""]);
+
+ // Handle change for OTP inputs
+ const handleChange = (e: React.ChangeEvent, index: number): void => {
+ const value = e.target.value;
+
+ // Prevent non-numeric input
+ if (/[^0-9]/.test(value)) return;
+
+ // Update the OTP state with the new value
+ const newOtp = [...otp];
+ newOtp[index] = value;
+ setOtp(newOtp);
+
+ // Move focus to the next input automatically
+ if (value && index < otp.length - 1) {
+ const nextInput = document.getElementById(`otp-input-${index + 1}`) as HTMLInputElement;
+ if (nextInput) nextInput.focus();
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+ ENTER OTP
+
+
+
+ OTP has been send to your E-mail Address
+
+
+ 9619565889
+
+
+
+
+
+ {/* 4 OTP Inputs */}
+ {otp.map((digit, index) => (
+ handleChange(e, index)}
+ maxLength={1} // Only allows 1 character per input
+ />
+ ))}
+
+
+
+ Resend OTP
+
+
+
+
+
+
+
+
+ {/* */}
+
+
+
+ )
+}
+
+export default EnterOTP
\ No newline at end of file
diff --git a/src/Pages/Profile/EnterPassword.tsx b/src/Pages/Profile/EnterPassword.tsx
new file mode 100644
index 0000000..18eb230
--- /dev/null
+++ b/src/Pages/Profile/EnterPassword.tsx
@@ -0,0 +1,55 @@
+
+import { DialogBody, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Field, Input, Stack } from "@chakra-ui/react"
+import { Button } from "../../components/ui/button";
+import EnterOTP from "./EnterOTP";
+function EnterPassword() {
+ return (
+
+
+
+
+
+
+
+
+
+ ENTER PASSWORD
+
+
+
+
+
+ Password
+
+
+
+
+
+
+ {/* */}
+
+
+
+ {/* */}
+
+
+
+ )
+}
+
+export default EnterPassword
\ No newline at end of file
diff --git a/src/Pages/Reporting/Reporting.tsx b/src/Pages/Reporting/Reporting.tsx
deleted file mode 100644
index 7f0e7c3..0000000
--- a/src/Pages/Reporting/Reporting.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import MainFrame from "../../components/MainFrame"
-
-const Reporting = () => {
- return (
-
-
-
-
- )
-}
-export default Reporting
\ No newline at end of file
diff --git a/src/Pages/SubAdmin/AddModel.tsx b/src/Pages/SubAdmin/AddModel.tsx
new file mode 100644
index 0000000..403549b
--- /dev/null
+++ b/src/Pages/SubAdmin/AddModel.tsx
@@ -0,0 +1,80 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { IoMdAdd } from "react-icons/io"
+import { Checkbox } from "../../components/ui/checkbox"
+
+function AddModel() {
+ return (
+
+
+
+ {/* */}
+
+
+
+
+
+
+ Add Sub Admin Account
+
+
+
+
+
+
+ First Name
+
+
+ Last Name
+
+
+ DOB
+
+
+ Gender
+
+ Permissions
+
+
+ Dashboard
+ Manage contact us
+ manage User
+ Manage CMS
+ Manage Post
+ Manage Reports
+ manage Sub-Admin
+ My profile
+ Manage Jobs
+ manage feedbacks
+ Manage community
+ Notification
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default AddModel
\ No newline at end of file
diff --git a/src/Pages/SubAdmin/SubAdmin.tsx b/src/Pages/SubAdmin/SubAdmin.tsx
index 4ed0414..4fa4c0e 100644
--- a/src/Pages/SubAdmin/SubAdmin.tsx
+++ b/src/Pages/SubAdmin/SubAdmin.tsx
@@ -1,11 +1,106 @@
+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 AlertDailog from "../../components/AlertDailog"
+import { RiDeleteBin5Line } from "react-icons/ri";
+import AddModel from "./AddModel"
+import EditSubAdmin from "../../components/EditSubAdmin"
+import ViewSubAdmin from "./ViewSubAdmin"
+
+// table data
+
+const tableHeadRow = [
+ "Sr. No",
+ "Id",
+ "First Name",
+ "last Name",
+ "DOB",
+ "Gender",
+ "Action",
+];
+
+const managepost: any[] = [
+ ...Array.from({ length: 12 }, (_, i) => ({
+ "Sr. No": i + 1,
+ "Id": 12565,
+ "First Name": "Kamlesh",
+ "last Name": "Pandey",
+ "DOB": "12/01/1987",
+ "Gender": "Male",
+ "Action": (
+
+
+ {/* */}
+ {/* */}
+
+
+
+ {/* */}
+ }
+ alertCaption="are you sure you want to delete ?"
+ onConfirm={() => {
+ console.log("User deleted:", i + 1);
+ }}
+ />
+
+ ),
+ })),
+];
const SubAdmin = () => {
return (
-
-
-
+
+
+
+
+ {/* Manage Post */}
+
+
+
+
+ }
+ color={"#000"}
+ >
+
+
+ {/* */}
+
+
+
+
+
)
}
export default SubAdmin
\ No newline at end of file
diff --git a/src/Pages/SubAdmin/ViewSubAdmin.tsx b/src/Pages/SubAdmin/ViewSubAdmin.tsx
new file mode 100644
index 0000000..d3f45b8
--- /dev/null
+++ b/src/Pages/SubAdmin/ViewSubAdmin.tsx
@@ -0,0 +1,82 @@
+import { Button } from "../../components/ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../components/ui/dialog"
+import { Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { Checkbox } from "../../components/ui/checkbox"
+import { MdOutlineRemoveRedEye } from "react-icons/md";
+function ViewSubAdmin() {
+ return (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ View Sub Admin Account
+
+
+
+
+
+
+ First Name
+
+
+ Last Name
+
+
+ ID
+
+
+ DOB
+
+
+ Gender
+
+ Permissions
+
+
+ Dashboard
+ Manage contact us
+ manage User
+ Manage CMS
+ Manage Post
+ Manage Reports
+ manage Sub-Admin
+ My profile
+ Manage Jobs
+ manage feedbacks
+ Manage community
+ Notification
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default ViewSubAdmin
\ No newline at end of file
diff --git a/src/Routes/Nav.ts b/src/Routes/Nav.ts
index f225b1a..5c3852d 100644
--- a/src/Routes/Nav.ts
+++ b/src/Routes/Nav.ts
@@ -1,10 +1,11 @@
-import { LiaUsersSolid } from "react-icons/lia";
-import { LuBellDot } from "react-icons/lu";
-import { MdOutlineSupportAgent, MdPostAdd } from "react-icons/md";
+import { CgWorkAlt } from "react-icons/cg";
import { GoDotFill } from "react-icons/go";
-
-import { TbFileSettings, TbLayoutDashboard, TbReport, TbUsers, TbUsersGroup } from "react-icons/tb";
+import { PiHeadphonesBold } from "react-icons/pi";
import { RiUserSettingsLine } from "react-icons/ri";
+import { TbEdit, TbLayoutDashboard } from "react-icons/tb";
+import { TiDocumentText, TiUserAddOutline, TiUserOutline } from "react-icons/ti";
+
+
export const nav = [
@@ -16,62 +17,82 @@ export const nav = [
},
{
title: "Manage Users",
- path: "/manage-user",
- Icon: TbUsers,
- type:'single'
- },
- {
- title: "Manage Groups",
- path: "/manage-groups",
- Icon: TbUsersGroup,
- type:'single'
- },
- {
- title: "Community",
- path: "/manage-community",
- Icon: LiaUsersSolid,
+ path: "/manage-user/register-user",
+ initPath:'/manage-user',
+ Icon: TiUserOutline,
type:'multiple',
children: [
{
- title: "Manage Community",
- path: "/manage-community",
+ title: "Register Users",
+ path: "/manage-user/register-user",
Icon: GoDotFill,
},
{
- title: "Manage Post",
- path: "/manage-post",
+ title: "Deactivated Accounts",
+ path: "/manage-user/deactivate-accounts",
Icon: GoDotFill,
},
],
},
{
- title: "Support",
- path: "/support",
- Icon: MdOutlineSupportAgent,
+ title: "Manage Post",
+ path: "/manage-post",
+ Icon: TbEdit,
type:'single'
},
{
- title: "Sub-Admin",
- path: "/sub-admin",
+ title: "Manage Sub-Admin",
+ path: "/manage-sub-admin",
+ Icon: TiUserAddOutline,
+ type:'single'
+ },
+ {
+ title: "Manage Jobs",
+ path: "/manage-jobs",
+ Icon: CgWorkAlt,
+ type:'single'
+ },
+ {
+ title: "Manage Contact Us",
+ path: "/manage-contact-us",
+ Icon: PiHeadphonesBold,
+ type:'single'
+ },
+
+ {
+ title: "Manage CMS",
+ initPath:'/manage-cms',
+ path: "/manage-cms/faq",
+ Icon: TiDocumentText,
+ type:'multiple',
+ children: [
+ {
+ title: "FAQ",
+ path: "/manage-cms/faq",
+ Icon: GoDotFill,
+ },
+ {
+ title: "About Us",
+ path: "/manage-cms/about-us",
+ Icon: GoDotFill,
+ },
+ {
+ title: "Privacy Policy",
+ path: "/manage-cms/privacy-policy",
+ Icon: GoDotFill,
+ },
+ {
+ title: "Terms And Conditions",
+ path: "/manage-cms/terms-and-condition",
+ Icon: GoDotFill,
+ },
+ ],
+ },
+ {
+ title: "My Profile",
+ path: "/profile",
Icon: RiUserSettingsLine,
type:'single'
},
- {
- title: "Reporting",
- path: "/reporting",
- Icon: TbReport,
- type:'single'
- },
- {
- title: "CMS",
- path: "/cms",
- Icon: TbFileSettings,
- type:'single'
- },
- {
- title: "Manage Notifications",
- path: "/manage-notification",
- Icon: LuBellDot,
- type:'single'
- }
+
];
\ No newline at end of file
diff --git a/src/Routes/Routes.ts b/src/Routes/Routes.ts
index b58d3ec..6157151 100644
--- a/src/Routes/Routes.ts
+++ b/src/Routes/Routes.ts
@@ -1,24 +1,55 @@
-import CMS from "../Pages/CMS/CMS";
import Dashboard from "../Pages/Dashboard/Dashboard";
-import ManageCommunity from "../Pages/ManageCommunity/ManageCommunity";
-import ManagePost from "../Pages/ManageCommunity/ManagePost";
-import ManageGroups from "../Pages/ManageGroups/ManageGroups";
-import ManageUsers from "../Pages/ManageUsers/ManageUsers";
+import AboutUs from "../Pages/ManageCMS/AboutUs/AboutUs";
+import FreqAskQuestion from "../Pages/ManageCMS/FAQ/FreqAskQuestion";
+import PrivacyPolicy from "../Pages/ManageCMS/PrivacyPolicy/PrivacyPolicy";
+import ManageContactUs from "../Pages/ManageContactUs/ManageContactUs";
+import ManageJobs from "../Pages/ManageJobs/ManageJobs";
+import ManagePost from "../Pages/ManagePost/ManagePost";
+import ManageSubAdmin from "../Pages/ManageSubAdmin/ManageSubAdmin";
+import DeactivatedAccounts from "../Pages/ManageUser/DeactivatedAccounts/DeactivatedAccounts";
+import RegisterUsers from "../Pages/ManageUser/RegisterUsers/RegisterUsers";
import Profile from "../Pages/Profile/Profile";
-import Reporting from "../Pages/Reporting/Reporting";
-import SubAdmin from "../Pages/SubAdmin/SubAdmin";
-import Support from "../Pages/Support/Support";
export const RouteLink = [
{ path: "/", Component: Dashboard },
- { path: "/manage-user", Component: ManageUsers },
- { path: "/manage-groups", Component: ManageGroups },
- { path: "/manage-community", Component: ManageCommunity},
- { path: "/manage-post", Component: ManagePost},
- { path: "/support", Component: Support},
- { path: "/sub-admin", Component: SubAdmin},
- { path: "/reporting", Component: Reporting},
- { path: "/cms", Component: CMS},
- { path: "/manage-notification", Component: CMS},
+ { path: "/manage-user/register-user", Component: RegisterUsers },
+ { path: "/manage-user/deactivate-accounts", Component: DeactivatedAccounts },
+ { path: "/manage-post", Component: ManagePost },
+ { path: "/manage-sub-admin", Component: ManageSubAdmin },
+ { path: "/manage-jobs", Component: ManageJobs },
+ { path: "/manage-contact-us", Component: ManageContactUs },
+ { path: "/manage-cms/faq", Component: FreqAskQuestion },
+
+
+
+ { path: "/manage-cms/about-us", Component: AboutUs },
+
+
+
+ { path: "/manage-cms/privacy-policy", Component: PrivacyPolicy },
+
+
+ { path: "/manage-cms/terms-and-condition", Component: PrivacyPolicy },
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{ path: "/profile", Component: Profile},
]
\ No newline at end of file
diff --git a/src/assets/Template_img.png b/src/assets/Template_img.png
new file mode 100644
index 0000000..2ea7aab
Binary files /dev/null and b/src/assets/Template_img.png differ
diff --git a/src/assets/deleteIcon.png b/src/assets/deleteIcon.png
new file mode 100644
index 0000000..b3b827d
Binary files /dev/null and b/src/assets/deleteIcon.png differ
diff --git a/src/assets/icons/edit.png b/src/assets/icons/edit.png
new file mode 100644
index 0000000..2aeaad0
Binary files /dev/null and b/src/assets/icons/edit.png differ
diff --git a/src/assets/waterfall.jpg b/src/assets/waterfall.jpg
new file mode 100644
index 0000000..898a841
Binary files /dev/null and b/src/assets/waterfall.jpg differ
diff --git a/src/components/AlertDailog.tsx b/src/components/AlertDailog.tsx
new file mode 100644
index 0000000..0202dd6
--- /dev/null
+++ b/src/components/AlertDailog.tsx
@@ -0,0 +1,128 @@
+import React from "react";
+
+import { DialogBody, HStack, Icon, Image, Text } from "@chakra-ui/react";
+import { Button } from "./ui/button";
+import {
+ DialogActionTrigger,
+ DialogCloseTrigger,
+ DialogContent,
+ DialogRoot,
+ DialogTrigger,
+} from "./ui/dialog";
+import DeleteICN from '../assets/deleteIcon.png'
+
+interface DeleteConfirmationDialogProps {
+ onConfirm?: () => void;
+ alertText?: string;
+ alertCaption?: string;
+ alertIcon?: any;
+ AltertTiggerIcon?: any;
+ button?: any;
+ iconColor?: string;
+}
+
+const AlertDailog: React.FC = ({
+ onConfirm,
+ alertText,
+ alertCaption,
+ alertIcon,
+ AltertTiggerIcon,
+ button,
+ iconColor,
+}) => {
+ return (
+
+
+ {button ? (
+ button
+ ) : (
+
+
+
+ )}
+
+
+ {/* */}
+ {/* */}
+
+ {/* */}
+
+ {/* {alertIcon && alertIcon} */}
+
+
+ {alertText}
+
+
+ {" "}
+ {alertCaption}
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default AlertDailog;
diff --git a/src/components/Charts/BarChart.tsx b/src/components/Charts/BarChart.tsx
new file mode 100644
index 0000000..011bb8b
--- /dev/null
+++ b/src/components/Charts/BarChart.tsx
@@ -0,0 +1,49 @@
+import React from "react";
+import { Bar } from "react-chartjs-2";
+import {
+ Chart as ChartJS,
+ CategoryScale,
+ LinearScale,
+ BarElement,
+ Title,
+ Tooltip,
+ Legend,
+} from "chart.js";
+import { BiBorderRadius } from "react-icons/bi";
+
+// ✅ Register the required components
+ChartJS.register(CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend);
+
+const BarChart = () => {
+ // 📊 Chart Data
+ const data = {
+ labels: ["Jan", "Jan", "Jan", "Jan", "Jan","Jan", "Jan", "Jan"],
+ datasets: [
+ {
+ label: "Sales ($)",
+ data: [1, 2, 3, 5, 4,6,5,8],
+ backgroundColor: "#6976EB", // Light blue color
+ borderColor: "#6976EB",
+ borderWidth: 1,
+ borderRadius:4
+ },
+ ],
+ };
+
+ // ⚙️ Chart Options
+ const options = {
+ responsive: true,
+ plugins: {
+ legend: { display: false },
+ title: { display: false, text: "Monthly Sales Data" },
+ },
+ };
+
+ return (
+
+
+
+ );
+};
+
+export default BarChart;
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;
diff --git a/src/components/Charts/SemiDoughnutChart.tsx b/src/components/Charts/SemiDoughnutChart.tsx
new file mode 100644
index 0000000..d643595
--- /dev/null
+++ b/src/components/Charts/SemiDoughnutChart.tsx
@@ -0,0 +1,64 @@
+import React from "react";
+import { Doughnut } from "react-chartjs-2";
+import {
+ Chart as ChartJS,
+ ArcElement,
+ Tooltip,
+ Legend,
+} from "chart.js";
+import { FaUser } from "react-icons/fa";
+
+// ✅ Register required components
+ChartJS.register(ArcElement, Tooltip, Legend);
+
+const SemiDoughnutChart = () => {
+ // 📊 Chart Data
+ const data = {
+ labels: ["Recruiter", "Customer"],
+ datasets: [
+ {
+ data: [2554, 2800], // Values
+ backgroundColor: ["#E0E0E0", "#3D5AFE"], // Grey and Blue
+ borderWidth: 0, // No border
+ cutout: "90%", // Makes it a doughnut shape
+ circumference: 270, // Semi-circle
+ rotation: 225, // Starts from the top
+
+ },
+ ],
+ };
+
+ // ⚙️ Chart Options
+ const options = {
+ responsive: true,
+ maintainAspectRatio: false,
+ plugins: {
+ legend: { display: false }, // Hide legend
+ tooltip: { enabled: true },
+ },
+ };
+
+ return (
+
+ );
+};
+
+export default SemiDoughnutChart;
diff --git a/src/components/DataTable.tsx b/src/components/DataTable.tsx
new file mode 100644
index 0000000..cb5cbbe
--- /dev/null
+++ b/src/components/DataTable.tsx
@@ -0,0 +1,35 @@
+import { Stack, Table } from "@chakra-ui/react"
+
+
+interface TableProps {
+ tableHeadRow: string[];
+ data: Record[];
+}
+
+
+
+const DataTable: React.FC = ({ tableHeadRow, data }) => {
+ return (
+
+
+
+
+ {tableHeadRow.map((item, index)=>{item})}
+
+
+
+
+ {data.map((item:any, index) => (
+
+ {tableHeadRow.map((heading)=>{item[heading]} )}
+
+ ))}
+
+
+
+
+ )
+}
+
+export default DataTable
\ No newline at end of file
diff --git a/src/components/EditSubAdmin.tsx b/src/components/EditSubAdmin.tsx
new file mode 100644
index 0000000..767022d
--- /dev/null
+++ b/src/components/EditSubAdmin.tsx
@@ -0,0 +1,79 @@
+import { Button } from "./ui/button"
+import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "./ui/dialog"
+import { Field, Grid, Heading, Input, Stack, Text } from "@chakra-ui/react"
+import { Checkbox } from "./ui/checkbox"
+import { FaRegEdit } from "react-icons/fa";
+function EditSubAdmin() {
+ return (
+
+
+
+
+ {/* */}
+
+
+
+
+
+ Edit Sub Admin Account
+
+
+
+
+
+
+ First Name
+
+ First Name
+
+ Last Name
+
+
+ DOB
+
+
+ Gender
+
+ Permissions
+
+
+
+ Dashboard
+ Manage contact us
+ manage User
+ Manage CMS
+ Manage Post
+ Manage Reports
+ manage Sub-Admin
+ My profile
+ Manage Jobs
+ manage feedbacks
+ Manage community
+ Notification
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default EditSubAdmin
\ No newline at end of file
diff --git a/src/components/MainFrame.tsx b/src/components/MainFrame.tsx
index 32c5f64..1f14aec 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,12 +11,12 @@ interface MainFrameProps {
title?: string
}
-const MainFrame: FC = ({ children, title }) => {
+const MainFrame: FC = ({ children }) => {
return (
-
+
> {}
+
+const { withContext } = createRecipeContext({ key: "button" })
+
+// Replace "a" with your framework's link component
+export const LinkButton = withContext("a")
diff --git a/src/components/ui/pagination.tsx b/src/components/ui/pagination.tsx
new file mode 100644
index 0000000..d9db678
--- /dev/null
+++ b/src/components/ui/pagination.tsx
@@ -0,0 +1,237 @@
+"use client";
+
+import type { ButtonProps, TextProps } from "@chakra-ui/react";
+import {
+ Button,
+ Pagination as ChakraPagination,
+ HStack,
+ IconButton,
+ Text,
+ createContext,
+ usePaginationContext,
+} from "@chakra-ui/react";
+import * as React from "react";
+import { HiChevronLeft, HiChevronRight } from "react-icons/hi2";
+import { LinkButton } from "./link-button";
+
+interface ButtonVariantMap {
+ current: ButtonProps["variant"];
+ default: ButtonProps["variant"];
+ ellipsis: ButtonProps["variant"];
+}
+
+type PaginationVariant = "outline" | "solid" | "subtle";
+
+interface ButtonVariantContext {
+ size: ButtonProps["size"];
+ variantMap: ButtonVariantMap;
+ getHref?: (page: number) => string;
+}
+
+const [RootPropsProvider, useRootProps] = createContext({
+ name: "RootPropsProvider",
+});
+
+export interface PaginationRootProps
+ extends Omit {
+ size?: ButtonProps["size"];
+ variant?: PaginationVariant;
+ getHref?: (page: number) => string;
+}
+
+const variantMap: Record = {
+ outline: { default: "ghost", ellipsis: "plain", current: "solid" },
+ solid: { default: "outline", ellipsis: "outline", current: "solid" },
+ subtle: { default: "ghost", ellipsis: "plain", current: "subtle" },
+};
+
+export const PaginationRoot = React.forwardRef<
+ HTMLDivElement,
+ PaginationRootProps
+>(function PaginationRoot(props, ref) {
+ const { size = "sm", variant = "outline", getHref, ...rest } = props;
+ return (
+
+
+
+ );
+});
+
+export const PaginationEllipsis = React.forwardRef<
+ HTMLDivElement,
+ ChakraPagination.EllipsisProps
+>(function PaginationEllipsis(props, ref) {
+ const { size, variantMap } = useRootProps();
+ return (
+
+
+
+ );
+});
+
+export const PaginationItem = React.forwardRef<
+ HTMLButtonElement,
+ ChakraPagination.ItemProps
+>(function PaginationItem(props, ref) {
+ const { page } = usePaginationContext();
+ const { size, variantMap, getHref } = useRootProps();
+
+ const current = page === props.value;
+ const variant = current ? variantMap.current : variantMap.default;
+
+ if (getHref) {
+ return (
+
+ {props.value}
+
+ );
+ }
+
+ return (
+
+
+
+ );
+});
+
+export const PaginationPrevTrigger = React.forwardRef<
+ HTMLButtonElement,
+ ChakraPagination.PrevTriggerProps
+>(function PaginationPrevTrigger(props, ref) {
+ const { size, variantMap, getHref } = useRootProps();
+ const { previousPage } = usePaginationContext();
+
+ if (getHref) {
+ return (
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+
+ );
+});
+
+export const PaginationNextTrigger = React.forwardRef<
+ HTMLButtonElement,
+ ChakraPagination.NextTriggerProps
+>(function PaginationNextTrigger(props, ref) {
+ const { size, variantMap, getHref } = useRootProps();
+ const { nextPage } = usePaginationContext();
+
+ if (getHref) {
+ return (
+
+ Next
+
+ );
+ }
+
+ return (
+
+
+ Next
+
+
+
+ );
+});
+
+export const PaginationItems = (props: React.HTMLAttributes) => {
+ return (
+
+ {({ pages }) =>
+ pages.map((page, index) => (
+
+ ))
+ }
+
+ );
+};
+
+interface PageTextProps extends TextProps {
+ format?: "short" | "compact" | "long";
+}
+
+export const PaginationPageText = React.forwardRef<
+ HTMLParagraphElement,
+ PageTextProps
+>(function PaginationPageText(props, ref) {
+ const { format = "compact", ...rest } = props;
+ const { page, totalPages, pageRange, count } = usePaginationContext();
+ const content = React.useMemo(() => {
+ if (format === "short") return `${page} / ${totalPages}`;
+ if (format === "compact") return `${page} of ${totalPages}`;
+ return `${pageRange.start + 1} - ${Math.min(pageRange.end, count)} of ${count}`;
+ }, [format, page, totalPages, pageRange, count]);
+
+ return (
+
+ {content}
+
+ );
+});
diff --git a/src/components/ui/pin-input.tsx b/src/components/ui/pin-input.tsx
new file mode 100644
index 0000000..93e013c
--- /dev/null
+++ b/src/components/ui/pin-input.tsx
@@ -0,0 +1,27 @@
+import { PinInput as ChakraPinInput, Group } from "@chakra-ui/react"
+import * as React from "react"
+
+export interface PinInputProps extends ChakraPinInput.RootProps {
+ rootRef?: React.Ref
+ count?: number
+ inputProps?: React.InputHTMLAttributes
+ attached?: boolean
+}
+
+export const PinInput = React.forwardRef(
+ function PinInput(props, ref) {
+ const { count = 4, inputProps, rootRef, attached, ...rest } = props
+ return (
+
+
+
+
+ {Array.from({ length: count }).map((_, index) => (
+
+ ))}
+
+
+
+ )
+ },
+)
diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx
new file mode 100644
index 0000000..a677ca2
--- /dev/null
+++ b/src/components/ui/switch.tsx
@@ -0,0 +1,39 @@
+import { Switch as ChakraSwitch } from "@chakra-ui/react"
+import * as React from "react"
+
+export interface SwitchProps extends ChakraSwitch.RootProps {
+ inputProps?: React.InputHTMLAttributes
+ rootRef?: React.Ref
+ trackLabel?: { on: React.ReactNode; off: React.ReactNode }
+ thumbLabel?: { on: React.ReactNode; off: React.ReactNode }
+}
+
+export const Switch = React.forwardRef(
+ function Switch(props, ref) {
+ const { inputProps, children, rootRef, trackLabel, thumbLabel, ...rest } =
+ props
+
+ return (
+
+
+
+
+ {thumbLabel && (
+
+ {thumbLabel?.on}
+
+ )}
+
+ {trackLabel && (
+
+ {trackLabel.on}
+
+ )}
+
+ {children != null && (
+ {children}
+ )}
+
+ )
+ },
+)
diff --git a/src/index.css b/src/index.css
index 1ac4b6c..1a8109e 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,4 +1,4 @@
-*{
+body{
margin: 0;
padding: 0;
box-sizing: border-box;
@@ -21,7 +21,12 @@
/* background-color: #e2e8f01c !important; */
}
-
+.active>.css-1ic543h {
+ -webkit-transition: rotate 0.2s;
+ transition: rotate 0.2s;
+ transform-origin: center;
+ color: #fff;
+}
.linkChild:hover{
color: #02A0A0 !important;
@@ -49,70 +54,26 @@
}
-/* Sphere.css */
-
-/* ✅ Red Spheres */
-.red-sphere-1,
-.red-sphere-2,
-.red-sphere-3{
- position: absolute;
- border-radius: 50%;
- background-color: #D90B2E46;
- box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
- filter: blur(100px);
+/* Style the scrollbar */
+::-webkit-scrollbar {
+ width: 12px; /* Width of the vertical scrollbar */
+ height: 12px; /* Height of the horizontal scrollbar */
}
-/* ✅ Blue Spheres */
-.blue-sphere-1,
-.blue-sphere-2,
-.blue-sphere-3{
- position: absolute;
- border-radius: 50%;
- background-color: #009DAB46;
- box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
- filter: blur(100px);
+/* Style the scrollbar track (the background area) */
+::-webkit-scrollbar-track {
+ background-color: #f1f1f1; /* Light gray track */
+ border-radius: 10px;
}
-/* 🔧 Positioning for Spheres */
-.red-sphere-1 {
- width: 250px;
- height: 250px;
- top: 10%;
- left: 5%;
+/* Style the scrollbar thumb (the draggable part) */
+::-webkit-scrollbar-thumb {
+ background-color: #02A0A0; /* Gray color for the thumb */
+ border-radius: 10px;
+ border: 3px solid #f1f1f1; /* Border around the thumb */
}
-.blue-sphere-1 {
- width: 320px;
- height: 320px;
- top: 30%;
- right: 0%;
+/* Style the scrollbar thumb on hover */
+::-webkit-scrollbar-thumb:hover {
+ background-color: #555; /* Darker gray when hovered */
}
-
-.red-sphere-2 {
- width: 180px;
- height: 180px;
- bottom: 15%;
- left: 20%;
-}
-
-.blue-sphere-2 {
- width: 140px;
- height: 140px;
- bottom: 5%;
- right: 25%;
-}
-
-.red-sphere-3 {
- width: 480px;
- height: 480px;
- bottom: 55%;
- left: 40%;
-}
-
-.blue-sphere-3{
- width: 300px;
- height: 300px;
- bottom: 10%;
- right: 40%;
-}
-