diff --git a/src/Pages/IO_Management/CreateIO/IODetails.jsx b/src/Pages/IO_Management/CreateIO/IODetails.jsx
index f337a5d..f950013 100644
--- a/src/Pages/IO_Management/CreateIO/IODetails.jsx
+++ b/src/Pages/IO_Management/CreateIO/IODetails.jsx
@@ -95,11 +95,16 @@ const IODetails = ({ enableNextTab, index }) => {
useContext(GlobalStateContext);
// ======================[ RTK Querry Api ]
+
+
const {
- data: investmentTypeData,
- isLoading: investmentTypeIsLoading,
- error: investmentTypeError,
- } = useGetInvestmentTypesQuery();
+ data: investmentTypes,
+ isLoading: investmentTypesLoading,
+ error,
+ } = useGetInvestmentTypesQuery({ page: 1, size: 10 })
+
+
+
const {
data: activeSponsers,
isLoading: activeSponsersIsLoading,
@@ -114,7 +119,7 @@ const IODetails = ({ enableNextTab, index }) => {
const [updateIO] = useUpdateIOMutation();
// ======================[ Selector filter ]
- const investmentTypeOptions = investmentTypeData?.data?.rows?.map(
+ const investmentTypeOptions = investmentTypes?.data?.rows?.map(
({ investmentTypeName, id }) => {
return {
label: investmentTypeName,
diff --git a/src/Pages/Master/Sponser/AddSponser.jsx b/src/Pages/Master/Sponser/AddSponser.jsx
index df43814..2693def 100644
--- a/src/Pages/Master/Sponser/AddSponser.jsx
+++ b/src/Pages/Master/Sponser/AddSponser.jsx
@@ -1,6 +1,6 @@
import React, { useContext, useEffect, useState } from "react";
import { OPACITY_ON_LOAD } from "../../../Layout/animations";
-import { Box } from "@chakra-ui/react";
+import { Box, useToast } from "@chakra-ui/react";
import { useForm, Controller } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
import * as yup from "yup";
@@ -22,12 +22,10 @@ import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders";
export const addSponser = yup.object().shape({
sponsorName: yup.string().required("Sponser name is required"),
sponsorNameArabic: yup.string().required("Sponser name is required"),
- mobileNo: yup
+ email: yup
.string()
- .required("Mobile no is required")
- .matches(/^[0-9]+$/, "Mobile no must be only digits")
- .min(10, "Mobile no must be at least 10 digits")
- .max(10, "Mobile no must be at most 15 digits"),
+ .email("Must be a valid email")
+ .required("Email is required"),
});
export function debounce(func, delay) {
@@ -39,9 +37,10 @@ export function debounce(func, delay) {
}
const AddSponser = () => {
+ const toast = useToast();
const params = useParams();
- const id = params?.id
const navigate = useNavigate();
+ const [isLoadingBtn, setIsLoadingBtn] = useState(false);
const [bannerImageData, setBannerImageData] = useState(null);
const [selectedBannerImageData, setSelectedBannerImageData] = useState(null);
@@ -51,8 +50,19 @@ const AddSponser = () => {
const [createSponser] = useCreateSponserMutation();
const [updateSponser] = useUpdateSponserMutation();
+ const id = params?.id;
+ console.log(id);
- const { data, error, isLoading } = useGetSponserByIdQuery(id, { skip: !id });
+ // Fetch sponsor data only if id exists
+ const {
+ data: sponserByIdData,
+ error,
+ isLoading,
+ } = useGetSponserByIdQuery(id, {
+ skip: !id,
+ });
+
+ console.log(sponserByIdData?.data);
const {
control,
@@ -63,22 +73,19 @@ const AddSponser = () => {
resolver: yupResolver(addSponser),
});
- console.log(errors);
+ useEffect(() => {
+ if (sponserByIdData?.data) {
+ reset({
+ sponsorName: sponserByIdData?.data?.sponsorName,
+ sponsorNameArabic: sponserByIdData?.data?.sponsorNameArabic,
+ email: sponserByIdData?.data?.email,
+ });
+ }
+ }, [sponserByIdData, reset]);
- // useEffect(() => {
- // if (data) {
- // reset({
- // sponsorName: data?.data?.sponsorName,
- // mobileNo: data?.data?.mobileNo,
- // sponsorNameArabic: data?.data?.sponsorNameArabic,
- // });
- // }
- // }, [data, reset]);
-
- if (isLoading) {
+ if (false) {
return ;
}
-
const formFields = [
{
@@ -96,13 +103,13 @@ const AddSponser = () => {
type: "text",
isRequired: true,
section: "Add Details",
- isArabic:true
+ isArabic: true,
},
{
- label: "Mobile Number",
- name: "mobileNo",
+ label: "Email address",
+ name: "email",
placeHolder: " ",
- type: "number",
+ type: "email",
isRequired: true,
section: "Add Details",
},
@@ -124,13 +131,13 @@ const AddSponser = () => {
type: "text",
isRequired: true,
section: "Add Details",
- isArabic:true
+ isArabic: true,
},
{
- label: "Mobile Number",
- name: "mobileNo",
+ label: "Email adress",
+ name: "email",
placeHolder: " ",
- type: "number",
+ type: "email",
isRequired: true,
section: "Add Details",
},
@@ -155,34 +162,62 @@ const AddSponser = () => {
}, {});
const onSubmit = async (data) => {
+ setIsLoadingBtn(true);
console.log(data);
- // setSponser([
- // {
- // ...data,
- // status: true,
- // id: uuidv4(),
- // createdAt: new Date().toISOString(),
- // },
- // ...sponser,
- // ]);
- navigate("/sponser");
- const id = params?.id
- try {
- await createSponser(data).then((response) => {
- if (response?.data?.statusCode) {
- toast({
- render: () => ,
- });
- } else {
- toast({
- render: () => (
-
- ),
- });
- }
- });
- } catch (error) {
- console.log(error);
+ const id = params?.id;
+ if (id) {
+ try {
+ await updateSponser({ data, id }).then((response) => {
+ if (response?.data?.statusCode) {
+ toast({
+ render: () => ,
+ });
+
+ setIsLoadingBtn(false);
+ navigate("/sponser");
+ } else {
+ toast({
+ render: () => (
+
+ ),
+ });
+
+ setIsLoadingBtn(false);
+ navigate("/sponser");
+ }
+ });
+ } catch (error) {
+ console.log(error);
+ setIsLoadingBtn(false);
+ navigate("/sponser");
+ }
+ } else {
+ try {
+ await createSponser(data).then((response) => {
+ if (response?.data?.statusCode) {
+ toast({
+ render: () => ,
+ });
+
+ setIsLoadingBtn(false);
+ navigate("/sponser");
+ } else {
+ toast({
+ render: () => (
+
+ ),
+ });
+
+ setIsLoadingBtn(false);
+ navigate("/sponser");
+ }
+ });
+ } catch (error) {
+ console.log(error);
+
+ setIsLoadingBtn(false);
+ navigate("/sponser");
+ }
}
};
@@ -193,6 +228,8 @@ const AddSponser = () => {
control={control}
errors={errors}
onSubmit={handleSubmit(onSubmit)}
+ submitTitle={params?.id ? "Update" : "Submit"}
+ btnLoading={isLoadingBtn}
/>
);
diff --git a/src/Pages/Master/Sponser/Sponsers.jsx b/src/Pages/Master/Sponser/Sponsers.jsx
index fd7f2ff..8e71ef7 100644
--- a/src/Pages/Master/Sponser/Sponsers.jsx
+++ b/src/Pages/Master/Sponser/Sponsers.jsx
@@ -1,4 +1,5 @@
import {
+ Badge,
Box,
Button,
HStack,
@@ -84,8 +85,8 @@ const Sponser = () => {
// ====================================================[Table Setup]================================================================
const tableHeadRow = [
"Sponsor name",
- "Sponsor name (Arabic)",
- "Mobile no",
+ // "Sponsor name (Arabic)",
+ "Email address",
"Status",
"Created At",
"Action",
@@ -158,30 +159,33 @@ const Sponser = () => {
),
- "Sponsor name (Arabic)":(
- {item.sponsorNameArabic}
- ),
- "Mobile no": (
+ // "Sponsor name (Arabic)":(
+ // {item.sponsorNameArabic}
+ // ),
+ "Email address": (
- {item.mobileNo}
+ {item.email}
),
Status: (
- handleUpdateStatus(item.id)}
isChecked={item.isActive}
- />
+ /> */}
+
+ {item.isActive ? "Active":"Inactive"}
+
),
@@ -236,7 +240,7 @@ const Sponser = () => {
placement="top"
>