Skip to main content
Glama
DynamicBreadcrumb.tsx2.3 kB
'use client' import Link from 'next/link' import { usePathname } from 'next/navigation' import { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, } from '@/components/ui/breadcrumb' // Map of paths to readable labels const pathLabels: Record<string, string> = { '': 'Home', 'usage': 'Usage', 'billing': 'Billing', 'api-keys': 'API Keys', 'settings': 'Settings', } function formatPathSegment(segment: string): string { // Check if we have a custom label if (pathLabels[segment]) { return pathLabels[segment] } // Otherwise, capitalize and replace hyphens with spaces return segment .split('-') .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) .join(' ') } export function DynamicBreadcrumb() { const pathname = usePathname() // Skip breadcrumbs on home page or auth pages if (pathname === '/' || pathname.startsWith('/login') || pathname.startsWith('/signup')) { return null } // Parse pathname into segments const segments = pathname.split('/').filter(Boolean) // Build breadcrumb items const breadcrumbItems = segments.map((segment, index) => { const href = '/' + segments.slice(0, index + 1).join('/') const label = formatPathSegment(segment) const isLast = index === segments.length - 1 return { href, label, isLast, } }) return ( <Breadcrumb> <BreadcrumbList> {/* Home link */} <BreadcrumbItem> <BreadcrumbLink asChild> <Link href="/">Home</Link> </BreadcrumbLink> </BreadcrumbItem> {breadcrumbItems.length > 0 && <BreadcrumbSeparator />} {/* Dynamic segments */} {breadcrumbItems.map((item) => ( <div key={item.href} className="flex items-center gap-1.5"> <BreadcrumbItem> {item.isLast ? ( <BreadcrumbPage>{item.label}</BreadcrumbPage> ) : ( <BreadcrumbLink asChild> <Link href={item.href}>{item.label}</Link> </BreadcrumbLink> )} </BreadcrumbItem> {!item.isLast && <BreadcrumbSeparator />} </div> ))} </BreadcrumbList> </Breadcrumb> ) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/darrentmorgan/hostaway-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server