page.tsx

Обзор

page.tsx — это React-компонент, реализующий страницу мониторинга и аналитики сети валидаторов Symbiotic, ориентированной на газо-бесплатные игры. Компонент обеспечивает отображение реального времени ключевых метрик сети, экономических показателей и системы оповещений, позволяя пользователю переключаться между различными видами отображения: обзор, живые графики, центр оповещений и подробный системный просмотр.

Основные функции файла:


Структура и описание компонентов

Функция MonitoringPage

Главный React-функциональный компонент страницы мониторинга.

Состояния (Hooks)

useEffect: Подписка на сервис аналитики

При монтировании компонента происходит подписка на analyticsService с идентификатором 'monitoring-page'. При поступлении новых данных обновляются состояния networkMetrics, economicMetrics и alerts. При размонтировании — отписка от сервиса.


Основные методы и обработчики

handleRefresh(): Promise<void>

Асинхронная функция, запускающая ручное обновление данных. Симулирует задержку в 1 секунду для демонстрации процесса обновления.

Пример использования:

<button onClick={handleRefresh} disabled={isRefreshing}>Обновить</button>

handleExportMetrics(): void

Экспортирует текущие метрики за день в JSON-файл и инициирует скачивание файла пользователем. Использует API создания Blob и ссылок URL.


handleResolveAlert(alertId: string): void

Отмечает оповещение с указанным alertId как разрешённое, вызывая соответствующий метод сервиса аналитики.


Константы и вспомогательные переменные


JSX-разметка и UI


Используемые внешние компоненты и сервисы


Важные детали реализации


Взаимодействие с другими частями системы


Пример использования компонента

import MonitoringPage from './page';

function App() {
  return (
    <div>
      <MonitoringPage />
    </div>
  );
}

Диаграмма структуры компонента

componentDiagram
    direction TB
    MonitoringPage --> analyticsService : subscribe/unsubscribe\nexportMetrics\nresolveAlert\ngetSystemHealth
    MonitoringPage --> MonitoringDashboard
    MonitoringPage --> TPSChart
    MonitoringPage --> BlockTimeChart
    MonitoringPage --> NetworkHealthChart
    MonitoringPage --> ValidatorCountChart
    MonitoringPage --> MetricsChart
    MonitoringPage --> AlertSystem
    MonitoringPage --> lucide-react Icons

Заключение

page.tsx — ключевой файл для реализации интерфейса мониторинга сети Symbiotic. Он обеспечивает комплексный и интерактивный опыт для пользователей, позволяя наблюдать за состоянием сети и экономики, управлять оповещениями и экспортировать данные. Использование React hooks, современного стиля и модульных компонентов способствует поддерживаемости и расширяемости решения.