diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx
index 0cde3b4..a04cc51 100644
--- a/src/components/Footer.tsx
+++ b/src/components/Footer.tsx
@@ -8,7 +8,7 @@ export function Footer() {
-
+
Project Mycelium
Unleash the Power of Decentralization
diff --git a/src/components/ui/DynamicMapContainer.tsx b/src/components/ui/DynamicMapContainer.tsx
index 4ea6596..70ac9b1 100644
--- a/src/components/ui/DynamicMapContainer.tsx
+++ b/src/components/ui/DynamicMapContainer.tsx
@@ -71,30 +71,27 @@ const clusterNodes = (nodeList: GeoNode[], cellSize = 2) => {
function DynamicMapContainer() {
const [loading, setLoading] = useState(true);
const [nodes, setNodes] = useState([]);
- const API_URL = "https://gridproxy.grid.tf/nodes?healthy=true&size=99999";
+ const API_URL = "https://gridproxy.grid.tf/nodes?healthy=true&size=500";
useEffect(() => {
async function fetchNodeData() {
try {
const response = await fetch(API_URL);
- const data: RawNode[] = await response.json(); // Type the incoming data
-
- // π¨ Map the API response to your component's expected GeoNode format
+ const data: RawNode[] = await response.json();
+
const geoNodes: GeoNode[] = data
.filter((node: RawNode) => node.location && node.location.latitude && node.location.longitude)
.map((node: RawNode) => ({
- // Convert string coordinates to numbers
- lat: parseFloat(node.location.latitude),
- lng: parseFloat(node.location.longitude),
+ lat: parseFloat(node.location.latitude),
+ lng: parseFloat(node.location.longitude),
label: `${node.location.city}, ${node.location.country} (${node.node_id})`,
- // Optionally set color based on some node property if available
}));
const clusteredNodes = clusterNodes(geoNodes);
setNodes(clusteredNodes);
- setLoading(false);
} catch (error) {
console.error("Failed to fetch node data:", error);
+ } finally {
setLoading(false);
}
}
@@ -102,30 +99,24 @@ function DynamicMapContainer() {
fetchNodeData();
}, []);
- // --- RENDERING ---
-
+ // While fetching, show a loading state
if (loading) {
- // Show a loading state while data is being fetched
return (
-
-
- π
-
-
Loading nodes...
-
+
+
+ π
+
+
Loading nodes...
+
);
}
- // Pass the dynamically fetched nodes to your WorldMap component
- return (
-
- );
+ // After data is loaded, render the map
+ return ;
}
export default DynamicMapContainer;
\ No newline at end of file
diff --git a/src/pages/agents/AgentHeroAlt.tsx b/src/pages/agents/AgentHeroAlt.tsx
index 11af5ab..3b9b558 100644
--- a/src/pages/agents/AgentHeroAlt.tsx
+++ b/src/pages/agents/AgentHeroAlt.tsx
@@ -1,6 +1,5 @@
'use client'
-import { Button } from '@/components/Button'
import { Eyebrow, H3, P } from '@/components/Texts'
export function AgentHeroAlt() {
@@ -30,12 +29,8 @@ Private, local, and autonomous by design, they give you everything you need to b
-
-
+ {/* TODO: Hero CTAs (Follow Development / Explore Docs) to be added when links are ready.
+ Previously two Buttons here with href="#". */}
diff --git a/src/pages/agents/GallerySection.tsx b/src/pages/agents/GallerySection.tsx
index 4f1b89c..1918be0 100644
--- a/src/pages/agents/GallerySection.tsx
+++ b/src/pages/agents/GallerySection.tsx
@@ -4,7 +4,6 @@ import { useEffect, useMemo, useState } from 'react'
import { useResponsiveCarousel } from '@/hooks/useResponsiveCarousel';
import { motion, AnimatePresence } from 'framer-motion'
import { wrap } from 'popmotion'
-import { Button } from '@/components/Button';
import { SectionHeader, P, Eyebrow, CP } from '@/components/Texts';
import { TypeAnimation } from 'react-type-animation'
import { FadeIn } from '@/components/FadeIn';
@@ -147,9 +146,8 @@ export function GallerySection() {
repeat={0}
/>
-
+ {/* TODO: Desktop CTA (Start) button to be added when link target is defined.
+ Previously: */}
@@ -166,9 +164,8 @@ export function GallerySection() {
repeat={0}
/>
-
+ {/* TODO: Mobile CTA (Start) button to be added when link target is defined.
+ Previously: */}
diff --git a/src/pages/compute/ComputeCapabilities.tsx b/src/pages/compute/ComputeCapabilities.tsx
index ef4de49..c1a3f7d 100644
--- a/src/pages/compute/ComputeCapabilities.tsx
+++ b/src/pages/compute/ComputeCapabilities.tsx
@@ -2,7 +2,6 @@
import { Container } from '@/components/Container'
import { Eyebrow, H3, P } from '@/components/Texts'
-import { Button } from '@/components/Button'
const capabilities = [
{
@@ -76,14 +75,8 @@ export function ComputeCapabilities() {
{/* Button section */}
-
-
-
-
+ {/* TODO: CTA buttons (Get Started / Explore Docs) to be re-enabled when real links are available.
+ Previously rendered here as two Buttons with href="#". */}
diff --git a/src/pages/compute/ComputeCapabilitiesNew.tsx b/src/pages/compute/ComputeCapabilitiesNew.tsx
index 4e864d2..c8e76c7 100644
--- a/src/pages/compute/ComputeCapabilitiesNew.tsx
+++ b/src/pages/compute/ComputeCapabilitiesNew.tsx
@@ -78,12 +78,8 @@ export function ComputeCapabilitiesNew() {
{/* Arrows inside first card */}
-
- Learn more β
-
+ {/* TODO: Intro card CTA (Learn more) to be added here when destination is defined.
+ Previously: Learn more β */}
-
+ {/* TODO: Secondary CTA (Documentation) link to be wired when docs route is ready.
+ Previously: */}
diff --git a/src/pages/home/HomeMap.tsx b/src/pages/home/HomeMap.tsx
index 5770c30..c2d7dc8 100644
--- a/src/pages/home/HomeMap.tsx
+++ b/src/pages/home/HomeMap.tsx
@@ -103,7 +103,7 @@ export function HomeMap() {
Mycelium runs on nodes hosted by people and organizations around the world.
Each node adds compute, storage, and bandwidth, expanding the networkβs capacity and resilience.
-
+
You can share your idle resources and earn rewards when they are used.
Configure it once. Your node takes over from there.