Bugs fixes and updates

This commit is contained in:
rockyeverlast
2025-09-15 20:47:26 +05:30
parent df62dcda64
commit 8966295260
35 changed files with 274 additions and 97 deletions

View File

@@ -168,7 +168,7 @@ const Dashboard = () => {
</Box>
</Box>
<Box p={"20px"} pt={0} display={"flex"} gap={5}>
<Box w={"50%"} rounded={'lg'} bg={"#f2f2f2"} h={'100%'} p={"10px"} overflow={'auto'}>
<Box w={"50%"} rounded={'lg'} bg={"#f2f2f2"} h={'100%'} p={"10px"} overflowY={'scroll'} height={'292px'}>
<HStack justifyContent={"space-between"} mb={5}>
<Text fontSize={"xs"} fontWeight={500}>Faqs</Text>
<Button

View File

@@ -22,7 +22,7 @@ function AboutUsAddModel({ aboutUsData }: { aboutUsData: any }) {
const [isOpen, setIsOpen] = useState(false);
// RTK Query Mutation Hook
const [updateAboutUs] = useUpdateAboutUsMutation();
const [updateAboutUs, { isLoading }] = useUpdateAboutUsMutation();
// React Hook Form
const {
@@ -134,6 +134,7 @@ function AboutUsAddModel({ aboutUsData }: { aboutUsData: any }) {
bg="#02A0A0"
color="#fff"
// isLoading={isLoading}
disabled={isLoading}
onClick={handleSubmit(onSubmit)} // Use handleSubmit to trigger form submission
>
Save

View File

@@ -26,7 +26,7 @@ function EditDetails({ rowData, refetch }: {rowData: RowData, refetch: VoidFunct
const [faqQuestion, setFaqQuestion] = useState(rowData?.question);
const [faqAnswer, setFaqAnswer] = useState(rowData?.answer);
const [isOpen, setIsOpen] = useState(false);
const [updateFaq] = useUpdateFaqMutation()
const [updateFaq, { isLoading }] = useUpdateFaqMutation()
// console.log('ROWDATA', rowData);
@@ -146,7 +146,7 @@ function EditDetails({ rowData, refetch }: {rowData: RowData, refetch: VoidFunct
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -54,7 +54,7 @@ const tableHeadRow = [
const FAQ = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, refetch, isLoading, isFetching } = useGetFaqQuery(currentPage)
const { data, refetch, isLoading, isFetching, isError } = useGetFaqQuery(currentPage)
const [localData, setLocalData] = useState<any[]>([]);
const [faqToggle] = useFaqToggleMutation()
const [deleteFaqPost] = useDeleteFaqPostMutation()
@@ -237,6 +237,8 @@ const FAQ = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>)}
</Box>
<Toaster />

View File

@@ -20,7 +20,7 @@ function FaqAddModel({ refetch }: { refetch: VoidFunction }) {
const [faqAnswer, setFaqAnswer] = useState('');
const [userType, setUserType] = useState("");
const [isOpen, setIsOpen] = useState(false);
const [createFaqPost] = useCreateFaqPostMutation()
const [createFaqPost, { isLoading }] = useCreateFaqPostMutation()
const handleOpenModal = () => {
setIsOpen(true); // Open modal when clicking "Add"
@@ -159,7 +159,7 @@ function FaqAddModel({ refetch }: { refetch: VoidFunction }) {
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -16,7 +16,7 @@ import ReactQuill from "react-quill";
function PrivacyPolicyAddModel({ policyData, refetch }: { policyData: any, refetch: VoidFunction }) {
const [isOpen, setIsOpen] = useState(false);
const [updatePrivacyPolicy] = useUpdatePrivacyPolicyMutation()
const [updatePrivacyPolicy, { isLoading }] = useUpdatePrivacyPolicyMutation()
const {
control,
handleSubmit,
@@ -139,7 +139,7 @@ function PrivacyPolicyAddModel({ policyData, refetch }: { policyData: any, refet
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} mt={'4'} onClick={handleSubmit(onSubmit)}>
<Button w="100%" bg="#02A0A0" color={"#fff"} mt={'4'} onClick={handleSubmit(onSubmit)} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -18,7 +18,7 @@ import { useUpdateTermsMutation } from "../../../Redux/Service/terms.and.conditi
function TermsAndConditionsAddModel({ termsData, refetch }: { termsData: any, refetch: VoidFunction }) {
const [isOpen, setIsOpen] = useState(false);
const [updateTerms] = useUpdateTermsMutation()
const [updateTerms, { isLoading }] = useUpdateTermsMutation()
const {
control,
handleSubmit,
@@ -136,7 +136,7 @@ function TermsAndConditionsAddModel({ termsData, refetch }: { termsData: any, re
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} mt={'4'} onClick={handleSubmit(onSubmit)}>
<Button w="100%" bg="#02A0A0" color={"#fff"} mt={'4'} onClick={handleSubmit(onSubmit)} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -21,7 +21,7 @@ function PendingRequests({ data, refetch }: { data: any, refetch: VoidFunction }
message: data.message,
solution: '',
})
const [pendingRequest] = usePendingRequestMutation()
const [pendingRequest, { isLoading }] = usePendingRequestMutation()
const handleOpenModal = () => {
setIsOpen(true);
@@ -56,10 +56,10 @@ function PendingRequests({ data, refetch }: { data: any, refetch: VoidFunction }
type: "error",
});
}
} catch (error) {
} catch (error: any) {
toaster.create({
title: "Error",
description: "Something went wrong",
description: error?.data?.message || "Something went wrong",
type: "error",
});
}
@@ -139,6 +139,7 @@ function PendingRequests({ data, refetch }: { data: any, refetch: VoidFunction }
border="1px solid #02A0A0"
size={"xs"}
onClick={() => handleSubmit('1')}
disabled={isLoading}
>
Unresolved
</Button>
@@ -151,6 +152,7 @@ function PendingRequests({ data, refetch }: { data: any, refetch: VoidFunction }
// colorPalette="#007F33"
size={"xs"}
onClick={() => handleSubmit('0')}
disabled={isLoading}
>
Resolved
</Button>

View File

@@ -56,7 +56,7 @@ const ManageJobs = () => {
setLocalData((data as any)?.data?.data || []);
}
}, [data]);
console.log(data?.data.data);
// console.log(data?.data.data);
const handleSearchChange = (value: string) => {
setSearchTerm(value);

View File

@@ -57,7 +57,7 @@ function ManageJobsAdd({ data, refetch }: { data: JobStatusData, refetch: () =>
const { data: departmentData } = useGetDepartmentQuery({});
const { data: countryData } = useGetCountryQuery({});
const { data: jobTypeData } = useGetManageJobTypeQuery({});
const [updateJobs] = useUpdateJobsMutation();
const [updateJobs, { isLoading}] = useUpdateJobsMutation();
// console.log('Modes:', jobTypeData?.data.data);
const initialState = {
@@ -489,6 +489,7 @@ function ManageJobsAdd({ data, refetch }: { data: JobStatusData, refetch: () =>
fontSize="12px"
height="30px"
onClick={handleSubmit}
disabled={isLoading}
>
Save
</Button>

View File

@@ -72,7 +72,7 @@ const tableHeadRow = [
const ManagePost = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, refetch } = useGetManagePostsQuery(currentPage)
const { data, refetch, isFetching, isError } = useGetManagePostsQuery(currentPage)
const [localData, setLocalData] = useState<any[]>([]);
const [searchTerm, setSearchTerm] = useState("");
const [postStatusToggle] = usePostStatusToggleMutation()
@@ -242,6 +242,8 @@ const ManagePost = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>
</Box>
<Toaster />

View File

@@ -9,6 +9,8 @@ import { useEffect, useState } from "react";
import { Spinner } from "../../../components/Sipnner/Spinner";
import { useGetDeactivateUserQuery, useUserDeactivateToggleMutation } from "../../../Redux/Service/manage.user";
import SearchComponent from "../../../components/SearchComponent";
import { Toaster, toaster } from "../../../components/ui/toaster";
import { delay } from "../../../components/Utils";
const tableHeadRow = [
"Sr. No",
@@ -20,7 +22,7 @@ const tableHeadRow = [
const DeactivatedAccounts = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, isLoading, refetch } = useGetDeactivateUserQuery(currentPage);
const { data, isLoading, refetch, isError, isFetching } = useGetDeactivateUserQuery(currentPage);
const [localData, setLocalData] = useState<any[]>([]);
const [searchTerm, setSearchTerm] = useState("");
const [userDeactivateToggle] = useUserDeactivateToggleMutation()
@@ -54,6 +56,12 @@ const DeactivatedAccounts = () => {
try {
await userDeactivateToggle({ id: agencyId, is_active: newStatus }).unwrap();
toaster.create({
title: "Success",
description: "Status updated successfully",
type: "success",
});
await delay(500);
refetch()
} catch (error) {
console.error("Error updating privacy policy:", error);
@@ -148,8 +156,11 @@ const DeactivatedAccounts = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>
</Box>
<Toaster />
</MainFrame>
);
};

View File

@@ -1,5 +1,5 @@
// import { MdOutlineRemoveRedEye } from "react-icons/md";
import { Field, Input, Stack } from "@chakra-ui/react";
import { Box, Field, HStack, Input, Stack } from "@chakra-ui/react";
import {
DialogBody,
DialogCloseTrigger,
@@ -18,21 +18,66 @@ import { UserData, useUpdateUserMutation } from "../../../Redux/Service/manage.u
import { useState } from "react";
import { Toaster, toaster } from "../../../components/ui/toaster";
interface UserPayload {
id: number;
principal_type_xid: number;
principal_source_xid: number;
first_name: string;
last_name: string;
gender: string;
date_of_birth: string | null;
language_xid: number[]; // ✅ Always an array
}
export interface UserFormData {
id: number;
principal_type_xid: number;
first_name: string;
last_name: string;
phone_number: string;
gender: string;
date_of_birth: string;
is_active: boolean;
principal_type: {
id: number;
principal_type_title: string;
};
principle_language_linkss: {
id?: number;
iam_principal_xid?: number;
language_xid: number[]; // ✅ Now it's an array
};
}
function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => void }) {
const [isOpen, setIsOpen] = useState(false);
const [formData, setFormData] = useState<UserData>({
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_linkss: data?.principle_language_linkss ?? [],
const transformToFormData = (data: UserData): UserFormData => ({
...data,
principle_language_linkss: {
...data.principle_language_linkss,
language_xid: [data.principle_language_linkss.language_xid], // wrap in array
},
});
const [updateUser] = useUpdateUserMutation();
const [formData, setFormData] = useState<UserFormData>(transformToFormData(data));
// const [formData, setFormData] = useState<UserData>({
// 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_linkss: {
// ...data?.principle_language_linkss,
// language_xid: Array.isArray(data?.principle_language_linkss?.language_xid)
// ? data.principle_language_linkss.language_xid
// : [data?.principle_language_linkss?.language_xid].filter(Boolean),
// },
// // principle_language_linkss: data?.principle_language_linkss ?? [],
// });
const [updateUser, { isLoading }] = useUpdateUserMutation();
const handleOpenModal = () => {
setIsOpen(true);
@@ -49,9 +94,9 @@ function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => v
return;
}
const languageData = formData?.principle_language_linkss?.language_xid;
// const languageData = formData?.principle_language_linkss?.language_xid;
const payload = {
const payload: UserPayload = {
id: formData?.id,
principal_type_xid: formData?.principal_type_xid,
principal_source_xid: formData?.id,
@@ -59,7 +104,11 @@ function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => v
last_name: formData?.last_name,
gender: formData?.gender,
date_of_birth: formData?.date_of_birth,
language_xid: languageData,
// language_xid: languageData,
language_xid: Array.isArray(formData.principle_language_linkss?.language_xid)
? formData.principle_language_linkss.language_xid
: [formData.principle_language_linkss?.language_xid].filter(Boolean),
};
// console.log('payload', payload)
@@ -193,7 +242,7 @@ function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => v
<Field.Label color="black" pt={1} fontSize="12px">
Type Of User
</Field.Label>
<Input
{/* <Input
bgColor="#EEEEEE"
color="black"
border="none"
@@ -202,30 +251,113 @@ function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => v
height="30px"
value={formData.principal_type?.principal_type_title || 'N/A'}
onChange={(e) => setFormData({ ...formData, principal_type: { ...formData.principal_type, principal_type_title: e.target.value } })}
/>
/> */}
{/* <Field.Label color="black" pt={1} fontSize="12px">
Language
</Field.Label>
<Input
bgColor="#EEEEEE"
color="black"
border="none"
pl={1}
fontSize="12px"
height="30px"
/> */}
<Box>
<select
style={{
width: "100%",
background: "transparent",
color: "black",
border: "none",
fontSize: "12px",
height: "30px",
outline: "none",
}}
value={formData.principal_type_xid?.toString() || 'N/A'}
onChange={(e) => setFormData({ ...formData, principal_type_xid: Number(e.target.value) })}
>
{/* <option value="">Select User Type</option> */}
<option value="2">Recruiter</option>
<option value="3">Jobseeker</option>
</select>
</Box>
<Field.Label color="black" pt={1} fontSize="12px">
Language
</Field.Label>
{/* <Input
bgColor="#EEEEEE"
color="black"
border="none"
pl={1}
fontSize="12px"
height="30px"
value={formData?.principle_language_linkss?.language_xid || 'N/A'}
onChange={(e) => setFormData({
...formData, principle_language_linkss: {
...formData?.principle_language_linkss, language_xid: e.target.value
.split(",")
.map(lang => lang.trim())
.filter(Boolean)
}
})}
/> */}
<HStack>
{[
{ id: 1, label: "English" },
{ id: 2, label: "Hindi" },
{ id: 4, label: "Other" },
].map((lang) => (
<label
key={lang.id}
style={{
display: "flex",
alignItems: "center",
fontSize: "12px",
color: "#000",
marginBottom: "8px",
gap: "8px",
}}
>
<input
type="checkbox"
className="custom-checkbox"
value={lang.id}
checked={formData?.principle_language_linkss?.language_xid?.includes(lang.id) || false}
onChange={(e) => {
const selected = formData?.principle_language_linkss?.language_xid || [];
const value = Number(e.target.value);
const updated = e.target.checked
? [...selected, value]
: selected.filter((id) => id !== value);
setFormData({
...formData,
principle_language_linkss: {
...formData?.principle_language_linkss,
language_xid: updated,
},
});
}}
style={{
width: "16px",
height: "16px",
border: "2px solid black",
backgroundColor: "#fff",
appearance: "none",
cursor: "pointer",
position: "relative",
}}
/>
{lang.label}
</label>
))}
</HStack>
</Field.Root>
</Stack>
</DialogBody>
<DialogFooter mt={5}>
<Button rounded={"md"} w={"100%"} size={"sm"} bg={"#02A0A0"} onClick={handleSubmit}>
<Button rounded={"md"} w={"100%"} size={"sm"} bg={"#02A0A0"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>
<DialogCloseTrigger color="black" />
</DialogContent>
</DialogRoot>
</DialogRoot >
<Toaster />
</>
);

View File

@@ -69,7 +69,7 @@ const tableHeadRow = [
const RegisterUsers = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, refetch } = useGetManageUserQuery(currentPage)
const { data, refetch, isFetching, isError } = useGetManageUserQuery(currentPage)
const [localData, setLocalData] = useState<any[]>([]);
const [searchTerm, setSearchTerm] = useState("");
const [userToggle] = useUserToggleMutation()
@@ -165,8 +165,6 @@ const RegisterUsers = () => {
"Action": (
<HStack justifyContent="center">
<EditRegisterUsers
// rowData={{ id: agency.id, en_name: agency.en_name, country_code: agency.country_code, phonecode: agency.phonecode, capital: agency.capital, currency: agency.currency, currency_name: agency.currency_name, currency_symbol: agency.currency_symbol }}
// refetch={refetch}
data={agency}
refetch={refetch}
/>
@@ -238,6 +236,8 @@ const RegisterUsers = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>
</Box>
</MainFrame>

View File

@@ -102,12 +102,13 @@ function ViewRegisterUsers({ data }: { data: UserData }) {
value={data?.principal_type?.principal_type_title || 'N/A'}
/>
{/* <Field.Label color="black" pt={1} fontSize="12px">
<Field.Label color="black" pt={1} fontSize="12px">
Language
</Field.Label>
<Input
bgColor="#EEEEEE" color="black" border="none" pl={1} fontSize="12px" height="30px"
/> */}
value={data?.principle_language_linkss?.language?.language_name || 'N/A'}
/>
</Field.Root>
</Stack>
</DialogBody>

View File

@@ -52,7 +52,7 @@ function EditAgencyMaster<T extends AgencyFormData>({ editData, refetch }: { edi
const [formData, setFormData] = useState(editData);
const [isOpen, setIsOpen] = useState(false);
const [updateAgencyMaster] = useUpdateAgencyMasterMutation()
const [updateAgencyMaster, { isLoading }] = useUpdateAgencyMasterMutation()
console.log("Edit Data", editData);
@@ -267,6 +267,7 @@ function EditAgencyMaster<T extends AgencyFormData>({ editData, refetch }: { edi
fontSize="12px"
height="30px"
onClick={handleSubmit}
disabled={isLoading}
>
Save
</Button>

View File

@@ -7,7 +7,7 @@ import { PostCountry, useCreateCountryPostMutation } from "../../../Redux/Servic
import { Toaster, toaster } from "../../../components/ui/toaster";
function CountryAddModel({refetch}: { refetch: VoidFunction }) {
const [createCountryPost] = useCreateCountryPostMutation()
const [createCountryPost, { isLoading }] = useCreateCountryPostMutation()
const [isOpen, setIsOpen] = useState(false);
const [countryName, setCountryName] = useState<PostCountry>({
en_name: '',
@@ -202,7 +202,7 @@ function CountryAddModel({refetch}: { refetch: VoidFunction }) {
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -36,7 +36,7 @@ export interface EditCountryModelProps {
function EditCountryModel({ rowData, refetch }: { rowData: EditCountryModelProps, refetch: VoidFunction }) {
const [updateCountry] = useUpdateCountryMutation()
const [updateCountry, { isLoading }] = useUpdateCountryMutation()
const [editData, setEditData] = useState(rowData)
const [isOpen, setIsOpen] = useState(false);
@@ -145,7 +145,7 @@ function EditCountryModel({ rowData, refetch }: { rowData: EditCountryModelProps
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -9,7 +9,7 @@ import { useCreateDepartmentPostMutation, useGetDepartmentMasterDropDownQuery }
function AddDepartmentMaster({ refetch }: { refetch: VoidFunction }) {
const [jobType, setJobType] = useState("");
const [isOpen, setIsOpen] = useState(false);
const [createDepartmentPost] = useCreateDepartmentPostMutation()
const [createDepartmentPost, { isLoading }] = useCreateDepartmentPostMutation()
const { data } = useGetDepartmentMasterDropDownQuery()
const [selectdDep, setSelectdDep] = useState<any>({
id: '',
@@ -140,7 +140,7 @@ function AddDepartmentMaster({ refetch }: { refetch: VoidFunction }) {
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -17,7 +17,7 @@ import { useGetDepartmentMasterDropDownQuery, useUpdateDepartmentMutation } from
function EditDepartmentMaster({ localData, refetch }: { localData: any, refetch: VoidFunction }) {
const [jobtype, setJobType] = useState("");
const [updateDepartment] = useUpdateDepartmentMutation()
const [updateDepartment, { isLoading }] = useUpdateDepartmentMutation()
const { data } = useGetDepartmentMasterDropDownQuery()
const [isOpen, setIsOpen] = useState(false);
const [selectdDep, setSelectdDep] = useState<any>({
@@ -145,7 +145,7 @@ function EditDepartmentMaster({ localData, refetch }: { localData: any, refetch:
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -9,7 +9,7 @@ import { useCreateIndustryMasterPostMutation } from "../../../Redux/Service/indu
function AddIndustryMaster({ refetch }: { refetch: VoidFunction }) {
const [jobType, setJobType] = useState("");
const [isOpen, setIsOpen] = useState(false);
const [createIndustryMasterPost] = useCreateIndustryMasterPostMutation()
const [createIndustryMasterPost, { isLoading }] = useCreateIndustryMasterPostMutation()
const handleOpenModal = () => {
setIsOpen(true); // Open modal when clicking "Add"
@@ -88,7 +88,7 @@ function AddIndustryMaster({ refetch }: { refetch: VoidFunction }) {
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -17,7 +17,7 @@ import { useUpdateIndustryMasterMutation } from "../../../Redux/Service/industry
function EditIndustryMaster({ id, localData, refetch, categories }: { id: number, localData: any, refetch: VoidFunction, categories: any }) {
const [jobtype, setJobType] = useState("");
const [updateIndustryMaster] = useUpdateIndustryMasterMutation()
const [updateIndustryMaster, { isLoading }] = useUpdateIndustryMasterMutation()
const [isOpen, setIsOpen] = useState(false);
const handleOpenModal = () => {
@@ -98,7 +98,7 @@ function EditIndustryMaster({ id, localData, refetch, categories }: { id: number
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -9,7 +9,7 @@ import { Toaster, toaster } from "../../../components/ui/toaster";
function EditJobStatusModel({ localData, refetch }: { localData: any, refetch: VoidFunction }) {
const [updateJobStatus] = useUpdateJobStatusMutation()
const [updateJobStatus, { isLoading }] = useUpdateJobStatusMutation()
const [title, setTitle] = useState(localData.translation.title);
const [isOpen, setIsOpen] = useState(false);
@@ -89,7 +89,7 @@ function EditJobStatusModel({ localData, refetch }: { localData: any, refetch: V
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -9,7 +9,7 @@ import { useState } from "react"
function JobStatusAddModel({ refetch }: { refetch: VoidFunction }) {
const [title, setTitle] = useState('')
const [isOpen, setIsOpen] = useState(false);
const [createJobStatusPost] = useCreateJobStatusPostMutation()
const [createJobStatusPost, { isLoading }] = useCreateJobStatusPostMutation()
const handleOpenModal = () => {
setIsOpen(true);
@@ -88,7 +88,7 @@ function JobStatusAddModel({ refetch }: { refetch: VoidFunction }) {
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -17,7 +17,7 @@ import { toaster } from "../../../components/ui/toaster";
function EditJobeModel({ id, localData, refetch }: { id: number, localData: any, refetch: VoidFunction }) {
const [jobtype, setJobType] = useState("");
const [updateJobType] = useUpdateJobTypeMutation()
const [updateJobType, { isLoading }] = useUpdateJobTypeMutation()
const [isOpen, setIsOpen] = useState(false);
const handleOpenModal = () => {
@@ -97,7 +97,7 @@ function EditJobeModel({ id, localData, refetch }: { id: number, localData: any,
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -9,7 +9,7 @@ import { toaster } from "../../../components/ui/toaster";
function JobAddModel({ refetch }: { refetch: VoidFunction }) {
const [jobType, setJobType] = useState("");
const [isOpen, setIsOpen] = useState(false);
const [createJobTypePost] = useCreateJobTypePostMutation()
const [createJobTypePost, { isLoading }] = useCreateJobTypePostMutation()
const handleOpenModal = () => {
setIsOpen(true); // Open modal when clicking "Add"
@@ -87,7 +87,7 @@ function JobAddModel({ refetch }: { refetch: VoidFunction }) {
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -40,7 +40,7 @@ const tableHeadRow = [
const JobType = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, refetch } = useGetJobTypeQuery(currentPage)
const { data, refetch, isFetching, isError } = useGetJobTypeQuery(currentPage)
const [localData, setLocalData] = useState<any[]>([]);
const [searchTerm, setSearchTerm] = useState("");
const [jobTypeToggle] = useJobTypeToggleMutation()
@@ -155,6 +155,8 @@ const JobType = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>
</Box>
<Toaster />

View File

@@ -49,7 +49,7 @@ const tableHeadRow = [
const TemplateMaster = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, refetch } = useGetTemplateMasterQuery(currentPage)
const { data, refetch, isFetching, isError } = useGetTemplateMasterQuery(currentPage)
const [localData, setLocalData] = useState<any[]>([]);
const [templateMasterToggle] = useTemplateMasterToggleMutation();
const [searchTerm, setSearchTerm] = useState("");
@@ -194,6 +194,8 @@ const TemplateMaster = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>
</Box>
<Toaster />

View File

@@ -24,7 +24,7 @@ import { useUpdateWorkSpaceMutation } from "../../../Redux/Service/workspace.mod
function EditWorkModel({ localData, refetch }: {localData: any, refetch: VoidFunction}) {
const [title, setTitle] = useState(localData?.en_name);
const [isOpen, setIsOpen] = useState(false);
const [updateWorkSpace] = useUpdateWorkSpaceMutation()
const [updateWorkSpace, { isLoading }] = useUpdateWorkSpaceMutation()
console.log("localData", localData)
const handleOpenModal = () => {
@@ -104,7 +104,7 @@ function EditWorkModel({ localData, refetch }: {localData: any, refetch: VoidFun
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -9,7 +9,7 @@ import { Toaster, toaster } from "../../../components/ui/toaster";
function WorkAddModel({ refetch }: { refetch: VoidFunction }) {
const [title, setTitle] = useState('')
const [isOpen, setIsOpen] = useState(false);
const [createWorkspacePost] = useCreateWorkspacePostMutation()
const [createWorkspacePost, { isLoading }] = useCreateWorkspacePostMutation()
const handleOpenModal = () => {
setIsOpen(true);
@@ -94,7 +94,7 @@ function WorkAddModel({ refetch }: { refetch: VoidFunction }) {
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -37,7 +37,7 @@ const tableHeadRow = [
const WorkspaceMode = () => {
const [currentPage, setCurrentPage] = useState(1);
const { data, refetch } = useGetWorkSpaceModeQuery(currentPage)
const { data, refetch, isError, isFetching } = useGetWorkSpaceModeQuery(currentPage)
const [localData, setLocalData] = useState<any[]>([]);
const [searchTerm, setSearchTerm] = useState("");
const [workspaceToggle] = useWorkspaceToggleMutation()
@@ -152,6 +152,8 @@ const WorkspaceMode = () => {
total: data?.data.total || 0
}}
onPageChange={handlePageChange}
isLoading={isFetching}
isError={isError}
/>
</Box>
<Toaster />

View File

@@ -17,12 +17,12 @@ import { toaster, Toaster } from "../../components/ui/toaster";
import { useEffect, useState } from "react";
function AddModel({ refetch, allPermissions }: { refetch: VoidFunction, allPermissions?: PermissionResponse }) {
const [createSubAdminPost] = useCreateSubAdminPostMutation();
const [createSubAdminPost, { isLoading }] = useCreateSubAdminPostMutation();
// State fields
const [firstName, setFirstName] = useState("");
const [lastName, setLastName] = useState("");
const [userName, setUserName] = useState("");
// const [userName, setUserName] = useState("");
const [dateOfBirth, setDateOfBirth] = useState("");
const [gender, setGender] = useState("");
const [email, setEmail] = useState("");
@@ -47,7 +47,7 @@ useEffect(() => {
if (!isOpen) {
setFirstName("");
setLastName("");
setUserName("");
// setUserName("");
setDateOfBirth("");
setGender("");
setEmail("");
@@ -60,7 +60,6 @@ useEffect(() => {
if (
!firstName.trim() ||
!lastName.trim() ||
!userName.trim() ||
!dateOfBirth.trim() ||
!gender.trim()
) {
@@ -92,7 +91,7 @@ useEffect(() => {
}
const payload = {
user_name: userName,
// user_name: userName,
first_name: firstName,
last_name: lastName,
date_of_birth: dateOfBirth,
@@ -112,10 +111,9 @@ useEffect(() => {
type: "success",
});
refetch();
// setIsOpen(false);
setFirstName("");
setLastName("");
setUserName("");
// setUserName("");
setDateOfBirth("");
setGender("");
setIsOpen(false);
@@ -192,7 +190,7 @@ useEffect(() => {
onChange={(e) => setLastName(e.target.value)}
/>
<Field.Label color="black" pt={1} fontSize="12px">
{/* <Field.Label color="black" pt={1} fontSize="12px">
Username
</Field.Label>
<Input
@@ -205,7 +203,7 @@ useEffect(() => {
height="30px"
value={userName}
onChange={(e) => setUserName(e.target.value)}
/>
/> */}
<Field.Label color="black" pt={1} fontSize="12px">
DOB
@@ -306,6 +304,7 @@ useEffect(() => {
bg="#02A0A0"
color={"#fff"}
onClick={handleSubmit}
disabled={isLoading}
>
Save
</Button>

View File

@@ -43,7 +43,7 @@ interface ResourceActionLink {
function EditSubAdmin({ id, refetch, allPermissions }: { id: number, refetch: VoidFunction, allPermissions?: PermissionResponse }) {
const [trigger, { data }] = useLazyViewSubAdminQuery();
const [updateSubAdmin] = useUpdateSubAdminMutation()
const [updateSubAdmin, {isLoading}] = useUpdateSubAdminMutation()
const [isOpen, setIsOpen] = useState(false);
const [editData, setEditData] = useState<{
id: string;
@@ -130,7 +130,7 @@ function EditSubAdmin({ id, refetch, allPermissions }: { id: number, refetch: Vo
const payload = {
id: Number(editData.id),
unique_id: editData.unique_id,
// unique_id: editData.unique_id,
first_name: editData.first_name,
last_name: editData.last_name,
date_of_birth: editData.date_of_birth,
@@ -190,7 +190,7 @@ function EditSubAdmin({ id, refetch, allPermissions }: { id: number, refetch: Vo
<DialogBody bg="white">
<Stack py={3}>
<Field.Root>
<Field.Label color="black" pt={1} fontSize="12px">
{/* <Field.Label color="black" pt={1} fontSize="12px">
ID
</Field.Label>
<Input
@@ -203,7 +203,7 @@ function EditSubAdmin({ id, refetch, allPermissions }: { id: number, refetch: Vo
height="30px"
value={editData.unique_id}
onChange={(e) => setEditData({ ...editData, unique_id: e.target.value })}
/>
/> */}
<Field.Label color="black" pt={1} fontSize="12px">
First Name
@@ -287,7 +287,7 @@ function EditSubAdmin({ id, refetch, allPermissions }: { id: number, refetch: Vo
</Stack>
</DialogBody>
<DialogFooter display="flex" justifyContent="center" pt={"2"}>
<Button size={"xs"} w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit}>
<Button size={"xs"} w="100%" bg="#02A0A0" color={"#fff"} onClick={handleSubmit} disabled={isLoading}>
Save
</Button>
</DialogFooter>

View File

@@ -103,7 +103,7 @@ interface SubAdminView {
}
interface CreateSubAdminPayload {
user_name: string;
// user_name: string;
first_name: string;
last_name: string;
date_of_birth: string;

View File

@@ -183,4 +183,23 @@ input:focus-visible {
.css-1ilznyv {
border: none;
}
.custom-checkbox {
width: 16px;
height: 16px;
border: 2px solid black;
background-color: white;
appearance: none;
cursor: pointer;
position: relative;
}
.custom-checkbox:checked::after {
content: "✔";
color: black;
font-size: 16px;
position: absolute;
top: -2px;
left: 0px;
}