import { useEffect, useState } from "react"; import CallTable from "./CallTable"; import { useCallData } from "../../Hooks/CallRequests"; import { Button, Input, Radio, RadioChangeEvent, Select, Space, Typography, } from "antd"; import { TCall } from "../../types/CallRequests/TCall"; import { TSocket } from "../../types/common/TSocket"; import { LeftOutlined, RightOutlined } from "@ant-design/icons"; import { theme } from "antd"; const Call = ({ socketData }: { socketData: TSocket | undefined }) => { const [status, setStatus] = useState("Awaiting"); const [page, setPage] = useState(1); const [pageSize, setPageSize] = useState(10); const [tableData, setTableData] = useState(); const { data, isLoading, refetch } = useCallData({ status: status, page: page, page_size: pageSize, }); const pageSizeOptions = [10, 20, 30, 40, 50]; const handlePageSizeChange = (value: number) => { setPageSize(value); setPage(1); }; // const theme = localStorage.getItem("theme") === "true" ? true : false; const { token } = theme.useToken(); useEffect(() => { setTableData(data?.data); }, [data]); useEffect(() => { let dataStatus = socketData?.callback_request?.status; if (socketData?.type === "callback_request") { if (status === "Awaiting") { setTableData((prev) => { if (prev && prev.length >= 15) { prev.pop(); } if (dataStatus === "Resolved") { const data = (prev || []).filter( (b: TCall) => b?.id !== socketData?.callback_request?.id ); return data; } if (dataStatus === "Awaiting") { return [socketData?.callback_request, ...(prev || [])] as TCall[]; } return prev; }); } else if (status === "Resolved") { setTableData((prev) => { if (prev && prev.length >= 15) { prev.pop(); } if (dataStatus === "Awaiting") { const data = (prev || []).filter( (b: TCall) => b?.id !== socketData?.callback_request?.id ); return data; } if (dataStatus === "Resolved") { return [socketData?.callback_request, ...(prev || [])] as TCall[]; } return prev; }); } } }, [socketData]); const Next = () => { const a = Number(page) + 1; setPage(a); }; const Previos = () => { Number(page); if (page > 1) { const a = Number(page) - 1; setPage(a); } }; return (
Call Requests
setStatus(e.target.value)} size="middle" value={status} style={{ marginLeft: 20 }} > Awaiting Resolved
{ let num = e.target.value; if (Number(num) && num !== "0") { setPage(Number(num)); } }} />
); }; export default Call;