import { useLocation, useNavigate } from "@remix-run/react"; import { Button } from "./button"; import { ArrowLeft, ArrowRight, Plus } from "lucide-react"; import { SidebarTrigger } from "./sidebar"; const PAGE_TITLES: Record = { "/home/dashboard": "Memory graph", "/home/conversation": "Conversation", "/home/integrations": "Integrations", "/home/integration": "Integrations", "/home/logs": "Logs", }; function getHeaderTitle(pathname: string): string { // Try to match the most specific path first for (const key of Object.keys(PAGE_TITLES)) { if (pathname.startsWith(key)) { return PAGE_TITLES[key]; } } // Default fallback return "Documents"; } function isConversationDetail(pathname: string): boolean { // Matches /home/conversation/ but not /home/conversation exactly return /^\/home\/conversation\/[^/]+$/.test(pathname); } function isIntegrationsPage(pathname: string): boolean { return pathname === "/home/integrations"; } function isAllLogs(pathname: string): boolean { return pathname === "/home/logs/all"; } function isActivityLogs(pathname: string): boolean { return pathname === "/home/logs/activity"; } function isLogsPage(pathname: string): boolean { // Matches /home/logs, /home/logs/all, /home/logs/activity, or any /home/logs/* return pathname.includes("/home/logs"); } function getLogsTab(pathname: string): "all" | "activity" { if (pathname.startsWith("/home/logs/activity")) return "activity"; // Default to "all" for /home/logs or /home/logs/all or anything else return "all"; } // Back and Forward navigation component function NavigationBackForward() { const navigate = useNavigate(); return (
); } export function SiteHeader() { const location = useLocation(); const navigate = useNavigate(); const title = getHeaderTitle(location.pathname); const showNewConversationButton = isConversationDetail(location.pathname); const showRequestIntegrationButton = isIntegrationsPage(location.pathname); const showLogsTabs = isLogsPage(location.pathname); const logsTab = getLogsTab(location.pathname); const handleTabClick = (tab: "all" | "activity") => { if (tab === "all") { navigate("/home/logs/all"); } else if (tab === "activity") { navigate("/home/logs/activity"); } }; return (
{/* Back/Forward navigation before SidebarTrigger */}

{title}

{showLogsTabs && (
)}
{showNewConversationButton && ( )} {showRequestIntegrationButton && ( )}
); }