import { Box, Button, HStack, Input, Text, Tooltip, useDisclosure } from "@chakra-ui/react"; import React, { useContext, useEffect, useRef, useState } from "react"; import InvestmentDocuments from "../InvestmentDocuments"; import DataTable from "../../../Components/DataTable/DataTable"; import CustomAlertDialog from "../../../Components/CustomAlertDialog"; import GlobalStateContext from "../../../Contexts/GlobalStateContext"; import { debounce } from "../../Master/Sponser/AddSponser"; import { formatDate } from "../../../Components/Functions/UTCConvertor"; import { AddIcon, DeleteIcon, DownloadIcon, EditIcon, ViewIcon } from "@chakra-ui/icons"; import KeyMeritsAdd from "../KeyMeritsAdd"; const KeyMerits = ({enableNextTab, index}) => { const { keyMerits, setKeyMerits,slideFromRight} = useContext(GlobalStateContext); const firstField = useRef(); 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(""); const { isOpen, onOpen, onClose } = useDisclosure(); useEffect(() => { // Simulate loading const timer = setTimeout(() => { setIsLoading(false); }, 1500); // Cleanup the timer on component unmount return () => clearTimeout(timer); }, []); const tableHeadRow = [ "Sr.no", "Title", "Sub title", "Icon", "Action", ]; const handleUpdateStatus = debounce((id) => { setKeyMerits((prevKeyMerits) => prevKeyMerits.map((keyMerits) => keyMerits.id === id ? { ...keyMerits, status: !keyMerits.status } : keyMerits ) ); toast({ render: () => , }); }, 300); const filteredData = keyMerits?.filter((item) => { // Filter by name (case insensitive) const name = item.title; const searchLower = searchTerm.toLowerCase(); const nameMatches = name.toLowerCase().includes(searchLower); return nameMatches; }); const handleDelete = () => { const updatedKeyMerits = keyMerits.filter((keyMerits) => keyMerits.id !== actionId); setTimeout(() => { setSponser(updatedKeyMerits); setDeleteAlert(false); setIsLoading(false); }, 100); setIsLoading(true); }; const [ extractedArray, setExtractedArray ] = useState(filteredData?.map((item, index) => ({ id: item.id, "Sr.no": ( {index + 1} ), "Title": ( {item.title} ), "Sub title": ( {item.subTitle} ), "Icon": ( {item.icon} ), Action: ( ), }))); return ( setSearchTerm(e.target.value)} /> setDeleteAlert(false)} isOpen={deleteAlert} message={"Are you sure you want to delete sponers?"} alertHandler={handleDelete} isLoading={isLoading} /> ); }; export default KeyMerits;