"use client"; import { AudioWaveform, ChevronRight, MessageSquare, Mic, Shield, Users, } from "lucide-react"; import Link from "next/link"; import { useEffect } from "react"; import { useAmbient } from "@/components/ambient/ambient-context"; import { AreaActivity, RadialGauge } from "@/components/charts"; import { GlassPanel } from "@/components/primitives"; import { ErrorState, MetricTile, PageTransition, SectionHeader, SkeletonHero, SkeletonMetricRow, SkeletonPanel, } from "@/components/shared"; import { useActivity, useStats, useTopReactions } from "@/hooks"; import { useStaggerReveal } from "@/hooks/use-gsap-animation"; import { formatNumber } from "@/lib/format"; import type { DashboardStats } from "@/lib/types"; function deriveSignal(stats?: DashboardStats) { if (!stats) return { tone: "signal" as const, label: "NOMINAL", state: "STABLE" }; const total = stats.total_flagged + stats.total_clean || 1; const ratio = stats.total_flagged / total; if (stats.moderation_overview.error > 0) return { tone: "vermilion" as const, label: "FAULT", state: "MOD_ERR" }; if (ratio > 0.25) return { tone: "vermilion" as const, label: "ELEVATED", state: "HIGH_RISK", }; if (ratio > 0.1) return { tone: "amber" as const, label: "WATCH", state: "ADVISORY" }; return { tone: "signal" as const, label: "NOMINAL", state: "OPTIMAL" }; } export function DashboardView({ initialStats, initialActivity, }: { initialStats?: DashboardStats; initialActivity?: Awaited>["data"]; }) { const { data: stats, isLoading, error, mutate: mutateStats, } = useStats(initialStats); const { data: activity } = useActivity(14, initialActivity); const { data: reactions } = useTopReactions(); const ambient = useAmbient(); const hudRef = useStaggerReveal(".linear-tile", { stagger: 0.035, y: 8, dependencies: [stats], }); useEffect(() => { const s = deriveSignal(stats); ambient.set( s.tone, 0.3 + Math.min(0.5, (stats?.today_flagged ?? 0) / 50), s.label, ); }, [stats, ambient]); if (error && !stats) return void mutateStats()} />; if (!stats && isLoading) return (
); if (!stats) return ( void mutateStats()} /> ); const s = stats; const total = s.total_flagged + s.total_clean || 1; const cleanRatio = s.total_clean / total; return (
{/* Tactical HUD Header Bar */}

Telemetry Overview ยท Node 01

SIGNAL: STABLE_STREAM
{/* Primary Metric Deck */}
} /> } /> } /> } />
{/* Dynamic Activity Area & Telemetry Gauges */}
0.85 ? "signal" : "amber"} size={140} />
CLEAN
{formatNumber(s.total_clean)}
FLAGGED
{formatNumber(s.total_flagged)}
{/* Secondary Insights Deck */}
{reactions && reactions.length > 0 && (
{reactions.slice(0, 4).map((r) => (
{r.content || "[Media/Attachment]"} {formatNumber(r.reaction_count)} reactions
))}
)}
Review Live Moderation Queue Inspect Active Voice Stages
); }