diff --git a/src/Components/CurrencyInput.jsx b/src/Components/CurrencyInput.jsx
index f2a46b1..b15ef51 100644
--- a/src/Components/CurrencyInput.jsx
+++ b/src/Components/CurrencyInput.jsx
@@ -20,17 +20,19 @@ export const formatCurrency = (value) => {
};
const CurrencyInput = forwardRef(({ value, onChange, ...props }, ref) => {
+ console.log(props);
+
const handleChange = (event) => {
- let { value } = event.target;
+ let { value } = event?.target;
// Remove non-numeric characters except decimal point
- value = value.replace(/[^0-9.]/g, '');
+ value = value?.replace(/[^0-9.]/g, '');
// Ensure only one decimal point
- const parts = value.split('.');
+ const parts = value?.split('.');
if (parts.length > 2) {
- value = parts[0] + '.' + parts.slice(1).join('');
+ value = parts[0] + '.' + parts?.slice(1)?.join('');
}
onChange(value); // Pass the raw value to parent or use it directly
diff --git a/src/Components/DataTable/NormalTable.jsx b/src/Components/DataTable/NormalTable.jsx
index 54da2e8..0ae24b8 100644
--- a/src/Components/DataTable/NormalTable.jsx
+++ b/src/Components/DataTable/NormalTable.jsx
@@ -51,6 +51,8 @@ const DataTable = ({
whiteSpace="normal" // Allow text to wrap
wordBreak="normal" // Ensure long words break properly
overflowWrap="normal" // Break long words if necessary
+ textTransform={'none'}
+
>
{isLoading ? : heading}
{/* {heading} */}
diff --git a/src/Layout/DefaultLayout.jsx b/src/Layout/DefaultLayout.jsx
index 2995343..a0c05f8 100644
--- a/src/Layout/DefaultLayout.jsx
+++ b/src/Layout/DefaultLayout.jsx
@@ -136,7 +136,7 @@ const DashboardLayout = ({ isOnline }) => {
case path.startsWith("/sponser"):
return (
- Sponsorer
+ Sponsor
);
case path.startsWith("/investment-type"):
diff --git a/src/Pages/Deposit/DepositRequest/DepositRequest.jsx b/src/Pages/Deposit/DepositRequest/DepositRequest.jsx
index eaad429..d428265 100644
--- a/src/Pages/Deposit/DepositRequest/DepositRequest.jsx
+++ b/src/Pages/Deposit/DepositRequest/DepositRequest.jsx
@@ -70,15 +70,6 @@ const DepositRequest = () => {
} = useGetDepositRequestQuery({ page: currentPage, size: pageSize });
- useEffect(() => {
- // Simulate loading
- const timer = setTimeout(() => {
- setIsLoading(false);
- }, 1500);
-
- // Cleanup the timer on component unmount
- return () => clearTimeout(timer);
- }, []);
// ====================================================[Table Setup]================================================================
const tableHeadRow = [
@@ -109,7 +100,7 @@ const DepositRequest = () => {
// ====================================================[Table Filter]================================================================
const filteredData = data?.data?.rows.filter((item) => {
// Filter by name (case insensitive)
- const name = item?.createdAt;
+ const name = [item.firstName, item.lastName, item.countryName].filter(Boolean).join(' ');
const searchLower = searchTerm.toLowerCase();
const nameMatches = name.toLowerCase().includes(searchLower);
@@ -148,34 +139,34 @@ const DepositRequest = () => {
fontWeight={"500"}
className="d-flex align-items-center web-text-small"
>
- {item?.principal?.investor_details?.clientReference_id}
+ {item?.clientReference_id}
),
"First Name": (
- {item?.principal?.firstName}
+ {item?.firstName}
),
"Last Name": (
- {item?.principal?.lastName}
+ {item?.lastName}
),
Country: (
- {item?.principal?.investor_details?.country?.countryName}
+ {item?.countryName}
),
"Phone Number": (
- {item?.principal?.mobileNumber}
+ {item?.mobileNumber}
),
@@ -311,7 +302,7 @@ const DepositRequest = () => {
emptyMessage={`We don't have any Investment type `}
tableHeadRow={tableHeadRow}
data={extractedArray}
- isLoading={isLoading}
+ isLoading={depositRequestLoading}
viewActionId={actionId}
setViewActionId={setActionId}
// totalPages={10}
diff --git a/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx b/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx
index 00c73c6..2df842d 100644
--- a/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx
+++ b/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx
@@ -28,7 +28,7 @@ const FILE_TYPES = ["image/jpeg", "image/png", "image/gif"];
export const conformModalSchema = yup.object().shape({
investorAmount: yup.string().required("Investor amount is required"),
- comment: yup.string().required("Comment is required"),
+ comment: yup.string().notRequired(),
supporting_FileName: yup.mixed().required("File is required"),
// .test("fileType", "Unsupported File Format", (value) => {
// return value && FILE_TYPES.includes(value.type);
@@ -64,10 +64,6 @@ const DepositRequestApprove = ({ isOpen, onClose, firstField, id, data:requestDa
}, [requestData, id])
-
-
-
-
const onSubmit = async(data) => {
setIsBtnLoading(true)
const formData = new FormData();
diff --git a/src/Pages/Deposit/DepositViewHistory/DepositHistory.jsx b/src/Pages/Deposit/DepositViewHistory/DepositHistory.jsx
index 058a068..46016d5 100644
--- a/src/Pages/Deposit/DepositViewHistory/DepositHistory.jsx
+++ b/src/Pages/Deposit/DepositViewHistory/DepositHistory.jsx
@@ -64,15 +64,6 @@ const DepositHistory = () => {
} = useGetDepositHistoryQuery({ page: currentPage, size: pageSize });
- useEffect(() => {
- // Simulate loading
- const timer = setTimeout(() => {
- setIsLoading(false);
- }, 1500);
-
- // Cleanup the timer on component unmount
- return () => clearTimeout(timer);
- }, []);
// ====================================================[Table Setup]================================================================
const tableHeadRow = [
@@ -101,15 +92,15 @@ const DepositHistory = () => {
});
}, 300);
- // ====================================================[Table Filter]================================================================
- const filteredData = data?.data?.rows.filter((item) => {
- // Filter by name (case insensitive)
- const name = item.createdAt;
- const searchLower = searchTerm.toLowerCase();
- const nameMatches = name.toLowerCase().includes(searchLower);
+// ====================================================[Table Filter]================================================================
+const filteredData = data?.data?.rows.filter((item) => {
+ // Combine firstName, lastName, and countryName for filtering
+ const name = [item.firstName, item.lastName, item.countryName].filter(Boolean).join(' ');
+ const searchLower = searchTerm.toLowerCase();
+ const nameMatches = name.toLowerCase().includes(searchLower);
+ return nameMatches;
+});
- return nameMatches;
- });
// const handleView = (id) => {
// setActionId(id);
@@ -139,34 +130,34 @@ const DepositHistory = () => {
fontWeight={"500"}
className="d-flex align-items-center web-text-small"
>
- {item?.principal?.investor_details?.clientReference_id}
+ {item?.clientReference_id}
),
"First Name": (
- {item?.principal?.firstName}
+ {item?.firstName}
),
"Last Name": (
- {item?.principal?.lastName}
+ {item?.lastName}
),
Country: (
- {item?.principal?.investor_details?.country?.countryName}
+ {item?.countryName}
),
"Phone Number": (
- {item?.principal?.mobileNumber}
+ {item?.mobileNumber}
),
@@ -304,7 +295,7 @@ const DepositHistory = () => {
tableHeadRow={tableHeadRow}
// setData={setExtractedArray}
data={extractedArray}
- isLoading={isLoading}
+ isLoading={depositHistoryLoading}
viewActionId={actionId}
setViewActionId={setActionId}
setMouseEnteredId={setMouseEnteredId}
diff --git a/src/Pages/IO_Management/CreateIO/CreateIO.jsx b/src/Pages/IO_Management/CreateIO/CreateIO.jsx
index 9d0ca4c..942c9ec 100644
--- a/src/Pages/IO_Management/CreateIO/CreateIO.jsx
+++ b/src/Pages/IO_Management/CreateIO/CreateIO.jsx
@@ -15,6 +15,7 @@ import ViewIOdataHeader from "../ViewIO/ViewIOdataHeader";
import { useParams } from "react-router-dom";
import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders";
import { useGetIOprepopulateDataQuery } from "../../../Services/io.service";
+import UnderConstruction from "../../UnderConstruction";
const CreateIO = () => {
const id = useParams()?.id;
@@ -57,7 +58,8 @@ const CreateIO = () => {
},
{
label: "Investors",
- Content: Investors,
+ // Content: Investors,
+ Content: UnderConstruction,
isDisabled: id ? false : true,
},
{
diff --git a/src/Pages/IO_Management/CreateIO/IOArtifactsVideo.jsx b/src/Pages/IO_Management/CreateIO/IOArtifactsVideo.jsx
index 52d91d2..5416043 100644
--- a/src/Pages/IO_Management/CreateIO/IOArtifactsVideo.jsx
+++ b/src/Pages/IO_Management/CreateIO/IOArtifactsVideo.jsx
@@ -27,7 +27,10 @@ import ToastBox from "../../../Components/ToastBox";
const investmentVideoSchema = yup.object().shape({
artifactName: yup.string().required("Artifact name is required"),
- artifactStreamingURL: yup.string().required("Artifact streaming URL is required").url("Invalid URL format"),
+ artifactStreamingURL: yup.string()
+ .required("Artifact streaming URL is required")
+ .url("Invalid URL format")
+ .matches(/\.mp4$/, "URL must end with .mp4"),
});
const IOArtifactsAdd = ({ isOpen, onClose, firstField, actionId, setActionId, data }) => {
diff --git a/src/Pages/IO_Management/CreateIO/IODetails.jsx b/src/Pages/IO_Management/CreateIO/IODetails.jsx
index 7afc83c..e828255 100644
--- a/src/Pages/IO_Management/CreateIO/IODetails.jsx
+++ b/src/Pages/IO_Management/CreateIO/IODetails.jsx
@@ -286,6 +286,8 @@ const IODetails = ({ enableNextTab, index, data }) => {
section: " ",
width: "49%",
value: IObyID?.data?.holdingPeriod,
+ maxLength:20,
+ helperText:`Maximum length should be 20 characters. You have entered ${watch()?.holdingPeriod?.length || 0} characters.`
},
{
label: "Holding Period (Arabic)",
@@ -297,6 +299,8 @@ const IODetails = ({ enableNextTab, index, data }) => {
section: " ",
width: "49%",
value: IObyID?.data?.holdingPeriodArabic,
+ maxLength:20,
+ helperText:`Maximum length should be 20 characters. You have entered ${watch()?.holdingPeriodArabic?.length || 0} characters.`
},
diff --git a/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx b/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx
index 6a9c277..f877143 100644
--- a/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx
+++ b/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx
@@ -78,7 +78,7 @@ const IONAVDetails = () => {
fontWeight={"500"}
className="d-flex align-items-center web-text-small"
>
- {`$ ${item.transactionAmount}`}
+ {`${item.transactionAmount}`}
),
"Last NAV update": (
@@ -89,7 +89,7 @@ const IONAVDetails = () => {
fontWeight={"500"}
className="d-flex align-items-center web-text-small"
>
- {item.previousNAVvalue && `$ ${item.previousNAVvalue}`}
+ {item.previousNAVvalue && `${item.previousNAVvalue}`}
),
"Investment Closed": (
@@ -100,7 +100,7 @@ const IONAVDetails = () => {
fontWeight={"500"}
className="d-flex align-items-center web-text-small"
>
- {item.initialNAVvalue&&`$ ${item.initialNAVvalue}`}
+ {item.initialNAVvalue&& `${item.initialNAVvalue}`}
),
"Comments": (
diff --git a/src/Pages/IO_Management/KeyMeritsAdd.jsx b/src/Pages/IO_Management/KeyMeritsAdd.jsx
index e3102e0..2ce992b 100644
--- a/src/Pages/IO_Management/KeyMeritsAdd.jsx
+++ b/src/Pages/IO_Management/KeyMeritsAdd.jsx
@@ -80,32 +80,26 @@ const KeyMeritsAdd = ({ isOpen, onClose, firstField, id, icons }) => {
setIsLoading(true);
try {
const res = await createKeyMerits({ data: formData, id });
+ console.log(res?.error?.status);
+
if (res?.data?.statusCode === 201) {
toast({
render: () => ,
});
- setAlert(false);
- onClose();
- setIsLoading(false);
- reset();
+ handleClose()
return;
}
- if (res?.error?.data?.code === 400) {
+ if (res?.error?.status === 400 || res?.error?.status === 500 ) {
toast({
render: () => (
),
});
setIsLoading(false);
- onClose();
setAlert(false);
- reset();
- setFile(null);
- setSelectedImageIcon(null);
- setSelectedIcon("Select Icon");
return;
- }
+ }
} catch (error) {
if (error) {
toast({
@@ -118,12 +112,7 @@ const KeyMeritsAdd = ({ isOpen, onClose, firstField, id, icons }) => {
});
}
setIsLoading(false);
- onClose();
- setAlert(false);
- reset();
- setFile(null);
- setSelectedImageIcon(null);
- setSelectedIcon("Select Icon");
+ handleClose()
}
reset();
};
@@ -147,6 +136,7 @@ const KeyMeritsAdd = ({ isOpen, onClose, firstField, id, icons }) => {
const handleClose = () => {
onClose();
+ setIsLoading(false);
setAlert(false);
reset();
setFile(null);
diff --git a/src/Pages/IO_Management/KeyMeritsEdit.jsx b/src/Pages/IO_Management/KeyMeritsEdit.jsx
index 557f8dc..473658b 100644
--- a/src/Pages/IO_Management/KeyMeritsEdit.jsx
+++ b/src/Pages/IO_Management/KeyMeritsEdit.jsx
@@ -59,6 +59,8 @@ const KeyMeritsEdit = ({
const [selectedImageIcon, setSelectedImageIcon] = useState(null);
const found = data?.find((item) => item?.id === actionId);
+ console.log(found);
+
const {
control,
@@ -71,6 +73,9 @@ const KeyMeritsEdit = ({
});
// useEffect to reset the form when `found` changes
useEffect(() => {
+ setValue("icon_xid", found?.icon?.id);
+ setSelectedIcon(found?.icon?.iconName); // Update selected icon name
+ setSelectedImageIcon(found?.icon?.iconFilePath);
if (found) {
reset({
meritsHeader: found?.meritsHeader,
@@ -91,10 +96,7 @@ const KeyMeritsEdit = ({
toast({
render: () => ,
});
- setAlert(false);
- onClose();
- setIsLoading(false);
- reset();
+ handleClose()
return;
}
if (res?.error?.data?.code === 400) {
@@ -103,10 +105,7 @@ const KeyMeritsEdit = ({
),
});
- setAlert(false);
- onClose();
- setIsLoading(false);
- reset();
+ handleClose()
return;
}
} catch (error) {
@@ -121,10 +120,7 @@ const KeyMeritsEdit = ({
),
});
}
- setIsLoading(false);
- setAlert(false);
- onClose();
- reset();
+ handleClose()
}
reset();
};
@@ -140,6 +136,14 @@ const KeyMeritsEdit = ({
setSelectedImageIcon(iconFilePath);
};
+ const handleClose = () => {
+ setIsLoading(false);
+ setAlert(false);
+ onClose();
+ reset();
+
+ }
+
return (
<>
{
+ if (isNaN(value)) return '';
+ const formatted = parseFloat(value).toFixed(2).toString();
+ const [integer, decimal] = formatted.split('.');
+ const formattedInteger = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+ return decimal ? `${formattedInteger}.${decimal}` : formattedInteger;
+};
const AmountInvested = ({ isOpen, onClose }) => {
+ const params = useParams();
+ const toast = useToast();
+ const id = params?.id;
+ const { control, register, handleSubmit, reset, watch, formState: { errors } } = useForm({
+ resolver: yupResolver(validationSchema),
+ });
+ const [isLoading, setIsLoading] = useState(false);
+ const { IODetails } = useContext(GlobalStateContext);
+ const [amountInvested] = useAmountIvestmentMutation();
+
+ useEffect(() => {
+ if (IODetails?.goalAmount) {
+ const totalAmount = parseFloat(IODetails.goalAmount);
+ const ioCashUpdate = parseFloat(IODetails.goalAmount)
+ reset({
+ Total_Amount: totalAmount,
+ IoCash: ioCashUpdate,
+ });
+ }
+ }, [IODetails, reset]);
+
+ const onSubmit = async (data) => {
+ console.log(data);
+ setIsLoading(true);
+
+ try {
+ const res = await amountInvested({ data, id });
+ console.log(res);
+ if (res?.data?.statusCode === 200) {
+ toast({
+ render: () => ,
+ });
+ setIsLoading(false);
+ onClose();
+ } else if (res?.error?.status === 400) {
+ toast({
+ render: () => (
+
+ ),
+ });
+ setIsLoading(false);
+ }
+ } catch (error) {
+ setIsLoading(false);
+ }
+ };
+
+ const handleAmountChange = (e) => {
+ const amount = parseFloat(e.target.value) || 0;
+ const totalAmount = parseFloat(IODetails?.goalAmount) || 0;
+ const ioCash = (totalAmount - amount).toFixed(2);
+
+ reset({
+ amountInvested: parseFloat(amount),
+ IoCash: parseFloat(ioCash),
+ Total_Amount: IODetails?.goalAmount
+ });
+ };
+
return (
@@ -23,73 +107,92 @@ const AmountInvested = ({ isOpen, onClose }) => {
Amount Invested
-
-
- Date
-
-
-
+
-
-
-
-
);
diff --git a/src/Pages/IO_Management/ViewIO/HeaderModal/UpdateIOStatus.jsx b/src/Pages/IO_Management/ViewIO/HeaderModal/UpdateIOStatus.jsx
index 8248b0d..f900abe 100644
--- a/src/Pages/IO_Management/ViewIO/HeaderModal/UpdateIOStatus.jsx
+++ b/src/Pages/IO_Management/ViewIO/HeaderModal/UpdateIOStatus.jsx
@@ -1,9 +1,9 @@
-
import { ChevronDownIcon } from "@chakra-ui/icons";
import React, { useEffect, useState } from "react";
import {
Badge,
Button,
+ FormControl,
FormLabel,
Menu,
MenuButton,
@@ -16,39 +16,41 @@ import {
ModalFooter,
ModalHeader,
ModalOverlay,
+ FormErrorMessage
} from "@chakra-ui/react";
import {
- useGetIOByIdQuery,
useGetIOprepopulateDataQuery,
useUpdateStatusIoMutation,
} from "../../../../Services/io.service";
import { useParams } from "react-router-dom";
-const UpdateIOStatus = ({ isOpen, onClose , status}) => {
+const UpdateIOStatus = ({ isOpen, onClose, status }) => {
const params = useParams();
const id = params?.id;
- const [selectedItem, setSelectedItem] = useState(status?.[0]?.statusAdmin);
+ const [selectedItem, setSelectedItem] = useState();
const [isLoadingg, setIsLoading] = useState(false);
- const { data, error, isLoading } = useGetIOprepopulateDataQuery();
+ const [error, setError] = useState("");
const [selectedStatusId, setSelectedStatusId] = useState(status?.[0]?.id);
- useEffect(() => {
- setSelectedItem(status?.[0]?.statusAdmin)
- setSelectedStatusId(status?.[0]?.id)
- }, [status])
-
-
-
-
+ const { data } = useGetIOprepopulateDataQuery();
const [updateStatusIo] = useUpdateStatusIoMutation();
+ useEffect(() => {
+ setSelectedStatusId(status?.[0]?.id);
+ }, [status]);
+
const handleMenuItemClick = (item, id) => {
setSelectedItem(item);
setSelectedStatusId(id);
};
const handleSubmit = async () => {
- setIsLoading(true)
+ if (!selectedStatusId) {
+ setError("Status is required.");
+ return;
+ }
+ setError("");
+ setIsLoading(true);
try {
const res = await updateStatusIo({
data: {
@@ -57,109 +59,117 @@ const UpdateIOStatus = ({ isOpen, onClose , status}) => {
id,
});
console.log(res);
- setIsLoading(false)
- onClose()
- } catch (error) {}
+ setIsLoading(false);
+ handleClose();
+ } catch (error) {
+ setIsLoading(false);
+ }
};
+ const handleClose = () => {
+ setSelectedItem("")
+ onClose()
+ }
+
return (
-
+
Update IO Status Transaction
-
- Status
-
-
+ ) : "Select Item"}
+
+
+ {status?.length > 0 ?
+ {status?.map(({ id, statusAdmin }) => (
+
+ ))}
+ :""}
+
+ {error}
+
-
diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx
index 4dde58b..035c470 100644
--- a/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx
+++ b/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx
@@ -35,6 +35,7 @@ import IOArtifacts from "../CreateIO/IOArtifacts";
import IOCashDetails from "../CreateIO/IOCashDetails";
import IONAVDetails from "../CreateIO/IONAVDetails";
import { useGetIOprepopulateDataQuery } from "../../../Services/io.service";
+import UnderConstruction from "../../UnderConstruction";
const ViewIOdata = () => {
@@ -51,10 +52,12 @@ const ViewIOdata = () => {
{ label: "Investment documents", content: },
{ label: "Key merits", content: },
{ label: "IO artifacts", content: },
- { label: "Investors", content: },
+ // { label: "Investors", content: },
+ { label: "Investors", content: },
{ label: "IO Cash Details", content: },
{ label: "IO NAV Details", content: },
- { label: "Distribution to Investors", content: },
+ // { label: "Distribution to Investors", content: },
+ { label: "Distribution to Investors", content: },
];
return (
diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx
index 7cbced4..a0c3a2d 100644
--- a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx
+++ b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx
@@ -23,6 +23,7 @@ import {
Badge,
Box,
Icon,
+ HStack,
} from "@chakra-ui/react";
import header from "../../../assets/IOheader.png";
import { HiDotsVertical } from "react-icons/hi";
@@ -40,6 +41,7 @@ import Cancle from "./HeaderModal/Cancle";
import { AddIcon } from "@chakra-ui/icons";
import { GrGallery } from "react-icons/gr";
import Loader01 from "../../../Components/Loaders/Loader01";
+import { formatCurrency } from "../../../Components/CurrencyInput";
const ViewIOdataHeader = ({data, isLoading}) => {
const params = useParams();
@@ -156,7 +158,9 @@ const filteredMenu = menu?.filter(item => apiTransactionTitles?.includes(item.id
-console.log(isLoading);
+console.log(IODetails?.ioNAV);
+console.log(IODetails?.ioCash);
+console.log(IODetails?.ioMVNAV);
@@ -166,7 +170,7 @@ console.log(isLoading);
{/* */}
{IODetails?.artifactsImage?.[0]?.artifactPathName ? (
@@ -249,6 +253,10 @@ console.log(isLoading);
: "---"}
+
+
+
+
@@ -290,7 +298,7 @@ console.log(isLoading);
IO NAV
- {IODetails?.currentValuation ? IODetails?.currentValuation : "00.00"}
+ {IODetails?.ioNAV ? formatCurrency(IODetails?.ioNAV) : "00.00"}
@@ -308,10 +316,12 @@ console.log(isLoading);
IO MV NAV
- {IODetails?.marketValue ? IODetails?.marketValue : "00.00"}
+ {IODetails?.ioMVNAV ? formatCurrency(IODetails?.ioMVNAV) : "00.00"}
+
+
{
// ====================================================[Table Filter]================================================================
const filteredData = investorDetails?.data?.rows?.filter((item) => {
// Filter by name (case insensitive)
- const name = item.clientReference_id;
+ const name = [item?.principal?.firstName, item?.principal?.lastName, item?.country?.countryName, item?.principal?.mobileNumber, item?.principal?.emailAddress].filter(Boolean).join(' ');
const searchLower = searchTerm.toLowerCase();
const nameMatches = name?.toLowerCase().includes(searchLower);
diff --git a/src/Pages/Master/Sponser/AddSponser.jsx b/src/Pages/Master/Sponser/AddSponser.jsx
index 3859537..7f706b3 100644
--- a/src/Pages/Master/Sponser/AddSponser.jsx
+++ b/src/Pages/Master/Sponser/AddSponser.jsx
@@ -54,7 +54,7 @@ const AddSponser = () => {
const [isLoadingBtn, setIsLoadingBtn] = useState(false);
const [alert, setAlert] = useState(false);
const [form, setForm] = useState();
- const [isSwitchOn, setIsSwitchOn] = useState();
+ const [isSwitchOn, setIsSwitchOn] = useState(true);
const [createSponser] = useCreateSponserMutation();
const [updateSponser] = useUpdateSponserMutation();
@@ -62,9 +62,6 @@ const AddSponser = () => {
// Fetch sponsor data only if id exists
const {data: sponserByIdData,error,isLoading,} = useGetSponserByIdQuery(id, {skip: !id,});
- console.log(sponserByIdData);
-
-
// ======================== [validators] ===========================
const {
@@ -124,15 +121,15 @@ const AddSponser = () => {
setIsLoadingBtn(false);
setAlert(false);
navigate("/sponser");
- } else {
+ } else if(response?.error?.status === 400) {
toast({
render: () => (
-
+
),
});
setIsLoadingBtn(false);
- navigate("/sponser");
+ setAlert(false)
}
});
} catch (error) {
@@ -179,22 +176,22 @@ const AddSponser = () => {
const formFields = [
{
- label: "Sponser name (English)",
+ label: "Sponsor name (English)",
placeHolder: " ",
name: "sponsorName",
type: "text",
isRequired: true,
- section: "Add Details",
+ section: "",
maxLength:50,
helperText:`Maximum length should be 50 characters. You have entered ${watch()?.sponsorName?.length || 0} characters.`
},
{
- label: "Sponser name (Arabic)",
+ label: "Sponsor name (Arabic)",
name: "sponsorNameArabic",
placeHolder: " ",
type: "text",
isRequired: true,
- section: "Add Details",
+ section: "",
arabic: true,
right: true,
maxLength:55,
@@ -206,7 +203,7 @@ const AddSponser = () => {
placeHolder: " ",
type: "email",
// isRequired: true,
- section: "Add Details",
+ section: "",
},
];
@@ -214,22 +211,22 @@ const AddSponser = () => {
const formEditFields = [
{
- label: "Sponser name",
+ label: "Sponsor name",
placeHolder: " ",
name: "sponsorName",
type: "text",
isRequired: true,
- section: "Add Details",
+ section: "",
maxLength:55,
helperText:`Maximum length should be 55 characters. You have entered ${watch()?.sponsorName?.length || 0} characters.`
},
{
- label: "Sponser name (Arabic)",
+ label: "Sponsor name (Arabic)",
name: "sponsorNameArabic",
placeHolder: " ",
type: "text",
isRequired: true,
- section: "Add Details",
+ section: "",
arabic: true,
maxLength:55,
helperText:`Maximum length should be 55 characters. You have entered ${watch()?.sponsorNameArabic?.length || 0} characters.`
@@ -240,7 +237,7 @@ const AddSponser = () => {
placeHolder: " ",
type: "email",
// isRequired: true,
- section: "Add Details",
+ section: "",
},
];
diff --git a/src/Pages/Master/Sponser/Sponsers.jsx b/src/Pages/Master/Sponser/Sponsers.jsx
index 97fb94d..0f16db1 100644
--- a/src/Pages/Master/Sponser/Sponsers.jsx
+++ b/src/Pages/Master/Sponser/Sponsers.jsx
@@ -158,9 +158,21 @@ const Sponser = () => {
setIsLoading(true);
try {
const response = await deleteSponser(actionId);
- console.log(response);
- setIsLoading(false);
- setDeleteAlert(false);
+ console.log(response?.data);
+ if(response?.error?.data?.code === 400){
+ toast({
+ render: () => ,
+ });
+ setIsLoading(false);
+ setDeleteAlert(false);
+ } else if(response?.data?.statusCode === 201 || response?.data?.statusCode === 200){
+ toast({
+ render: () => ,
+ });
+ setIsLoading(false);
+ setDeleteAlert(false);
+
+ }
} catch (error) {}
};
diff --git a/src/Pages/UnderConstruction.jsx b/src/Pages/UnderConstruction.jsx
index 834dc42..56bf614 100644
--- a/src/Pages/UnderConstruction.jsx
+++ b/src/Pages/UnderConstruction.jsx
@@ -3,10 +3,10 @@ import React from 'react'
// import noInternet from "../assets/Error.svg"
import robot from "../assets/under-construction.png"
-const UnderConstruction = ({title}) => {
+const UnderConstruction = ({title, h}) => {
return (
({
+ url: `/io/admin/amount-invested/${id}`,
+ method: "POST",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
+
+
+
+
+
@@ -277,5 +293,11 @@ export const {
- useUpdateStatusIoMutation
+ useUpdateStatusIoMutation,
+
+
+
+
+
+ useAmountIvestmentMutation,
} = ioService;