From 513e222a8f5cafe8ad89990644036732d5406cfa Mon Sep 17 00:00:00 2001 From: siddheshmorewdi Date: Mon, 15 Jul 2024 12:27:23 +0530 Subject: [PATCH] updated --- src/Components/CutomBreadcrumb.jsx | 104 ++++++++ src/Components/Loaders/FullscreenLoaders.jsx | 4 +- src/Components/NavBreadCrumbs.jsx | 40 +++ src/Layout/DefaultLayout.jsx | 10 +- .../IO_Management/CreateIO/IODetails.jsx | 15 +- .../ViewIO/HeaderModal/AmountInvested.jsx | 19 +- .../ViewIO/HeaderModal/Cancle.jsx | 63 +++++ .../HeaderModal/DistributionInvestor.jsx | 242 +++++++++++++++--- .../IO_Management/ViewIO/HeaderModal/Exit.jsx | 86 +++++++ .../ViewIO/HeaderModal/UpdateIOStatus.jsx | 2 +- .../IO_Management/ViewIO/ViewIOdataHeader.jsx | 81 ++++-- .../IO_Management/ViewIO/ViewIOdetails.jsx | 3 +- .../InvestorDetails/InvestorDetails.jsx | 14 + src/Pages/Login.jsx | 2 +- .../Master/InvestmentType/InvestmentType.jsx | 2 +- src/Pages/Master/Sponser/Sponsers.jsx | 5 + src/Services/api.service.js | 68 +++++ src/Services/sponser.service.js | 12 +- src/Store/Store.js | 77 +----- src/assets/pro1.jpg | Bin 0 -> 545323 bytes src/main.jsx | 3 +- 21 files changed, 694 insertions(+), 158 deletions(-) create mode 100644 src/Components/CutomBreadcrumb.jsx create mode 100644 src/Components/NavBreadCrumbs.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/Cancle.jsx create mode 100644 src/Pages/IO_Management/ViewIO/HeaderModal/Exit.jsx create mode 100644 src/Services/api.service.js create mode 100644 src/assets/pro1.jpg diff --git a/src/Components/CutomBreadcrumb.jsx b/src/Components/CutomBreadcrumb.jsx new file mode 100644 index 0000000..d11c711 --- /dev/null +++ b/src/Components/CutomBreadcrumb.jsx @@ -0,0 +1,104 @@ +import React from "react"; +import { + Box, + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + Text, + Button, +} from "@chakra-ui/react"; +import { Link, useLocation } from "react-router-dom"; +import { nav } from "../Routes/Nav"; + +const CustomBreadcrumb = () => { + const { pathname } = useLocation(); + + // Remove leading slash and split path into parts + const pathParts = pathname.replace(/^\//, "").split("/"); + + // Find the current menu item based on the provided path + const findMenuItem = (path) => { + let menuItem = null; + nav.forEach((menu) => { + if (menu.submenu) { + menu.submenu.forEach((item) => { + if (item.path === path) { + menuItem = item; + } + }); + } + }); + return menuItem; + }; + + // Generate breadcrumb items based on the current path + const generateBreadcrumbs = (pathParts) => { + const breadcrumbs = []; + let currentPath = ""; + pathParts.forEach((part, index) => { + currentPath += `/${part}`; + const menuItem = findMenuItem(currentPath); + if (menuItem) { + breadcrumbs.push({ path: currentPath, title: menuItem.title }); + } else { + // For nested paths without direct match, create a custom breadcrumb title + const customTitle = part.replace(/-/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()); + breadcrumbs.push({ path: currentPath, title: customTitle }); + } + }); + return breadcrumbs; + }; + + const breadcrumbs = generateBreadcrumbs(pathParts); + console.log(breadcrumbs); + + return ( + + {" "} + {breadcrumbs.map((item, index) => ( + + + + / + + + + + ))} + + ); +}; + +export default CustomBreadcrumb; diff --git a/src/Components/Loaders/FullscreenLoaders.jsx b/src/Components/Loaders/FullscreenLoaders.jsx index 3d6dfd6..b5fe61a 100644 --- a/src/Components/Loaders/FullscreenLoaders.jsx +++ b/src/Components/Loaders/FullscreenLoaders.jsx @@ -8,9 +8,9 @@ const FullscreenLoaders = () => { justifyContent={"center"} alignItems={"center"} w={"100%"} - h={"90%"} + h={"70vh"} > - + ); }; diff --git a/src/Components/NavBreadCrumbs.jsx b/src/Components/NavBreadCrumbs.jsx new file mode 100644 index 0000000..490c4d5 --- /dev/null +++ b/src/Components/NavBreadCrumbs.jsx @@ -0,0 +1,40 @@ +import React from "react"; +import { Link } from "react-router-dom"; // Adjust this based on your routing setup +import CustomBreadcrumb from "./CutomBreadcrumb"; + +const NavBreadcrumbs = ({ nav }) => { + // Function to recursively flatten submenu items and add parent titles + const flattenNav = (items, parentTitle = "") => { + let breadcrumbs = []; + items.forEach((item) => { + if (item.submenu) { + // Add parent title if present + breadcrumbs.push({ + label: parentTitle ? `${parentTitle} / ${item.title}` : item.title, + link: null, // Adjust link as per your routing setup + }); + // Recursively flatten submenu items + breadcrumbs = [ + ...breadcrumbs, + ...flattenNav(item.submenu, `${parentTitle} / ${item.title}`), + ]; + } else { + // If no submenu, add current item as breadcrumb + breadcrumbs.push({ + label: parentTitle ? `${parentTitle} / ${item.title}` : item.title, + link: item.path, // Adjust link as per your routing setup + }); + } + }); + return breadcrumbs; + }; + + // Flatten nav array into breadcrumbs + const flattenedNav = flattenNav(nav); + + console.log(nav); + + return ; +}; + +export default NavBreadcrumbs; diff --git a/src/Layout/DefaultLayout.jsx b/src/Layout/DefaultLayout.jsx index b501cc0..02523fe 100644 --- a/src/Layout/DefaultLayout.jsx +++ b/src/Layout/DefaultLayout.jsx @@ -49,6 +49,7 @@ import { Image, Alert, AlertIcon, + Breadcrumb, } from "@chakra-ui/react"; import GlobalStateContext from "../Contexts/GlobalStateContext"; import Cookies from "js-cookie"; // Import the Cookies library @@ -68,6 +69,8 @@ import { GrManual } from "react-icons/gr"; import { LuContact } from "react-icons/lu"; import shield from "../assets/shield.png"; import SplashScreen from "../Pages/SplashScreen"; +import CutomBreadcrumb from "../Components/CutomBreadcrumb"; +import CustomBreadcrumb from "../Components/CutomBreadcrumb"; const DashboardLayout = ({ isOnline }) => { const navigate = useNavigate(); @@ -120,8 +123,6 @@ const DashboardLayout = ({ isOnline }) => { navigate("/login"); }; - console.log(); - // // Function to get the title based on the route const getTitle = () => { switch (true) { @@ -623,10 +624,11 @@ const DashboardLayout = ({ isOnline }) => { )}
{/*
@@ -639,6 +641,8 @@ const DashboardLayout = ({ isOnline }) => { icon title={getTitle()} /> + +
diff --git a/src/Pages/IO_Management/CreateIO/IODetails.jsx b/src/Pages/IO_Management/CreateIO/IODetails.jsx index 9e54f81..4514ea9 100644 --- a/src/Pages/IO_Management/CreateIO/IODetails.jsx +++ b/src/Pages/IO_Management/CreateIO/IODetails.jsx @@ -97,12 +97,7 @@ const schema = yup.object().shape({ .min(new Date(), "Closing date cannot be in the past"), ioStatus: yup - .string() - .required("Investment Object status is required") - .oneOf( - ["open", "pending", "closed"], - "Investment Object status must be one of 'open', 'pending', or 'closed'" - ), + .string(), }); const IODetails = ({ enableNextTab, index, isLoading, setIsLoading }) => { @@ -153,6 +148,8 @@ const IODetails = ({ enableNextTab, index, isLoading, setIsLoading }) => { resolver: yupResolver(schema), }); + console.log(errors); + useEffect(() => { const found = IODetails?.find( (item) => item?.id.toString() === id?.toString() @@ -515,8 +512,10 @@ const IODetails = ({ enableNextTab, index, isLoading, setIsLoading }) => { return enableNextTab(index); } const id = generateUniqueId(); - setValue("id", id) - const updatedData = { ...data, id }; + const status = "Draft" + // setValue("id", id) + console.log(data); + const updatedData = { ...data, id, ioStatus : status }; console.log(data); // Add the updated data to the IODetails array diff --git a/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx b/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx index 15a1674..1d385b8 100644 --- a/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx +++ b/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx @@ -43,19 +43,32 @@ const AmountInvested = ({ isOpen, onClose }) => { size="sm" rounded={'sm'} textAlign={'end'} + readOnly + value={"$ 100000"} focusBorderColor="forestGreen.300" fontSize={"sm"} placeholder="$00.00" /> + + Amount to invest + + + - Comments + IO Cash -