Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 'use client'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@web/components/ui/dropdown-menu'; import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuAction, SidebarMenuButton, SidebarMenuItem, } from '@web/components/ui/sidebar'; import { useSidebar } from '@web/providers/side-bar'; import type { Project } from '@web/types/ui/side-bar'; import { Folder, Forward, MoreHorizontal, Trash2 } from 'lucide-react'; export function NavProjects({ projects, }: { projects: Project[]; }): React.ReactElement { const { isMobile } = useSidebar(); return ( <SidebarGroup className="group-data-[collapsible=icon]:hidden"> <SidebarGroupLabel>Projects</SidebarGroupLabel> <SidebarMenu> {projects.map((item) => ( <SidebarMenuItem key={item.name}> <SidebarMenuButton asChild> <a href={item.url}> <item.icon /> <span>{item.name}</span> </a> </SidebarMenuButton> <DropdownMenu> <DropdownMenuTrigger asChild> <SidebarMenuAction showOnHover> <MoreHorizontal /> <span className="sr-only">More</span> </SidebarMenuAction> </DropdownMenuTrigger> <DropdownMenuContent className="w-48 rounded-lg" side={isMobile ? 'bottom' : 'right'} align={isMobile ? 'end' : 'start'} > <DropdownMenuItem> <Folder className="text-muted-foreground" /> <span>View Project</span> </DropdownMenuItem> <DropdownMenuItem> <Forward className="text-muted-foreground" /> <span>Share Project</span> </DropdownMenuItem> <DropdownMenuSeparator /> <DropdownMenuItem> <Trash2 className="text-muted-foreground" /> <span>Delete Project</span> </DropdownMenuItem> </DropdownMenuContent> </DropdownMenu> </SidebarMenuItem> ))} <SidebarMenuItem> <SidebarMenuButton className="text-sidebar-foreground/70"> <MoreHorizontal className="text-sidebar-foreground/70" /> <span>More</span> </SidebarMenuButton> </SidebarMenuItem> </SidebarMenu> </SidebarGroup> ); } |