| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- 'use client'
 
- import { useSelectedLayoutSegment } from 'next/navigation'
 
- import Link from 'next/link'
 
- import classNames from '@/utils/classnames'
 
- export type NavIcon = React.ComponentType<
 
- React.PropsWithoutRef<React.ComponentProps<'svg'>> & {
 
-   title?: string | undefined
 
-   titleId?: string | undefined
 
- }
 
- >
 
- export type NavLinkProps = {
 
-   name: string
 
-   href: string
 
-   iconMap: {
 
-     selected: NavIcon
 
-     normal: NavIcon
 
-   }
 
-   mode?: string
 
- }
 
- export default function NavLink({
 
-   name,
 
-   href,
 
-   iconMap,
 
-   mode = 'expand',
 
- }: NavLinkProps) {
 
-   const segment = useSelectedLayoutSegment()
 
-   const formattedSegment = (() => {
 
-     let res = segment?.toLowerCase()
 
-     // logs and annotations use the same nav
 
-     if (res === 'annotations')
 
-       res = 'logs'
 
-     return res
 
-   })()
 
-   const isActive = href.toLowerCase().split('/')?.pop() === formattedSegment
 
-   const NavIcon = isActive ? iconMap.selected : iconMap.normal
 
-   return (
 
-     <Link
 
-       key={name}
 
-       href={href}
 
-       className={classNames(
 
-         isActive ? 'bg-state-accent-active text-text-accent font-semibold' : 'text-components-menu-item-text hover:bg-gray-100 hover:text-components-menu-item-text-hover',
 
-         'group flex items-center h-9 rounded-md py-2 text-sm font-normal',
 
-         mode === 'expand' ? 'px-3' : 'px-2.5',
 
-       )}
 
-       title={mode === 'collapse' ? name : ''}
 
-     >
 
-       <NavIcon
 
-         className={classNames(
 
-           'h-4 w-4 flex-shrink-0',
 
-           mode === 'expand' ? 'mr-2' : 'mr-0',
 
-         )}
 
-         aria-hidden="true"
 
-       />
 
-       {mode === 'expand' && name}
 
-     </Link>
 
-   )
 
- }
 
 
  |