diff --git a/dev-dist/sw.js b/dev-dist/sw.js index 866f8a6..013b755 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.p75md0vraj" + "revision": "0.73grfmd27h8" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/src/Pages/ManageJobs/ViewManageJob.tsx b/src/Pages/ManageJobs/ViewManageJob.tsx index 951f1ed..ed9536e 100644 --- a/src/Pages/ManageJobs/ViewManageJob.tsx +++ b/src/Pages/ManageJobs/ViewManageJob.tsx @@ -38,7 +38,7 @@ const frameworks = createListCollection({ ], }); function ViewManageJob() { - const [trigger, { data }] = useLazyViewJobsQuery(); + const [ data ] = useLazyViewJobsQuery(); console.log(data); @@ -46,7 +46,7 @@ function ViewManageJob() { // trigger(id); // }; - const viewJobs = data; + // const viewJobs = data; console.log(); diff --git a/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx b/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx index 2548e24..87409d7 100644 --- a/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx +++ b/src/Pages/ManageUsers/DeactivatedAccounts/DeactivatedAccounts.tsx @@ -1,12 +1,14 @@ -import { Box, HStack, Input, Text } from "@chakra-ui/react"; +import { Box, HStack, 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"; -import { useGetContactQuery } from "../../../Redux/Service/deactivated.account.service"; +// import { InputGroup } from "../../../components/ui/input-group"; +// import { LuSearch } from "react-icons/lu"; +// import { useGetContactQuery } from "../../../Redux/Service/deactivated.account.service"; import { useEffect, useState } from "react"; import { Spinner } from "../../../components/Sipnner/Spinner"; +import { useGetDeactivateUserQuery, useUserDeactivateToggleMutation } from "../../../Redux/Service/manage.user"; +import SearchComponent from "../../../components/SearchComponent"; const tableHeadRow = [ "Sr. No", @@ -17,8 +19,11 @@ const tableHeadRow = [ ]; const DeactivatedAccounts = () => { - const { data ,isLoading} = useGetContactQuery(); - const [localData, setLocalData] = useState([]); + const [currentPage, setCurrentPage] = useState(1); + const { data, isLoading, refetch } = useGetDeactivateUserQuery(currentPage); + const [localData, setLocalData] = useState([]); + const [searchTerm, setSearchTerm] = useState(""); + const [userDeactivateToggle] = useUserDeactivateToggleMutation() useEffect(() => { if (data) { @@ -26,8 +31,41 @@ const DeactivatedAccounts = () => { } }, [data]); + const handlePageChange = (page: number) => { + setCurrentPage(page); + } - const manageUser = localData?.map((agency: any, index: number) => ({ + const filteredData = localData?.filter((agency) => { + const searchLower = searchTerm.toLowerCase(); + const firstName = agency.first_name?.toLowerCase().includes(searchLower); + const lastName = agency.last_name?.toLowerCase().includes(searchLower); + // const email = agency.capital?.toLowerCase().includes(searchLower); + return firstName || lastName; + }); + + const handleToggle = async (agencyId: number, currentStatus: string) => { + const newStatus = currentStatus === '1' ? '0' : '1'; + + setLocalData((prevData) => + prevData.map((agency) => + agency.id === agencyId ? { ...agency, is_active: newStatus } : agency + ) + ); + + try { + await userDeactivateToggle({ id: agencyId, is_active: newStatus }).unwrap(); + refetch() + } catch (error) { + console.error("Error updating privacy policy:", error); + setLocalData((prevData) => + prevData.map((agency) => + agency.id === agencyId ? { ...agency, is_active: currentStatus } : agency + ) + ); + } + } + + const manageUser = filteredData?.map((agency: any, index: number) => ({ "Sr. No": index + 1, "First Name": agency?.first_name, "Last Name": agency?.last_name, @@ -38,13 +76,13 @@ const DeactivatedAccounts = () => { size={"sm"} colorPalette={"teal"} checked={agency.is_active === true} - // onChange={() => handleToggle(agency.id, agency.is_active ? "1" : "0")} + onChange={() => handleToggle(agency.id, agency.is_active ? "1" : "0")} /> ), })); - if (isLoading) { + if (isLoading) { return ( { - - } - color={"#000"} - > - - + { + setSearchTerm(value); + // setCurrentPage(1); + refetch() + }} + /> diff --git a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx index 39364a2..770bc35 100644 --- a/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx +++ b/src/Pages/ManageUsers/RegisterUsers/EditRegisterUsers.tsx @@ -1,7 +1,6 @@ // import { MdOutlineRemoveRedEye } from "react-icons/md"; -import { Field, Input, Span, Stack } from "@chakra-ui/react"; +import { Field, Input, Stack } from "@chakra-ui/react"; import { - DialogActionTrigger, DialogBody, DialogCloseTrigger, DialogContent, @@ -15,95 +14,197 @@ import { import { Button } from "../../../components/ui/button"; // import { TbEdit } from "react-icons/tb"; import Edit from "../../../components/ActionIcons/Edit"; +import { UserData, useUpdateUserMutation } from "../../../Redux/Service/manage.user"; +import { useState } from "react"; +import { Toaster, toaster } from "../../../components/ui/toaster"; + +function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => void }) { + const [isOpen, setIsOpen] = useState(false); + const [formData, setFormData] = useState({ + id: data?.id, + first_name: data?.first_name || '', + last_name: data?.last_name || '', + principal_type_xid: data?.principal_type_xid, + phone_number: data?.phone_number || '', + gender: data?.gender || '', + date_of_birth: data?.date_of_birth || '', + principal_type: data?.principal_type, + is_active: data?.is_active ?? true, + principle_language_links: data?.principle_language_links ?? [], + }); + const [updateUser] = useUpdateUserMutation(); + + const handleOpenModal = () => { + setIsOpen(true); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + if (formData.first_name === '' || formData.last_name === '' || formData.phone_number === '' || formData.gender === '' || formData.date_of_birth === '') { + toaster.create({ + title: "Error", + description: "Input fields cannot be empty", + type: "error", + }); + return; + } + + const languageData = formData?.principle_language_links.map(link => link.language_xid); + + const payload = { + id: formData?.id, + principal_type_xid: formData?.principal_type_xid, + principal_source_xid: formData?.id, + first_name: formData?.first_name, + last_name: formData?.last_name, + gender: formData?.gender, + date_of_birth: formData?.date_of_birth, + language_xid: languageData, + }; + + // console.log('payload', payload) + + try { + const response = await updateUser(payload).unwrap(); + if (response?.status === "success") { + toaster.create({ + title: "Success", + description: "Country updated successfully", + type: "success", + }); + setIsOpen(false); + refetch() + } else { + toaster.create({ + title: "Error", + description: "Failed to update Country", + type: "error", + }); + } + } catch (error) { + console.error("Error updating template:", error); + // alert("Failed to update template"); + toaster.create({ + title: "Error", + description: "Something went wrong", + type: "error", + }); + } + }; -function EditRegisterUsers() { return ( - - - + <> + setIsOpen(open)}> + + {/* - - + */} + + - - - - Edit user Accounts - - + + + + Edit user Accounts + + - - - - - First Name - - + + + + + First Name + + setFormData({ ...formData, first_name: e.target.value })} + /> - - Last Name - - + + Last Name + + setFormData({ ...formData, last_name: e.target.value })} + /> - - Gender - - + + Gender + + setFormData({ ...formData, gender: e.target.value })} + /> - - DOB - - + + DOB + + setFormData({ ...formData, date_of_birth: e.target.value })} + /> - - OTP Verified - - + + Mobile Number + + setFormData({ ...formData, phone_number: e.target.value })} + /> - + + Type Of User + + setFormData({ ...formData, principal_type: { ...formData.principal_type, principal_type_title: e.target.value } })} + /> + + {/* Language - - - - - - - - - - - + + + + + + ); } diff --git a/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx b/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx index f21de9e..b0234bb 100644 --- a/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx +++ b/src/Pages/ManageUsers/RegisterUsers/RegisterUsers.tsx @@ -116,13 +116,15 @@ const RegisterUsers = () => { "DOB": agency.date_of_birth ? new Date(agency.date_of_birth).toLocaleDateString('en-GB').replace(/\//g, '-') : 'N/A', "Type Of User": agency.principal_type?.principal_type_title || 'N/A', // "Language": agency.principle_language_links.map(lang => lang.language_name).join(', ') || 'N/A', - "Action": ( + "Action": ( - + @@ -18,13 +19,13 @@ function ViewRegisterUsers() { @@ -39,14 +40,24 @@ function ViewRegisterUsers() { First Name Last Name @@ -54,6 +65,7 @@ function ViewRegisterUsers() { @@ -61,21 +73,41 @@ function ViewRegisterUsers() { - OTP Verified + Mobile Number + Type Of User + + + + {/* Language + /> */} diff --git a/src/Pages/SubAdmin/AddModel.tsx b/src/Pages/SubAdmin/AddModel.tsx index d644cac..9192c09 100644 --- a/src/Pages/SubAdmin/AddModel.tsx +++ b/src/Pages/SubAdmin/AddModel.tsx @@ -25,7 +25,7 @@ function AddModel({ refetch }: { refetch: VoidFunction }) { const [userName, setUserName] = useState(""); const [dateOfBirth, setDateOfBirth] = useState(""); const [gender, setGender] = useState(""); - const [ setIsOpen] = useState(false); + // const [ setIsOpen] = useState(false); const handleSubmit = async () => { if ( @@ -65,7 +65,7 @@ function AddModel({ refetch }: { refetch: VoidFunction }) { type: "success", }); refetch(); - setIsOpen(false); + // setIsOpen(false); setFirstName(""); setLastName(""); setUserName(""); diff --git a/src/Pages/SubAdmin/SubAdmin.tsx b/src/Pages/SubAdmin/SubAdmin.tsx index cfa7eeb..924fb51 100644 --- a/src/Pages/SubAdmin/SubAdmin.tsx +++ b/src/Pages/SubAdmin/SubAdmin.tsx @@ -171,7 +171,7 @@ const SubAdmin = () => { /> {/* */} - + ({ - createCountryPost: builder.mutation>({ + createUser: builder.mutation>({ query: (data) => ({ url: "/country-add", method: "POST", @@ -67,13 +75,13 @@ export const registerUser = createApi({ query: (page = 1) => `/manage-user-list?page=${page}`, }), - getCountryMasterEdit: builder.query({ - query: (id) => `/country-edit/${id}`, + getDeactivateUser: builder.query({ + query: (page = 1) => `/manage-user-deactivate-list?page=${page}`, }), - updateCountry: builder.mutation({ + updateUser: builder.mutation({ query: (updatedData) => ({ - url: "/country-update", + url: "/manage-user-update", method: "POST", body: updatedData, }), @@ -87,6 +95,14 @@ export const registerUser = createApi({ }), }), + userDeactivateToggle: builder.mutation({ + query: ({ id, is_active }) => ({ + url: `/manage-user-deactivate-status`, + method: "POST", + body: { id, is_active }, + }), + }), + // deleteFaqPost: builder.mutation<{ status: string; message: string }, { id: number }>({ // query: ({ id }) => ({ // url: `/faq-delete`, @@ -100,9 +116,10 @@ export const registerUser = createApi({ export const { useGetManageUserQuery, - useGetCountryMasterEditQuery, - useCreateCountryPostMutation, - useUpdateCountryMutation, + useCreateUserMutation, + useUpdateUserMutation, useUserToggleMutation, + useGetDeactivateUserQuery, + useUserDeactivateToggleMutation, // useDeleteFaqPostMutation } = registerUser; \ No newline at end of file