import { Avatar, Badge, Box, Button, HStack, Input, Menu, MenuButton, MenuItem, MenuList, Portal, Select, Switch, Tag, Text, Tooltip, useToast, } from "@chakra-ui/react"; import React, { useContext, useEffect, useState } from "react"; import { OPACITY_ON_LOAD } from "../../../Layout/animations"; import DataTable from "../../../Components/DataTable/DataTable"; import { HiDotsVertical } from "react-icons/hi"; import { Link, Link as RouterLink, useNavigate } from "react-router-dom"; import { AddIcon, CheckIcon, CloseIcon, DeleteIcon, EditIcon, EmailIcon, ViewIcon, } from "@chakra-ui/icons"; import Pagination from "../../../Components/Pagination"; import GlobalStateContext from "../../../Contexts/GlobalStateContext"; import CustomAlertDialog from "../../../Components/CustomAlertDialog"; import ToastBox from "../../../Components/ToastBox"; // import { debounce } from "./AddIOCharges"; const formatDate = (date) => new Date(date).toLocaleDateString(); // Simple date formatter const ViewIOTable = () => { const navigate = useNavigate(); const toast = useToast(); const { IODetails, setIODetails, slideFromRight } = useContext(GlobalStateContext); const [searchTerm, setSearchTerm] = useState(""); const [isLoading, setIsLoading] = useState(true); const [deleteAlert, setDeleteAlert] = useState(false); const [actionId, setActionId] = useState(false); const [mouseEntered, setMouseEntered] = useState(false); const [mouseEnteredId, setMouseEnteredId] = useState(""); useEffect(() => { // Simulate loading const timer = setTimeout(() => { setIsLoading(false); }, 1500); // Cleanup the timer on component unmount return () => clearTimeout(timer); }, []); // ====================================================[Table Setup]================================================================ const tableHeadRow = [ // "Sr.no", "Deal ID", "IO Name", "Sponsorer Name", "IO status", "Action", ]; // const handleUpdateStatus = debounce((id) => { // setInvestmentType((prevInvestmentType) => // prevInvestmentType.map((investmentType) => // investmentType.id === id // ? { ...investmentType, status: !investmentType.status } // : investmentType // ) // ); // toast({ // render: () => , // }); // }, 300); console.log(IODetails); // ====================================================[Table Filter]================================================================ const filteredData = IODetails.filter((item) => { // Filter by name (case insensitive) const name = item.ioName; const searchLower = searchTerm.toLowerCase(); const nameMatches = name.toLowerCase().includes(searchLower); // Filter by status // const status = item.status; // const statusLower = status ? "active" : "inactive"; // const statusMatches = // statusFilter === "all" || // (statusFilter === "active" && status === true) || // (statusFilter === "inactive" && status === false); return nameMatches; }); const extractedArray = filteredData?.map((item, index) => ({ "Sr.no": ( {index + 1} ), "Deal ID": ( {item.id} ), "IO Name": ( {item.ioName} ), "Sponsorer Name": ( {item.sponserName} ), "IO status": ( {item.ioStatus} ), Action: ( {/* */} ), })); const handleDelete = () => { const upDatedIO = IODetails.filter((viewIO) => viewIO.id !== actionId); setTimeout(() => { setIODetails(upDatedIO); setDeleteAlert(false); setIsLoading(false); }, 100); setIsLoading(true); }; return ( setSearchTerm(e.target.value)} /> {/* */} setDeleteAlert(false)} isOpen={deleteAlert} message={"Are you sure you want to delete sponers?"} alertHandler={handleDelete} isLoading={isLoading} /> ); }; export default ViewIOTable;