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 = (
);
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;