- {/* Top Section: Stats + Graph */}
-
- {/* Left Column - Stats Cards */}
-
-
-
- {componentLoading.metrics ? (
-
-
-
-
-
-
+
- {[
- {
- title: "Active Nodes",
- value: currentActiveNodes,
- Icon: Users,
- delay: 0,
- isLoading: componentLoading.nodes,
- },
- {
- title: "Average Peer Count",
- value: averagePeerCount,
- Icon: Network,
- delay: 0.1,
- isLoading: componentLoading.nodes,
- },
- {
- title: "Total Nodes",
- value: totalNodes,
- Icon: Database,
- delay: 0.2,
- isLoading: componentLoading.metrics,
- },
- {
- title: "Last Updated",
- value: lastUpdated,
- Icon: Clock,
- delay: 0.3,
- isLoading: componentLoading.nodes,
- },
- ].map((stat) => (
-
-
-
-
- ))}
-
-
- {/* Right Column - Chart */}
-
-
- {stat.title}
-
-
- {stat.isLoading ? (
-
- ) : stat.title === "Last Updated" ? (
-
-
-
- {lastUpdated.time}
-
-
- {lastUpdated.dateText}
-
-
- ) : (
- - {stat.value} -
- )} -
-
-
-
- Active Nodes
-
-
-
- Geographic Distribution
-
-
-
-
-
-
-
- ) : metrics.length === 0 ? (
-
-
- ) : (
- No data available for the selected timeframe
-
-
-
-
- format(new Date(date), "MMM d")}
- fontSize={12}
- tickMargin={10}
- />
-
- [`${value} nodes`, 'Active Nodes']}
- labelFormatter={(label) => format(new Date(label), "MMM d, yyyy")}
- />
-
-
-
-
- )}
-
-
- Geographic distribution view coming soon
-
+ {/* Header */}
+
+
+
+ >
);
}
diff --git a/public/favicon.ico b/public/favicon.ico
index 718d6fe..096e2b4 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
+
+
-
- {/* Bottom Section: Version Distribution + Active Peers */}
- Testnet Metrics
- {/* Version Distribution */}
-
+
+ )}
+
+