"use client"; import { motion } from "framer-motion"; import { Activity, Globe2, Server } from "lucide-react"; import { Dictionary } from "@/lib/IDict"; // Моковые данные серверов. В отличие от остальных разделов (blog/docs/download/pricing/faq), // список нод пока не подключён к PocketBase или бэкенду — статус/пинг/загрузка захардкожены. // При появлении реального API нод (вероятно, через proxy-ws) этот массив нужно заменить // на клиентский fetch по аналогии с download-client.tsx / docs-client.tsx. const MOCK_NODES = [ { id: "eu-1", region: "Europe", country: "Germany", city: "Frankfurt", flag: "🇩🇪", ping: 24, load: 35, status: "online", }, { id: "eu-2", region: "Europe", country: "Netherlands", city: "Amsterdam", flag: "🇳🇱", ping: 31, load: 88, status: "online", }, { id: "eu-3", region: "Europe", country: "Switzerland", city: "Zurich", flag: "🇨🇭", ping: 45, load: 100, status: "full", }, { id: "us-1", region: "Americas", country: "United States", city: "New York", flag: "🇺🇸", ping: 112, load: 45, status: "online", }, { id: "us-2", region: "Americas", country: "Canada", city: "Toronto", flag: "🇨🇦", ping: 120, load: 12, status: "online", }, { id: "as-1", region: "Asia", country: "Singapore", city: "Singapore", flag: "🇸🇬", ping: 185, load: 0, status: "maintenance", }, { id: "as-2", region: "Asia", country: "Japan", city: "Tokyo", flag: "🇯🇵", ping: 160, load: 60, status: "online", }, ]; /** * Список VPN-серверов (нод) с индикацией статуса (online/full/maintenance), * загрузки и пинга. См. предупреждение выше — данные пока моковые. */ export function NodesClient({ dict }: { dict: Dictionary["nodes"] }) { // Вспомогательная функция для получения статуса const getStatusText = (status: string) => { switch (status) { case "online": return dict.status.online; case "full": return dict.status.full; case "maintenance": return dict.status.maintenance; default: return status; } }; return (
{dict.subtitle}
{node.country}