'use client'; import { useEffect, useRef, useState } from 'react'; import { logError } from '@/lib/logger-client'; interface GraphNode { id: string; label: string; type: string; [key: string]: any; } interface GraphEdge { id: string; source: string; target: string; type: string; weight: number; } interface KnowledgeGraphVisualizationProps { query?: string; onNodeClick?: (nodeId: string) => void; } export default function KnowledgeGraphVisualization({ query, onNodeClick, }: KnowledgeGraphVisualizationProps) { const containerRef = useRef(null); const [graph, setGraph] = useState<{ nodes: GraphNode[]; edges: GraphEdge[] } | null>(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const loadGraph = async () => { try { setLoading(true); setError(null); // Модуль knowledge вынесен в отдельный сервис (КЛГ АСУ ТК не использует локальную папку knowledge/) setGraph({ nodes: [], edges: [] }); setLoading(false); return; } catch (err) { logError('Knowledge graph unavailable', err); setError('Модуль графа знаний вынесен в отдельный сервис'); } finally { setLoading(false); } }; loadGraph(); }, [query]); if (loading) { return (
Загрузка графа знаний...
); } if (error) { return (
Ошибка: {error}
); } if (!graph || graph.nodes.length === 0) { return (
Граф знаний пуст
); } return (
Узлов: {graph.nodes.length} | Связей: {graph.edges.length}
); }