"use client"; import type { FC } from "react"; import { observer } from "mobx-react"; import { usePathname } from "next/navigation"; import { Menu, Settings } from "lucide-react"; // icons import { Breadcrumbs } from "@plane/ui"; // components import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; // hooks import { useTheme } from "@/hooks/store"; export const HamburgerToggle: FC = observer(() => { const { isSidebarCollapsed, toggleSidebar } = useTheme(); return (
toggleSidebar(!isSidebarCollapsed)} >
); }); export const AdminHeader: FC = observer(() => { const pathName = usePathname(); const getHeaderTitle = (pathName: string) => { switch (pathName) { case "general": return "General"; case "ai": return "Artificial Intelligence"; case "email": return "Email"; case "authentication": return "Authentication"; case "image": return "Image"; case "google": return "Google"; case "github": return "GitHub"; case "gitlab": return "GitLab"; case "gitea": return "Gitea"; case "workspace": return "Workspace"; case "create": return "Create"; default: return pathName.toUpperCase(); } }; // Function to dynamically generate breadcrumb items based on pathname const generateBreadcrumbItems = (pathname: string) => { const pathSegments = pathname.split("/").slice(1); // removing the first empty string. pathSegments.pop(); let currentUrl = ""; const breadcrumbItems = pathSegments.map((segment) => { currentUrl += "/" + segment; return { title: getHeaderTitle(segment), href: currentUrl, }; }); return breadcrumbItems; }; const breadcrumbItems = generateBreadcrumbItems(pathName); return (
{breadcrumbItems.length >= 0 && (
} /> } /> {breadcrumbItems.map( (item) => item.title && ( } /> ) )}
)}
); });