2024-07-08 20:14:34 +05:30
|
|
|
import {
|
2024-12-11 18:47:43 +05:30
|
|
|
Badge,
|
|
|
|
|
Box,
|
|
|
|
|
HStack,
|
|
|
|
|
Icon,
|
2024-07-08 20:14:34 +05:30
|
|
|
Image,
|
|
|
|
|
Menu,
|
|
|
|
|
MenuButton,
|
|
|
|
|
MenuItem,
|
|
|
|
|
MenuList,
|
|
|
|
|
Text,
|
|
|
|
|
useDisclosure,
|
2024-11-18 17:54:23 +05:30
|
|
|
useToast,
|
2024-07-09 12:25:52 +05:30
|
|
|
} from "@chakra-ui/react";
|
2024-12-11 18:47:43 +05:30
|
|
|
import { useContext, useRef } from "react";
|
|
|
|
|
import { GrGallery } from "react-icons/gr";
|
2024-07-08 20:14:34 +05:30
|
|
|
import { HiDotsVertical } from "react-icons/hi";
|
2024-12-11 18:47:43 +05:30
|
|
|
import { useParams } from "react-router-dom";
|
|
|
|
|
import Loader01 from "../../../Components/Loaders/Loader01";
|
|
|
|
|
import ToastBox from "../../../Components/ToastBox";
|
|
|
|
|
import {
|
|
|
|
|
decryptString,
|
|
|
|
|
encryptString,
|
|
|
|
|
isMaker,
|
|
|
|
|
} from "../../../Constants/Constants";
|
|
|
|
|
import GlobalStateContext from "../../../Contexts/GlobalStateContext";
|
|
|
|
|
import { useUpdateTransactionMutation } from "../../../Services/io.service";
|
2024-07-08 20:14:34 +05:30
|
|
|
import AmountInvested from "./HeaderModal/AmountInvested";
|
2024-12-11 18:47:43 +05:30
|
|
|
import Cancle from "./HeaderModal/Cancle";
|
2024-07-08 20:14:34 +05:30
|
|
|
import DistributionInvestor from "./HeaderModal/DistributionInvestor";
|
2024-12-11 18:47:43 +05:30
|
|
|
import DistributionSponsor from "./HeaderModal/DistributionSponsor";
|
|
|
|
|
import Exit from "./HeaderModal/Exit";
|
|
|
|
|
import FeesExpenses from "./HeaderModal/FeesExpenses";
|
2024-07-08 20:14:34 +05:30
|
|
|
import UpdateIONav from "./HeaderModal/UpdateIONav";
|
|
|
|
|
import UpdateIOStatus from "./HeaderModal/UpdateIOStatus";
|
2024-12-11 20:30:52 +05:30
|
|
|
import { useAuthProfileQuery } from "../../../Services/token.serivce";
|
2024-08-20 12:19:02 +05:30
|
|
|
// import { formatCurrency } from "../../../Components/CurrencyInput";
|
|
|
|
|
// import { removeTrailingZeros } from "../../../Constants/Constants";
|
2024-07-05 15:33:08 +05:30
|
|
|
|
2024-08-22 12:10:07 +05:30
|
|
|
const ViewIOdataHeader = ({ data, isLoading }) => {
|
2024-12-11 18:47:43 +05:30
|
|
|
const params = useParams();
|
|
|
|
|
const toast = useToast();
|
|
|
|
|
const id = params?.id;
|
2024-07-08 20:14:34 +05:30
|
|
|
const { isOpen, onOpen, onClose } = useDisclosure();
|
2024-07-09 12:25:52 +05:30
|
|
|
const btnRef = useRef();
|
2024-08-12 17:22:04 +05:30
|
|
|
const { IODetails, isIOloading } = useContext(GlobalStateContext);
|
2024-08-22 12:10:07 +05:30
|
|
|
|
2024-12-11 20:30:52 +05:30
|
|
|
const { data: authProfile } = useAuthProfileQuery();
|
|
|
|
|
if (authProfile?.data?.role) {
|
|
|
|
|
localStorage.setItem("role", encryptString(authProfile.data.role));
|
|
|
|
|
} else {
|
|
|
|
|
console.warn("Role is undefined or null. Skipping localStorage update.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-08 20:14:34 +05:30
|
|
|
const {
|
|
|
|
|
isOpen: isInvestmentOpen,
|
|
|
|
|
onOpen: onInvestmentOpen,
|
|
|
|
|
onClose: onInvestmentClose,
|
|
|
|
|
} = useDisclosure();
|
|
|
|
|
const {
|
|
|
|
|
isOpen: isFeesOpen,
|
|
|
|
|
onOpen: onFeesOpen,
|
|
|
|
|
onClose: onFeesClose,
|
|
|
|
|
} = useDisclosure();
|
|
|
|
|
const {
|
|
|
|
|
isOpen: isDistSponsorOpen,
|
|
|
|
|
onOpen: onDistSponsorOpen,
|
|
|
|
|
onClose: onDistSponsorClose,
|
|
|
|
|
} = useDisclosure();
|
|
|
|
|
const {
|
|
|
|
|
isOpen: isDistInvestorOpen,
|
|
|
|
|
onOpen: onDistInvestorOpen,
|
|
|
|
|
onClose: onDistInvestorClose,
|
|
|
|
|
} = useDisclosure();
|
|
|
|
|
const {
|
|
|
|
|
isOpen: isUpdateNavOpen,
|
|
|
|
|
onOpen: onUpdateNavOpen,
|
|
|
|
|
onClose: onUpdateNavClose,
|
|
|
|
|
} = useDisclosure();
|
|
|
|
|
const {
|
|
|
|
|
isOpen: isUpdateStatusOpen,
|
|
|
|
|
onOpen: onUpdateStatusOpen,
|
|
|
|
|
onClose: onUpdateStatusClose,
|
|
|
|
|
} = useDisclosure();
|
2024-07-15 12:27:23 +05:30
|
|
|
const {
|
|
|
|
|
isOpen: isExitOpen,
|
|
|
|
|
onOpen: onExitOpen,
|
|
|
|
|
onClose: onExitClose,
|
|
|
|
|
} = useDisclosure();
|
|
|
|
|
const {
|
|
|
|
|
isOpen: isCancleOpen,
|
|
|
|
|
onOpen: onCancleOpen,
|
|
|
|
|
onClose: onCancleClose,
|
|
|
|
|
} = useDisclosure();
|
2024-07-08 20:14:34 +05:30
|
|
|
const bg = {
|
|
|
|
|
bg: "#fff",
|
|
|
|
|
};
|
|
|
|
|
const hover = {
|
|
|
|
|
textDecoration: "underline",
|
|
|
|
|
background: "#fff",
|
|
|
|
|
};
|
2024-07-09 13:13:39 +05:30
|
|
|
const style = {
|
|
|
|
|
fontSize: "0.875rem",
|
|
|
|
|
fontWeight: "400",
|
|
|
|
|
};
|
2024-12-12 16:19:36 +05:30
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
const [updateTransaction] = useUpdateTransactionMutation();
|
2024-11-18 17:54:23 +05:30
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
const handleDistributionInvestors = async () => {
|
2024-11-22 16:19:59 +05:30
|
|
|
try {
|
2024-12-11 18:47:43 +05:30
|
|
|
const res = await updateTransaction(id);
|
|
|
|
|
|
|
|
|
|
if (res?.data) {
|
2024-11-22 16:19:59 +05:30
|
|
|
// toast({
|
|
|
|
|
// render: () => (
|
|
|
|
|
// <ToastBox status={"success"} message={res?.data?.message} />
|
|
|
|
|
// ),
|
|
|
|
|
// });
|
|
|
|
|
// setIsLoading(false);
|
2024-12-11 18:47:43 +05:30
|
|
|
onDistInvestorOpen();
|
|
|
|
|
} else if (res?.error) {
|
|
|
|
|
toast({
|
|
|
|
|
render: () => (
|
|
|
|
|
<ToastBox status={"error"} message={res?.error?.data?.message} />
|
|
|
|
|
),
|
|
|
|
|
});
|
2024-11-22 16:19:59 +05:30
|
|
|
// setIsLoading(false);
|
2024-12-11 18:47:43 +05:30
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.log(error);
|
2024-11-22 16:19:59 +05:30
|
|
|
}
|
2024-12-11 18:47:43 +05:30
|
|
|
};
|
2024-11-22 16:19:59 +05:30
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
const handleExit = async () => {
|
2024-11-18 17:54:23 +05:30
|
|
|
try {
|
2024-12-11 18:47:43 +05:30
|
|
|
const res = await updateTransaction(id);
|
|
|
|
|
|
|
|
|
|
if (res?.data) {
|
2024-11-22 18:51:05 +05:30
|
|
|
// toast({
|
|
|
|
|
// render: () => (
|
|
|
|
|
// <ToastBox status={"success"} message={res?.data?.message} />
|
|
|
|
|
// ),
|
|
|
|
|
// });
|
2024-11-18 17:54:23 +05:30
|
|
|
// setIsLoading(false);
|
2024-12-11 18:47:43 +05:30
|
|
|
onExitOpen();
|
|
|
|
|
} else if (res?.error) {
|
|
|
|
|
toast({
|
|
|
|
|
render: () => (
|
|
|
|
|
<ToastBox status={"error"} message={res?.error?.data?.message} />
|
|
|
|
|
),
|
|
|
|
|
});
|
2024-11-18 17:54:23 +05:30
|
|
|
// setIsLoading(false);
|
2024-12-11 18:47:43 +05:30
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.log(error);
|
2024-11-18 17:54:23 +05:30
|
|
|
}
|
2024-12-11 18:47:43 +05:30
|
|
|
};
|
2024-11-18 17:54:23 +05:30
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
const handleInvestment = async () => {
|
2024-11-18 17:54:23 +05:30
|
|
|
try {
|
2024-12-11 18:47:43 +05:30
|
|
|
const res = await updateTransaction(id);
|
|
|
|
|
|
|
|
|
|
if (res?.data) {
|
2024-11-22 18:51:05 +05:30
|
|
|
// toast({
|
|
|
|
|
// render: () => (
|
|
|
|
|
// <ToastBox status={"success"} message={res?.data?.message} />
|
|
|
|
|
// ),
|
|
|
|
|
// });
|
2024-11-18 17:54:23 +05:30
|
|
|
// setIsLoading(false);
|
2024-12-11 18:47:43 +05:30
|
|
|
onInvestmentOpen();
|
|
|
|
|
} else if (res?.error) {
|
|
|
|
|
toast({
|
|
|
|
|
render: () => (
|
|
|
|
|
<ToastBox status={"error"} message={res?.error?.data?.message} />
|
|
|
|
|
),
|
|
|
|
|
});
|
2024-11-18 17:54:23 +05:30
|
|
|
// setIsLoading(false);
|
2024-12-11 18:47:43 +05:30
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.log(error);
|
2024-11-18 17:54:23 +05:30
|
|
|
}
|
2024-12-11 18:47:43 +05:30
|
|
|
};
|
2024-11-18 17:54:23 +05:30
|
|
|
|
2024-08-07 20:18:36 +05:30
|
|
|
const menu = [
|
|
|
|
|
{
|
2024-08-22 12:10:07 +05:30
|
|
|
id: 1,
|
|
|
|
|
title: "Amount Invested",
|
2024-11-22 16:19:59 +05:30
|
|
|
onClickFunction: handleInvestment,
|
2024-08-07 20:18:36 +05:30
|
|
|
},
|
2024-08-12 12:22:01 +05:30
|
|
|
// {
|
|
|
|
|
// id:2,
|
|
|
|
|
// title:"Fees & Expenses",
|
|
|
|
|
// onClickFunction:onFeesOpen
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// id:3,
|
|
|
|
|
// title:"Distribution From Sponsors",
|
|
|
|
|
// onClickFunction:onDistSponsorOpen
|
|
|
|
|
// },
|
2024-08-07 20:18:36 +05:30
|
|
|
{
|
2024-08-22 12:10:07 +05:30
|
|
|
id: 6,
|
|
|
|
|
title: "Distribution To Investors",
|
2024-11-18 17:54:23 +05:30
|
|
|
onClickFunction: handleDistributionInvestors,
|
2024-12-11 18:47:43 +05:30
|
|
|
},
|
2024-08-12 15:35:39 +05:30
|
|
|
{
|
2024-08-22 12:10:07 +05:30
|
|
|
id: 5,
|
|
|
|
|
title: "Update IO NAV",
|
|
|
|
|
onClickFunction: onUpdateNavOpen,
|
2024-08-12 15:35:39 +05:30
|
|
|
},
|
2024-08-07 20:18:36 +05:30
|
|
|
{
|
2024-08-22 12:10:07 +05:30
|
|
|
id: 8,
|
|
|
|
|
title: "Exit",
|
2024-11-18 17:54:23 +05:30
|
|
|
onClickFunction: handleExit,
|
2024-08-07 20:18:36 +05:30
|
|
|
},
|
|
|
|
|
{
|
2024-08-22 12:10:07 +05:30
|
|
|
id: 9,
|
|
|
|
|
title: "Cancel",
|
|
|
|
|
onClickFunction: onCancleOpen,
|
2024-08-07 20:18:36 +05:30
|
|
|
},
|
|
|
|
|
{
|
2024-08-22 12:10:07 +05:30
|
|
|
id: 10,
|
|
|
|
|
title: "Update IO Status",
|
|
|
|
|
onClickFunction: onUpdateStatusOpen,
|
2024-08-07 20:18:36 +05:30
|
|
|
},
|
2024-08-22 12:10:07 +05:30
|
|
|
];
|
2024-08-07 20:18:36 +05:30
|
|
|
|
2024-08-12 12:22:01 +05:30
|
|
|
// console.log(IODetails?.mainTranscation);
|
2024-08-07 20:18:36 +05:30
|
|
|
|
2024-08-22 12:10:07 +05:30
|
|
|
// Extract titles from apiTransaction
|
|
|
|
|
const apiTransactionTitles = IODetails?.mainTranscation?.map(
|
|
|
|
|
(transaction) => transaction.id
|
|
|
|
|
);
|
|
|
|
|
// Filter menu items
|
|
|
|
|
const filteredMenu = menu?.filter((item) =>
|
|
|
|
|
apiTransactionTitles?.includes(item.id)
|
|
|
|
|
);
|
2024-08-07 20:18:36 +05:30
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
const balanceAmount =
|
|
|
|
|
IODetails?.goalAmount - IODetails?.totalAmtInvestmentInUSD;
|
2024-08-28 19:35:39 +05:30
|
|
|
|
2024-08-22 12:10:07 +05:30
|
|
|
return IODetails?.investmentNameEnglish ? (
|
2024-07-05 15:33:08 +05:30
|
|
|
<Box
|
|
|
|
|
display={"flex"}
|
|
|
|
|
alignItems={"center"}
|
2024-08-14 12:19:27 +05:30
|
|
|
justifyContent={"space-between"}
|
2024-07-24 19:58:15 +05:30
|
|
|
gap={8}
|
2024-08-12 17:22:04 +05:30
|
|
|
bg={
|
2024-12-20 17:17:18 +05:30
|
|
|
IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_DRAFT
|
2024-08-12 17:22:04 +05:30
|
|
|
? "#EDF2F7"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_PROCESSING
|
2024-08-12 17:22:04 +05:30
|
|
|
? "#FEFBBF"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_OPEN
|
2024-08-12 17:22:04 +05:30
|
|
|
? "#BEE2F8"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_CLOSED
|
2024-08-12 17:22:04 +05:30
|
|
|
? "#C6F6D5"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_EXITED
|
2024-08-22 12:10:07 +05:30
|
|
|
? "#FED7D7"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_CANCELLED
|
2024-10-02 18:41:38 +05:30
|
|
|
? "#E9D8FD"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_DEACTIVATE
|
2024-08-12 17:22:04 +05:30
|
|
|
? "#E9D8FD"
|
|
|
|
|
: null
|
|
|
|
|
}
|
2024-07-08 20:42:55 +05:30
|
|
|
rounded={"md"}
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #f5e8ca)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #d4a5a5)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #d4a5a5)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #b3e5fc)'
|
|
|
|
|
// bgGradient='linear(to-r, #ffd54f, #caf5d8)'
|
2024-08-12 17:22:04 +05:30
|
|
|
// bgGradient='linear(to-r, #caf5d8, #a8e6cf)'
|
2024-07-09 19:05:08 +05:30
|
|
|
boxShadow={"md"}
|
|
|
|
|
position={"relative"}
|
2024-07-05 15:33:08 +05:30
|
|
|
>
|
2024-08-28 19:35:39 +05:30
|
|
|
<HStack gap={4}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Box h={100} w={200} p={1.5}>
|
|
|
|
|
{/* <Image rounded={'md'} h={"100%"} src={ " https://tanami.betadelivery.com/" + IODetails?.ioName} alt={IODetails?.ioName}/> */}
|
|
|
|
|
{IODetails?.artifactsImage?.[0]?.artifactPathName ? (
|
|
|
|
|
<Image
|
|
|
|
|
rounded={"md"}
|
|
|
|
|
h={"100%"}
|
|
|
|
|
w={"100%"}
|
|
|
|
|
objectFit={"cover"}
|
|
|
|
|
src={
|
|
|
|
|
import.meta.env.VITE_IMAGE_URL +
|
|
|
|
|
IODetails?.artifactsImage?.[0]?.artifactPathName
|
|
|
|
|
}
|
|
|
|
|
alt={IODetails?.ioName}
|
|
|
|
|
/>
|
|
|
|
|
) : (
|
|
|
|
|
<Box
|
|
|
|
|
w={"100%"}
|
|
|
|
|
h={"100%"}
|
|
|
|
|
display={"flex"}
|
|
|
|
|
justifyContent={"center"}
|
|
|
|
|
alignItems={"center"}
|
|
|
|
|
bg={"#fff"}
|
|
|
|
|
rounded={"md"}
|
|
|
|
|
>
|
|
|
|
|
<Icon color={"gray.700"} as={GrGallery} />
|
|
|
|
|
</Box>
|
|
|
|
|
)}
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box>
|
2024-08-29 17:02:43 +05:30
|
|
|
<Box display={"flex"} gap={2} pb={1}>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
me={2}
|
|
|
|
|
>
|
|
|
|
|
IO Name :-
|
|
|
|
|
</Text>
|
|
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
|
|
|
|
{IODetails?.investmentNameEnglish
|
|
|
|
|
? IODetails?.investmentNameEnglish
|
|
|
|
|
: "---"}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
<Box display={"flex"} gap={2} pb={1}>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
me={2}
|
|
|
|
|
>
|
|
|
|
|
Sponsor Name :-
|
|
|
|
|
</Text>
|
|
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
|
|
|
|
{IODetails?.sponsor?.sponsorName
|
|
|
|
|
? IODetails?.sponsor?.sponsorName
|
|
|
|
|
: "---"}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
2024-08-29 17:02:43 +05:30
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
<Box display={"flex"} gap={2} pb={1}>
|
2024-08-29 17:02:43 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
me={2}
|
|
|
|
|
>
|
|
|
|
|
IO ID :-
|
|
|
|
|
</Text>
|
|
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
2024-12-11 18:47:43 +05:30
|
|
|
{IODetails?.io_id ? IODetails?.io_id : "---"}
|
2024-08-29 17:02:43 +05:30
|
|
|
</Text>
|
|
|
|
|
</Box>
|
2024-08-28 19:35:39 +05:30
|
|
|
</Box>
|
|
|
|
|
</HStack>
|
|
|
|
|
|
2024-12-11 18:47:43 +05:30
|
|
|
<Box gap={8} me={12} w={"220px"}>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2} pb={1}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
2024-07-26 12:10:47 +05:30
|
|
|
>
|
2024-08-28 19:35:39 +05:30
|
|
|
Goal Amount :-
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
|
|
|
|
{/* {IODetails?.ioNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioNAV)) : "00.00"} */}
|
|
|
|
|
{parseFloat(IODetails?.goalAmount || 0).toLocaleString(undefined, {
|
|
|
|
|
minimumFractionDigits: 2,
|
|
|
|
|
maximumFractionDigits: 2,
|
|
|
|
|
})}
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2} pb={1}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
>
|
2024-09-13 19:43:38 +05:30
|
|
|
Amount Raised :-
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
|
|
|
|
{/* {IODetails?.ioCash ? formatCurrency(removeTrailingZeros(IODetails?.ioCash)) : "00.00"} */}
|
2024-12-11 18:47:43 +05:30
|
|
|
{parseFloat(IODetails?.totalAmtInvestmentInUSD || 0).toLocaleString(
|
|
|
|
|
undefined,
|
|
|
|
|
{
|
|
|
|
|
minimumFractionDigits: 2,
|
|
|
|
|
maximumFractionDigits: 2,
|
|
|
|
|
}
|
|
|
|
|
)}
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
|
|
|
|
</Box>
|
2024-08-14 12:19:27 +05:30
|
|
|
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2}>
|
|
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
>
|
|
|
|
|
Balance :-
|
|
|
|
|
</Text>
|
|
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
|
|
|
|
{/* {IODetails?.ioMVNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioMVNAV)) : "00.00"} */}
|
|
|
|
|
{parseFloat(balanceAmount || 0).toLocaleString(undefined, {
|
|
|
|
|
minimumFractionDigits: 2,
|
|
|
|
|
maximumFractionDigits: 2,
|
|
|
|
|
})}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-10-02 18:41:38 +05:30
|
|
|
<Box gap={8} me={12} w={"180px"}>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2} pb={1}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
textAlign={"center"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
>
|
2024-08-28 19:35:39 +05:30
|
|
|
IO Status :-
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
|
|
|
|
<Badge
|
|
|
|
|
rounded={"full"}
|
|
|
|
|
pt={0}
|
|
|
|
|
pb={0.5}
|
|
|
|
|
textTransform={"none"}
|
|
|
|
|
// variant={"solid"}
|
|
|
|
|
colorScheme={
|
2024-12-20 17:17:18 +05:30
|
|
|
IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_DRAFT
|
2024-08-22 12:10:07 +05:30
|
|
|
? "gray"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_PROCESSING
|
2024-08-22 12:10:07 +05:30
|
|
|
? "yellow"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_OPEN
|
2024-08-22 12:10:07 +05:30
|
|
|
? "blue"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_CLOSED
|
2024-08-22 12:10:07 +05:30
|
|
|
? "green"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_EXITED
|
2024-08-22 12:10:07 +05:30
|
|
|
? "red"
|
2024-12-20 17:17:18 +05:30
|
|
|
: IODetails?.ioStatus?.statusAdmin === import.meta.env.VITE_STATUS_CANCELLED
|
2024-10-02 18:41:38 +05:30
|
|
|
? "purple"
|
2024-08-22 12:10:07 +05:30
|
|
|
: "purple"
|
|
|
|
|
}
|
|
|
|
|
>
|
|
|
|
|
{IODetails?.ioStatus?.statusAdmin
|
|
|
|
|
? IODetails?.ioStatus?.statusAdmin
|
|
|
|
|
: "---"}
|
|
|
|
|
</Badge>
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2} pb={1}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
>
|
2024-08-28 19:35:39 +05:30
|
|
|
IO MV :-
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
2024-08-22 12:10:07 +05:30
|
|
|
{/* {IODetails?.ioNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioNAV)) : "00.00"} */}
|
|
|
|
|
{parseFloat(IODetails?.ioNAV || 0).toLocaleString(undefined, {
|
|
|
|
|
minimumFractionDigits: 2,
|
|
|
|
|
maximumFractionDigits: 2,
|
|
|
|
|
})}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2} pb={1}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
>
|
2024-08-28 19:35:39 +05:30
|
|
|
IO cash :-
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
2024-08-22 12:10:07 +05:30
|
|
|
{/* {IODetails?.ioCash ? formatCurrency(removeTrailingZeros(IODetails?.ioCash)) : "00.00"} */}
|
|
|
|
|
{parseFloat(IODetails?.ioCash || 0).toLocaleString(undefined, {
|
|
|
|
|
minimumFractionDigits: 2,
|
|
|
|
|
maximumFractionDigits: 2,
|
|
|
|
|
})}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
|
|
|
|
|
2024-08-28 19:35:39 +05:30
|
|
|
<Box display={"flex"} justifyContent={"space-between"} gap={2}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<Text
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontSize={"xs"}
|
|
|
|
|
color={"gray.500"}
|
|
|
|
|
fontWeight={"500"}
|
|
|
|
|
>
|
2024-08-28 19:35:39 +05:30
|
|
|
IO NAV :-
|
2024-08-22 12:10:07 +05:30
|
|
|
</Text>
|
2024-08-28 19:35:39 +05:30
|
|
|
<Text as={"span"} fontSize={"xs"} fontWeight={"500"}>
|
2024-08-22 12:10:07 +05:30
|
|
|
{/* {IODetails?.ioMVNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioMVNAV)) : "00.00"} */}
|
|
|
|
|
{parseFloat(IODetails?.ioMVNAV || 0).toLocaleString(undefined, {
|
|
|
|
|
minimumFractionDigits: 2,
|
|
|
|
|
maximumFractionDigits: 2,
|
|
|
|
|
})}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
2024-08-28 19:35:39 +05:30
|
|
|
</Box>
|
2024-08-14 12:19:27 +05:30
|
|
|
|
2024-07-09 19:05:08 +05:30
|
|
|
<Box
|
|
|
|
|
position={"absolute"}
|
|
|
|
|
right={3}
|
|
|
|
|
top={2}
|
|
|
|
|
display={"flex"}
|
|
|
|
|
alignItems={"start"}
|
|
|
|
|
height={"95px"}
|
|
|
|
|
>
|
2024-12-11 18:47:43 +05:30
|
|
|
{isMaker() && (
|
|
|
|
|
<Menu>
|
|
|
|
|
<MenuButton
|
|
|
|
|
className="link p-1 rounded-1 "
|
|
|
|
|
bg={"#fff"}
|
|
|
|
|
_hover={{ backgroundColor: "#fff !important" }}
|
|
|
|
|
onClick={onOpen}
|
|
|
|
|
ref={btnRef}
|
2024-07-15 12:27:23 +05:30
|
|
|
>
|
2024-12-11 18:47:43 +05:30
|
|
|
<HiDotsVertical className="rubix-text-dark fs-6" />
|
|
|
|
|
</MenuButton>
|
|
|
|
|
<MenuList fontSize={"sm"}>
|
2024-08-22 12:10:07 +05:30
|
|
|
<MenuItem
|
2024-12-11 18:47:43 +05:30
|
|
|
_hover={{
|
|
|
|
|
bg: "#fff",
|
|
|
|
|
}}
|
|
|
|
|
as={"span"}
|
|
|
|
|
fontWeight={600}
|
2024-08-22 12:10:07 +05:30
|
|
|
className="border-bottom"
|
|
|
|
|
>
|
2024-12-11 18:47:43 +05:30
|
|
|
Tansaction
|
2024-08-22 12:10:07 +05:30
|
|
|
</MenuItem>
|
2024-12-11 18:47:43 +05:30
|
|
|
|
|
|
|
|
{filteredMenu?.map(({ id, title, onClickFunction }) => (
|
|
|
|
|
<MenuItem
|
|
|
|
|
key={id}
|
|
|
|
|
onClick={onClickFunction}
|
|
|
|
|
className="border-bottom"
|
|
|
|
|
>
|
|
|
|
|
{title}
|
|
|
|
|
</MenuItem>
|
|
|
|
|
))}
|
|
|
|
|
</MenuList>
|
|
|
|
|
</Menu>
|
|
|
|
|
)}
|
2024-07-08 20:14:34 +05:30
|
|
|
|
|
|
|
|
{/* Modals */}
|
|
|
|
|
<AmountInvested isOpen={isInvestmentOpen} onClose={onInvestmentClose} />
|
|
|
|
|
<FeesExpenses isOpen={isFeesOpen} onClose={onFeesClose} />
|
2024-08-30 16:09:07 +05:30
|
|
|
<Exit isOpen={isExitOpen} onClose={onExitClose} />
|
2024-07-15 12:27:23 +05:30
|
|
|
<Cancle isOpen={isCancleOpen} onClose={onCancleClose} />
|
2024-07-08 20:14:34 +05:30
|
|
|
<DistributionSponsor
|
|
|
|
|
isOpen={isDistSponsorOpen}
|
|
|
|
|
onClose={onDistSponsorClose}
|
|
|
|
|
/>
|
|
|
|
|
<DistributionInvestor
|
|
|
|
|
isOpen={isDistInvestorOpen}
|
|
|
|
|
onClose={onDistInvestorClose}
|
|
|
|
|
/>
|
2024-08-22 12:10:07 +05:30
|
|
|
|
2024-07-08 20:14:34 +05:30
|
|
|
<UpdateIONav isOpen={isUpdateNavOpen} onClose={onUpdateNavClose} />
|
|
|
|
|
<UpdateIOStatus
|
2024-08-12 12:22:01 +05:30
|
|
|
status={IODetails?.nextStatus}
|
2024-07-08 20:14:34 +05:30
|
|
|
isOpen={isUpdateStatusOpen}
|
|
|
|
|
onClose={onUpdateStatusClose}
|
|
|
|
|
/>
|
|
|
|
|
</Box>
|
2024-08-22 12:10:07 +05:30
|
|
|
</Box>
|
|
|
|
|
) : (
|
2024-08-13 13:46:41 +05:30
|
|
|
<Box
|
|
|
|
|
display={"flex"}
|
|
|
|
|
alignItems={"center"}
|
|
|
|
|
justifyContent={"center"}
|
|
|
|
|
rounded={"md"}
|
|
|
|
|
height={100}
|
|
|
|
|
bg={"#fff"}
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #f5e8ca)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #d4a5a5)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #d4a5a5)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #b3e5fc)'
|
|
|
|
|
// bgGradient='linear(to-r, #ffd54f, #caf5d8)'
|
|
|
|
|
// bgGradient='linear(to-r, #caf5d8, #a8e6cf)'
|
|
|
|
|
boxShadow={"md"}
|
2024-08-22 12:10:07 +05:30
|
|
|
>
|
|
|
|
|
{" "}
|
|
|
|
|
<Loader01 />
|
|
|
|
|
</Box>
|
2024-07-05 15:33:08 +05:30
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default ViewIOdataHeader;
|