"use client"; import { useEffect, useState } from "react"; import { fetchAllSignals, Signal, formatRelativeTime, getSeverityColor } from "../lib/api"; export default function ThoughtStreams() { const [signals, setSignals] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { async function load() { try { const all = await fetchAllSignals(); const flat = all .flatMap((g) => g.signals) .sort( (a, b) => new Date(b.metadata.timestamp).getTime() - new Date(a.metadata.timestamp).getTime() ) .slice(0, 10); setSignals(flat); } catch { // ignore } finally { setLoading(false); } } load(); }, []); return (

Thought Streams

{loading && (
autorenew Loading streams...
)} {!loading && signals.length === 0 && (

No signals yet. Streams will appear here as groups send messages.

)} {signals.map((sig, i) => (
{formatRelativeTime(sig.metadata.timestamp)}

{sig.metadata.type.toUpperCase()}: {" "} {sig.document.slice(0, 80)} {sig.document.length > 80 ? "…" : ""}

))}
); }