import { useState, useEffect } from "react"; import type { TabKey, DomainKey, Entity } from "./types"; import { Header, StatusBar, Toaster } from "./components"; import { GraphView, QueryView, ExplainView, DataView, OntologyView } from "./pages"; import { useGraphData, toast } from "./state"; export default function App() { const [activeTab, setActiveTab] = useState("graph"); const [activeFilter, setActiveFilter] = useState(null); const [selectedNode, setSelectedNode] = useState(null); const { entities, isLoading } = useGraphData(); // Notification when graph loads useEffect(() => { if (!isLoading && entities.length > 0) { toast.success(`Graph loaded: ${entities.length} entities`); } }, [isLoading, entities.length]); const handleTabChange = (tab: TabKey) => { setActiveTab(tab); if (tab !== "graph") { setSelectedNode(null); } }; return (
{activeTab === "graph" && ( )} {activeTab === "query" && } {activeTab === "explain" && } {activeTab === "data" && } {activeTab === "ontology" && }
); }