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

22 lines
602 B
TypeScript

import { useMemo } from "react";
import { useGraph } from "@/hooks/useGraph";
export interface BacklinkPage {
name: string;
title: string | null;
}
export function useBacklinks(currentSlug: string | undefined): BacklinkPage[] {
const { data } = useGraph();
return useMemo(() => {
if (!data || !currentSlug) return [];
const nodeMap = new Map(data.nodes.map((n) => [n.id, n]));
return data.edges
.filter((e) => e.target === currentSlug)
.map((e) => ({
name: e.source,
title: nodeMap.get(e.source)?.title ?? null,
}));
}, [data, currentSlug]);
}