diff --git a/src/App.jsx b/src/App.jsx index a176ae1..73fbf52 100755 --- a/src/App.jsx +++ b/src/App.jsx @@ -4,7 +4,7 @@ import Dashboard from "./Components/Layout/Dashboard"; import LoginModal from "./Components/UI/LoginModal"; import { lightTheme, darkTheme } from "./Style/theme"; import Logo from './assets/images/logo.svg?react'; -import { checkAuth } from "./Components/UI/auth"; // Убедитесь, что путь правильный +import { checkAuth } from "./Components/UI/auth"; function App() { const [authState, setAuthState] = useState({ diff --git a/src/Components/TreeChart/StatusService.jsx b/src/Components/TreeChart/StatusService.jsx deleted file mode 100644 index 1f4d6a8..0000000 --- a/src/Components/TreeChart/StatusService.jsx +++ /dev/null @@ -1,85 +0,0 @@ -// src/services/StatusService.js -import { statusManager1, statusManager2 } from "../TreeChart/dataUtils"; - -class StatusService { - constructor() { - this.statusData = null; - this.subscribers = new Set(); - this.pollingInterval = null; - } - - // Подписка на обновления статусов - subscribe(callback) { - this.subscribers.add(callback); - return () => this.unsubscribe(callback); - } - - unsubscribe(callback) { - this.subscribers.delete(callback); - } - - // Запуск периодического обновления статусов - startPolling(interval = 30000) { - this.fetchStatuses(); // Первый запрос сразу - this.pollingInterval = setInterval(() => this.fetchStatuses(), interval); - } - - stopPolling() { - if (this.pollingInterval) { - clearInterval(this.pollingInterval); - this.pollingInterval = null; - } - } - - // Запрос статусов с бэкенда - async fetchStatuses() { - try { - const response = await fetch('/api/metrics/all-values'); - const data = await response.json(); - - // Преобразуем данные в нужную структуру - const transformedData = this.transformData(data); - - // Обновляем статусы с помощью менеджера - statusManager1.updateStatuses(transformedData); - - // Сохраняем данные - this.statusData = transformedData; - - // Оповещаем подписчиков - this.notifySubscribers(); - - } catch (error) { - console.error('Error fetching statuses:', error); - } - } - - // Преобразование данных от бэкенда в древовидную структуру - transformData(apiData) { - // Здесь реализуйте преобразование под вашу структуру - // Пример: - return { - name: "Root System", - status: "0", - items: apiData.map(item => ({ - id: item.metric.__name__, - title: item.metric.__name__, - status: item.data[0]?.status || "0", - items: [] // Могут быть вложенные элементы - })) - }; - } - - // Получение текущих данных - getStatusData() { - return this.statusData; - } - - // Оповещение подписчиков - notifySubscribers() { - this.subscribers.forEach(callback => callback(this.statusData)); - } -} - -// Экспортируем singleton экземпляр сервиса -export const statusService = new StatusService(); \ No newline at end of file