diff --git a/AppImage/components/metrics-dialog.tsx b/AppImage/components/metrics-dialog.tsx index d437a2a..75df49a 100644 --- a/AppImage/components/metrics-dialog.tsx +++ b/AppImage/components/metrics-dialog.tsx @@ -26,6 +26,8 @@ export function MetricsView({ vmid, vmName, vmType, onBack }: MetricsViewProps) const [data, setData] = useState([]) const [loading, setLoading] = useState(false) const [error, setError] = useState(null) + const [hiddenDiskLines, setHiddenDiskLines] = useState([]) + const [hiddenNetworkLines, setHiddenNetworkLines] = useState([]) useEffect(() => { fetchMetrics() @@ -259,7 +261,7 @@ export function MetricsView({ vmid, vmName, vmType, onBack }: MetricsViewProps) borderRadius: "6px", }} /> - + @@ -313,7 +317,7 @@ export function MetricsView({ vmid, vmName, vmType, onBack }: MetricsViewProps) borderRadius: "6px", }} /> - + @@ -339,6 +345,66 @@ export function MetricsView({ vmid, vmName, vmType, onBack }: MetricsViewProps) ) } + const handleDiskLegendClick = (dataKey: string) => { + setHiddenDiskLines((prev) => { + if (prev.includes(dataKey)) { + return prev.filter((key) => key !== dataKey) + } else { + return [...prev, dataKey] + } + }) + } + + const handleNetworkLegendClick = (dataKey: string) => { + setHiddenNetworkLines((prev) => { + if (prev.includes(dataKey)) { + return prev.filter((key) => key !== dataKey) + } else { + return [...prev, dataKey] + } + }) + } + + const renderDiskLegend = (props: any) => { + const { payload } = props + return ( +
+ {payload.map((entry: any) => ( + + ))} +
+ ) + } + + const renderNetworkLegend = (props: any) => { + const { payload } = props + return ( +
+ {payload.map((entry: any) => ( + + ))} +
+ ) + } + return (
{/* Fixed Header */}