import { Avatar, Badge, Box, Button, HStack, Input, Text, Tooltip, useDisclosure, useToast, } from "@chakra-ui/react"; import React, { useContext, useEffect, useState } from "react"; import { OPACITY_ON_LOAD } from "../../../Layout/animations"; import NormalTable from "../../../Components/DataTable/NormalTable"; import Pagination from "../../../Components/Pagination"; import GlobalStateContext from "../../../Contexts/GlobalStateContext"; import CustomAlertDialog from "../../../Components/CustomAlertDialog"; import { formatDate } from "../../../Components/Functions/UTCConvertor"; import { CheckIcon, CloseIcon } from "@chakra-ui/icons"; import ConfirmModal from "./ConfirmModal"; import RejectModal from "./RejectModal"; import { TABLE_PAGINATION } from "../../../Constants/Paginations"; import { useGetDepositHistoryQuery } from "../../../Services/deposit.request.service"; import { useGetDrawalHistoryQuery } from "../../../Services/drawal.request.service"; // import { useGetDrawalHistoryQuery } from "../../../Services/drawal.request.service"; // import { formatDate } from "../../Components/Functions/UTCConvertor"; const ViewHistory = () => { const toast = useToast(); const { slideFromRight, viewHistory, setViewHistory } = 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(""); // const { // isOpen: isConfirmOpen, // onOpen: onConfirmOpen, // onClose: onConfirmClose, // } = useDisclosure(); // const { // isOpen: isRejectOpen, // onOpen: onRejectOpen, // onClose: onRejectClose, // } = useDisclosure(); const [pageSize, setPageSize] = useState(TABLE_PAGINATION?.size); const [currentPage, setCurrentPage] = useState(TABLE_PAGINATION?.page); const { data, error, isLoading: drawalHistoryLoading, refetch } = useGetDrawalHistoryQuery({ page: currentPage, size: pageSize }); // Use useEffect to refetch data when the component mounts useEffect(() => { refetch(); }, [refetch]); // console.log(data?.data?.rows); useEffect(() => { // Simulate loading const timer = setTimeout(() => { setIsLoading(false); }, 1500); // Cleanup the timer on component unmount return () => clearTimeout(timer); }, []); // ====================================================[Table Filter]================================================================ const filteredData = data?.data?.rows.filter((item) => { // Filter by name (case insensitive) const name = item.firstName; 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; }); // ====================================================[Table Setup]================================================================ const tableHeadRow = [ "Sr.no", "Date", "Client ID", "First Name", "Last Name", "Country", "Phone Number", "Currency", "Withdrawal Amount", "Amount in Investor currency", "Status", ]; const extractedArray = filteredData?.map((item, index) => ({ // id: item?.id, "Sr.no": ( {index + 1} ), Date: ( {formatDate(item?.createdAt)} ), "Client ID": ( {item.clientReference_id} ), "First Name": ( {item.firstName} ), "Last Name": ( {item.lastName} ), Country: ( {item.countryName} ), "Phone Number": ( {item.mobileNumber} ), Currency: ( {item.currencyCode} ), "Withdrawal Amount": ( {item.USDAmount} ), "Amount in Investor currency": ( {item.investorAmount} ), Status: ( { // setActionId(item.id); // if (item.status === "Approved") { // onConfirmOpen(); // } else { // onRejectOpen(); // } // }} as={"span"} color={item.transactionStatus === "Approved" ? "green" : "red"} > {item.transactionStatus} ), })); const handleDelete = () => { const updatedSponsors = sponser.filter( (sponsor) => sponsor.id !== actionId ); setTimeout(() => { setSponser(updatedSponsors); 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 ViewHistory;