import React, { lazy, Suspense } from "react"; import Skeleton from '@mui/material/Skeleton'; import Box from '@mui/material/Box'; const PrometheusChart = lazy(() => import('../../Charts2/PrometheusChart')); import LazyChartBatchRenderer from "../hooks/LazyChartBatchRender"; // Функция для генерации названия метрики на основе id const getMetricName = (id) => { return `zvks_apiforsnmp_measure_${id}`; }; const getAllChildIds = (node) => { let ids = []; if (node.id) { ids.push(node.id); } if (node.items && node.items.length > 0) { node.items.forEach((child) => { ids = ids.concat(getAllChildIds(child)); }); } return ids; }; // Компонент Skeleton для графика const ChartSkeleton = () => ( ); // Компонент Skeleton для родительского контейнера const ContainerSkeleton = () => ( {/* Заголовок */} {[...Array(3)].map((_, i) => ( ))} ); const tabContent = (data) => { const tabContent = {}; // Функция для рекурсивного обхода и сбора данных const generateContent = (nodes) => { nodes.forEach((node) => { if (node.items && node.items.length > 0) { const childrenContent = generateContent(node.items); const content = (

{node.title}

}> tabContent[child.id].content)} />

Контент для {node.title}.

); tabContent[node.id] = { title: node.title, content: content, }; } else { const metricName = getMetricName(node.id); const content = (

{node.title}

}>
); tabContent[node.id] = { title: node.title, content: content, }; } }); return (
{nodes.map((node) => (
{tabContent[node.id].content}
))}
); }; if (data.items && data.items.length > 0) { generateContent(data.items); } else { console.warn("Данные отсутствуют или массив items пуст"); } return tabContent; }; export default tabContent;