import PersistenceWarning from "./PersistenceWarning"; import { useState } from "react"; import { Outlet, useLocation, useNavigate } from "react-router-dom"; import { AppShell, AppShellMain, AppShellSidebar, AppShellSidebarContent, AppShellSidebarFooter, AppShellSidebarHeader, Button, Field, FieldLabel, GlobalHeader, GlobalHeaderActions, GlobalHeaderBrand, GlobalHeaderInner, Select, SideNav, SideNavGroup, SideNavGroupLabel, SideNavItem, SideNavLink, SideNavList, SkipLink, StatusIndicator, } from "lumen-ui-kit"; import { logoutSession } from "../lib/api"; import { useWorkspace } from "../workspaces/WorkspaceProvider"; import { workspacePath, workspaceSection } from "../workspaces/workspaceRoutes"; import CreateWorkspaceDialog from "./CreateWorkspaceDialog"; const groups = [ { label: "Explore", items: [["", "Overview"], ["graph", "Graph"]] }, { label: "Memory", items: [["data", "Data"], ["observations", "Observations"], ["vectors", "Vectors"]] }, { label: "Operations", items: [["tasks", "Tasks"], ["ingest", "Ingest"], ["settings", "Settings"]] }, ] as const; export default function Layout() { const navigate = useNavigate(); const location = useLocation(); const { workspaces, activeWorkspace, switchWorkspace, canManageWorkspaces, } = useWorkspace(); const [createOpen, setCreateOpen] = useState(false); const section = workspaceSection(location.pathname); const visible = workspaces.filter((workspace) => !workspace.archived); async function logout() { try { await logoutSession(); } finally { navigate("/login"); } } const navigation = activeWorkspace ? ( {groups.map((group) => ( {group.label} {group.items.map(([to, label]) => ( { event.preventDefault(); navigate(workspacePath(activeWorkspace.slug, to)); }} > {label} ))} ))} ) : null; return (
Skip to main content B BrainAPI
{visible.map((workspace) => ( ))} {canManageWorkspaces ? ( ) : null}
{visible.length > 1 ? ( Workspace ) : {activeWorkspace?.display_name}}
Live

Workspace

{activeWorkspace?.display_name ?? "None"}

{activeWorkspace?.brain_id}

{navigation} {canManageWorkspaces ? "System credentials" : "Scoped credentials"}
setCreateOpen(false)} />
); }