import React, { useState, useEffect } from "react"; import { DesktopOutlined, FileOutlined, PieChartOutlined, TeamOutlined, UserOutlined, } from "@ant-design/icons"; import { Breadcrumb, Layout, Menu, Typography, theme } from "antd"; import { ToastContainer, toast } from "react-toastify"; import { Box, Button } from "@mui/material"; import TextField from "@mui/material/TextField"; import EditButton from "./EditButton"; import { width } from "@mui/system"; import "react-toastify/dist/ReactToastify.css"; import { useSearchParams } from "react-router-dom"; import LoadingContainer from "./LoadingContainer"; import HomeIcon from "@mui/icons-material/Home"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useNavigate } from "react-router-dom"; import QueryStatsIcon from "@mui/icons-material/QueryStats"; import RotateLeftIcon from "@mui/icons-material/RotateLeft"; import RotateRightIcon from "@mui/icons-material/RotateRight"; import { useSelector, useDispatch } from "react-redux"; import { updatePartAanomolyData, updateSystemNo, } from "../redux/actions/actions"; import SimpleDialog from "./SimpleDialog"; import SystemNumberDialog from "./SystemNumberDialog"; import ValidationContainer from "./ValidationContainer"; const { Header, Content, Footer, Sider } = Layout; const QueryExecutor = () => { const [responseData, setResponseData] = useState([]); const [totalData, setTotalData] = useState([]); const [currentPage, setCurrentPage] = useState(1); const [totalPages, setTotalPages] = useState(0); const [imageColumn, setImageColumn] = useState(null); const [query, setQuery] = useState(""); const [isLoading, setIsLoading] = useState(false); const [limit, setLimit] = useState(""); const recordsPerPage = 5; const { token: { colorBgContainer, borderRadiusLG }, } = theme.useToken(); const fetchQueryValue = async () => { if (query.includes("limit")) { alert("Please specify the limit in the input field."); return; } if (query.includes(";")) { alert("Please remove the special character from the query ';'"); return; } if (!limit) { alert("Limit cannot be empty !!"); return; } setIsLoading(true); const payload = { query: query, limit: limit, }; try { const response = await fetch( `${import.meta.env.VITE_REACT_APP_BACKEND_URL}/fetchQueryValue`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(payload), } ); const data = await response.json(); setIsLoading(false); if (data.status === "success") { setTotalData(data.results); const totalPageCount = Math.ceil(data.results.length / recordsPerPage); setTotalPages(totalPageCount); setCurrentPage(1); setResponseData(data.results.slice(0, recordsPerPage)); } else { toast.error(data.message); } } catch (error) { console.error("Error:", error); } }; useEffect(() => { if (totalData.length > 0) { const startIndex = (currentPage - 1) * recordsPerPage; const endIndex = startIndex + recordsPerPage; setResponseData(totalData.slice(startIndex, endIndex)); } }, [currentPage, totalData]); const getTableData = () => { if (responseData.length === 0) return null; const keys = Object.keys(totalData[0]); return (
| sno | Record Info | Image |
|
);
}
});
return (
|---|---|---|
| {sno} | {imageInfo} |