import "./appBar.css"; import { DashboardIcon } from "../DashboardIcon/DashboardIcon"; import { classnames } from "../../utils/classnames"; import { useNetwork } from "../../network/useNetwork"; import { NetworkFlashIcon } from "../NetworkFlashIcon/NetworkFlashIcon"; import { useQueryClient } from "@tanstack/react-query"; import { ReactElement, useEffect } from "react"; import { useCodexConnection } from "../../hooks/useCodexConnection"; import { NodesIcon } from "../Menu/NodesIcon"; import { usePersistence } from "../../hooks/usePersistence"; import { useLocation, useNavigate } from "@tanstack/react-router"; import { PeersIcon } from "../Menu/PeersIcon"; import { SettingsIcon } from "../Menu/SettingsIcon"; import { FilesIcon } from "../FilesIcon/FilesIcon"; import { LogsIcon } from "../Menu/LogsIcon"; import { HostIcon } from "../Menu/HostIcon"; type Props = { onIconClick: () => void; }; const icons: Record = { dashboard: , peers: , settings: , files: , logs: , availabilies: , }; const descriptions: Record = { dashboard: "Get Overview of your Codex Vault.", peers: "Monitor your Codex peer connections.", settings: "Manage your Codex Vault.", files: "Manage your files in your local vault.", logs: "Manage your logs and debug console.", availabilies: "Manage your storage requests.", }; export function AppBar({ onIconClick }: Props) { const online = useNetwork(); const queryClient = useQueryClient(); const codex = useCodexConnection(); const persistence = usePersistence(codex.enabled); const location = useLocation(); const navigate = useNavigate({ from: location.pathname }); useEffect(() => { queryClient.invalidateQueries({ type: "active", refetchType: "all", }); }, [queryClient, codex.enabled]); const offline = !online || !codex.enabled; const onNodeClick = () => navigate({ to: "/dashboard/settings" }); const title = location.pathname.split("/")[2] || location.pathname.split("/")[1]; return ( <>
{/* */} {icons[title]}

{title}

{descriptions[title]}

); }