import React, { useState, useEffect, useRef } from "react"; import { Box, Button } from "@mui/material"; import { DataGrid, GridToolbarContainer } from "@mui/x-data-grid"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faEllipsisV } from "@fortawesome/free-solid-svg-icons"; const api = process.env.REACT_APP_API_BASE_URL; function CustomToolbar({ apiRef, handleModal }) { const handleGoToPage1 = () => { if (apiRef.current) { apiRef.current.setPage(1); } }; return ( ); } function TokenRegistery() { const [menuItems, setMenuItems] = useState([]); const [selectedMenuItem, setSelectedMenuItem] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const apiRef = useRef(null); useEffect(() => { const fetchData = async () => { const token = localStorage.getItem("token"); // Get token from local storage try { const response = await fetch( `${api}/apiregistery/getall`, { headers: { Authorization: `Bearer ${token}`, }, } ); const data = await response.json(); setMenuItems(data); } catch (error) { console.error("Error fetching data:", error); } }; fetchData(); }, []); const handleThreeDotsClick = (menuItemId) => { setSelectedMenuItem(menuItemId === selectedMenuItem ? null : menuItemId); }; const columns = [ { field: "table_id", headerName: "Table ID", width: 200, headerClassName: "custom-header", cellClassName: "custom-cell", }, { field: "token_name", headerName: "Token Name", width: 250, headerClassName: "custom-header", cellClassName: "custom-cell", }, { field: "token", headerName: "Token", width: 200, headerClassName: "custom-header", cellClassName: "custom-cell", }, { field: "actions", headerName: "Actions", width: 150, renderCell: ({ row }) => (
handleThreeDotsClick(row.id)} >
{selectedMenuItem === row.id && (
)}
), }, ]; return (

Token Registry

( setIsModalOpen(true)} /> ), }} pageSize={10} onGridReady={(gridApi) => { apiRef.current = gridApi; }} className="data-grid" />
{/* Add your modals and other components here */}
); } export default TokenRegistery;