import { AgentToggleButton } from "@agent-native/core/client/agent-chat"; import { useT } from "@agent-native/core/client/i18n"; import { useHeaderTitle, useHeaderActions, } from "@agent-native/toolkit/app-shell"; import { IconMenu2 } from "@tabler/icons-react"; import { useLocation } from "react-router"; import { APP_TITLE } from "@/lib/app-config"; const pageTitleKeys: Record = { "/": "header.plan", "/plans": "header.plan", "/agent": "settings.agentTitle", "/settings": "header.settings", }; function resolveTitle(pathname: string): string { if (pageTitleKeys[pathname]) return pageTitleKeys[pathname]; if (pathname.startsWith("/plans")) return "header.plan"; if (pathname.startsWith("/extensions")) return "header.extensions"; return "header.appTitle"; } interface HeaderProps { onOpenMobileSidebar?: () => void; } export function Header({ onOpenMobileSidebar }: HeaderProps) { const location = useLocation(); const title = useHeaderTitle(); const actions = useHeaderActions(); const t = useT(); const resolvedTitle = resolveTitle(location.pathname); return (
{onOpenMobileSidebar && ( )}
{title ?? (

{resolvedTitle === "header.appTitle" ? APP_TITLE : t(resolvedTitle)}

)}
{actions}
); }