mirror of
https://github.com/supabase/supabase.git
synced 2026-10-12 21:05:06 +03:00
* feat: tidy up header on mobile * fix: graceful searchbar header * fix: header classes and unused elements * feat: trim down logo on header * fix: logos again * chore: remove dead code * fix: classic dark logo header * fix: page padding tidy ups * fix: some font sizing * feat: updated homepage cards * fix: toc layout * fix: toc again * feat: homepage cards all the same size * fix: footer paddings * fix: pager if only 1 directional item * fix: sidebar padding issues * chore: killing all the defaults * fix: import for side nav * fix: sidebar complaining about dialog title * fix: homepage paddings * fix: killing one more default export * feat: update colours icon to francescos * fix: loose repeated copy
50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
'use client'
|
|
|
|
import { SidebarNavItem } from '@/types/nav'
|
|
import { cn } from 'ui/src/lib/utils/cn'
|
|
import { usePathname } from 'next/navigation'
|
|
import Link from 'next/link'
|
|
import React from 'react'
|
|
import { useMobileSidebar } from '@/hooks/use-mobile-sidebar'
|
|
|
|
export const NavigationItem: React.FC<{ item: SidebarNavItem }> = React.memo(({ item }) => {
|
|
const pathname = usePathname()
|
|
const { setOpen } = useMobileSidebar()
|
|
|
|
const isActive = pathname === item.href
|
|
|
|
const handleClick = () => {
|
|
setOpen(false)
|
|
}
|
|
|
|
return (
|
|
<Link
|
|
href={`${item.href}`}
|
|
onClick={handleClick}
|
|
className={cn(
|
|
'relative',
|
|
'flex',
|
|
'items-center',
|
|
'h-6',
|
|
'text-sm',
|
|
'text-foreground-lighter px-6',
|
|
!isActive && 'hover:bg-surface-100 hover:text-foreground',
|
|
isActive && 'bg-surface-200 text-foreground',
|
|
'transition-all'
|
|
)}
|
|
>
|
|
<div
|
|
className={cn(
|
|
'transition',
|
|
'absolute left-0 w-1 h-full bg-foreground',
|
|
|
|
isActive ? 'opacity-100' : 'opacity-0'
|
|
)}
|
|
></div>
|
|
{item.title}
|
|
</Link>
|
|
)
|
|
})
|
|
|
|
NavigationItem.displayName = 'NavigationItem'
|