"use client"; import { DashboardLayout } from "@/components/dashboard/DashboardLayout"; import { StatCard } from "@/components/dashboard/StatCard"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { StatusIndicator } from "@/components/dashboard/StatusIndicator"; import { Box, Server, Container, Activity, ArrowRight, Clock, } from "lucide-react"; import { Progress } from "@/components/ui/progress"; import Link from "next/link"; import { getLiveNodes, getNodes } from "@/core/client/node"; import { useEffect, useState } from "react"; import { Node, NodeLiveData } from "@/lib/types"; const recentDeployments = [ { id: "dep-001", app: "api-gateway", version: "v2.4.1", status: "running" as const, time: "2m ago", }, { id: "dep-002", app: "auth-service", version: "v1.8.0", status: "running" as const, time: "15m ago", }, { id: "dep-003", app: "worker-queue", version: "v3.1.2", status: "pending" as const, time: "32m ago", }, { id: "dep-004", app: "metrics-collector", version: "v1.2.0", status: "error" as const, time: "1h ago", }, ]; const applications = [ { name: "api-gateway", containers: 3, cpu: 45, memory: 62, status: "running" as const, }, { name: "auth-service", containers: 2, cpu: 28, memory: 45, status: "running" as const, }, { name: "postgres-db", containers: 1, cpu: 65, memory: 78, status: "running" as const, }, { name: "redis-cache", containers: 1, cpu: 12, memory: 34, status: "running" as const, }, { name: "worker-queue", containers: 4, cpu: 55, memory: 48, status: "pending" as const, }, ]; export default function OverviewPage() { const [nodes, setNodes] = useState([]); useEffect(() => { getLiveNodes().then(setNodes); }, []); return ( {/* Stats Grid */}
} /> } /> } /> } />
{/* Applications & Deployments */}
{/* Applications Table */} Applications
Name
Containers
CPU
Memory
Status
{applications.map((app) => (
{app.name}
{app.containers}
{app.cpu}%
{app.memory}%
))}
{/* Recent Deployments */} Recent Deployments
{recentDeployments.map((dep) => (
{dep.app}
{dep.version}
{dep.time}
))}
{/* Nodes */} Cluster Nodes {nodes.length} nodes
{nodes.map((node) => (
{node.name}
{node.ip}
CPU {node.liveData.cpu}%
Memory {node.liveData.memory}%
Containers {node.liveData.containers}
))}
); }