"use client"; import React, { useMemo } from "react"; import Box from "@mui/material/Box"; import Grid2 from "@mui/material/Unstable_Grid2"; import useMediaQuery from "@mui/material/useMediaQuery"; import { useTheme } from "@mui/material"; import { PieCards } from "./pieCards"; import { PieData, NodePieChart } from "./nodePieChart"; import { Machine } from "@/api/model/machine"; import { Status } from "@/api/model"; interface EnhancedTableToolbarProps { tableData: readonly Machine[]; } export function EnhancedTableToolbar( props: React.PropsWithChildren, ) { const { tableData } = props; const theme = useTheme(); const is_lg = useMediaQuery(theme.breakpoints.down("lg")); const pieData: PieData[] = useMemo(() => { const online = tableData.filter( (row) => row.status === Status.online, ).length; const offline = tableData.filter( (row) => row.status === Status.offline, ).length; const pending = tableData.filter( (row) => row.status === Status.unknown, ).length; return [ { name: "Online", value: online, color: theme.palette.success.main }, { name: "Offline", value: offline, color: theme.palette.error.main }, { name: "Pending", value: pending, color: theme.palette.warning.main }, ]; }, [tableData, theme]); return ( {/* Pie Chart Grid */} {/* Card Stack Grid */} {/*Toolbar Grid */} {props.children} ); }