diff --git a/src/Charts/PrometheusChart.jsx b/src/Charts/PrometheusChart.jsx index c4f4bd0..ddfe219 100644 --- a/src/Charts/PrometheusChart.jsx +++ b/src/Charts/PrometheusChart.jsx @@ -14,7 +14,7 @@ const PrometheusChart = ({ metricName }) => { useEffect(() => { const fetchData = async () => { try { - const response = await axios.get(`http://192.168.2.39:3000/metrics?metric=zvks_apiforsnmp_ifOutUnicastPacket1`); + const response = await axios.get(`http://192.168.2.39:3000/metrics?metric=zvks_apiforsnmp_cpurawsystem`); const result = response.data; // Проверяем структуру данных diff --git a/src/Components/Layout/Dashboard.jsx b/src/Components/Layout/Dashboard.jsx index 8a409a7..fd733a7 100644 --- a/src/Components/Layout/Dashboard.jsx +++ b/src/Components/Layout/Dashboard.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, useRef } from "react"; import SidebarMenu from "./SidebarMenu"; import TreeChart from "../TreeChart/TreeChart"; import "../../Style/Dashboard.css"; @@ -14,8 +14,11 @@ const Dashboard = () => { const [activeTab, setActiveTab] = useState("Главная"); const [tabContent, setTabContent] = useState({}); const [treeData, setTreeData] = useState(menuData); // Загружаем меню в state + const [sidebarWidth, setSidebarWidth] = useState(250); // Начальная ширина сайдбара + const [isResizing, setIsResizing] = useState(false); // Состояние перетаскивания + const sidebarRef = useRef(null); // Референс на сайдбар - // Обновление treeData каждые 10 секунд + // Обновление treeData каждые 30 секунд useEffect(() => { setTabContent(tabContentData); @@ -25,11 +28,48 @@ const Dashboard = () => { updateStatuses(updatedData); // Обновляем статусы return updatedData; }); - }, 10000); + }, 30000); return () => clearInterval(interval); }, []); + // Обработчик начала перетаскивания + const startResizing = (e) => { + e.preventDefault(); + setIsResizing(true); + }; + + // Обработчик движения мыши + const resize = (e) => { + if (isResizing) { + const newWidth = e.clientX; // Новая ширина сайдбара + if (newWidth > 100 && newWidth < 400) { // Ограничиваем минимальную и максимальную ширину + setSidebarWidth(newWidth); + } + } + }; + + // Обработчик окончания перетаскивания + const stopResizing = () => { + setIsResizing(false); + }; + + // Добавляем обработчики событий + useEffect(() => { + const handleMouseMove = (e) => resize(e); + const handleMouseUp = () => stopResizing(); + + if (isResizing) { + window.addEventListener("mousemove", handleMouseMove); + window.addEventListener("mouseup", handleMouseUp); + } + + return () => { + window.removeEventListener("mousemove", handleMouseMove); + window.removeEventListener("mouseup", handleMouseUp); + }; + }, [isResizing]); + const handleOpenTab = (id, title) => { if (!tabs.some((tab) => tab.id === id)) { setTabs([...tabs, { id, title }]); @@ -51,7 +91,8 @@ const Dashboard = () => {