Files
micronomicon/frontend/src/hooks/useGraph.ts
2026-04-01 00:53:55 +02:00

36 lines
657 B
TypeScript

import { useEffect, useState } from "react";
export interface GraphNode {
id: string;
published: boolean;
title: string | null;
}
export interface GraphEdge {
source: string;
target: string;
}
export interface GraphData {
nodes: GraphNode[];
edges: GraphEdge[];
}
export function useGraph() {
const [data, setData] = useState<GraphData | null>(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
(async () => {
try {
const res = await fetch("/api/graph");
setData(await res.json());
} finally {
setLoading(false);
}
})();
}, []);
return { data, loading };
}