@@ -12,6 +12,7 @@ import {
1212 SidebarMenuSubItem ,
1313 useSidebar ,
1414} from "@/components/ui/sidebar"
15+ import { cn } from "@/lib/utils"
1516
1617export function NavMain ( {
1718 items,
@@ -25,6 +26,7 @@ export function NavMain({
2526 items ?: {
2627 title : string
2728 url : string
29+ disabled ?: boolean
2830 } [ ]
2931 } [ ]
3032} ) {
@@ -38,10 +40,17 @@ export function NavMain({
3840 ( item . items ?? [ ] ) . length === 0 || state === "collapsed" ? (
3941 < SidebarMenuItem key = { item . title } >
4042 < SidebarMenuButton asChild tooltip = { item . title } disabled = { item . disabled } >
41- < NavLink to = { item . url } >
42- { item . icon && < item . icon /> }
43- < span > { item . title } </ span >
44- </ NavLink >
43+ { item . disabled === true ? (
44+ < >
45+ { item . icon && < item . icon /> }
46+ < span > { item . title } </ span >
47+ </ >
48+ ) : (
49+ < NavLink to = { item . url } >
50+ { item . icon && < item . icon /> }
51+ < span > { item . title } </ span >
52+ </ NavLink >
53+ ) }
4554 </ SidebarMenuButton >
4655 </ SidebarMenuItem >
4756 ) : (
@@ -59,7 +68,14 @@ export function NavMain({
5968 { item . items ?. map ( ( subItem ) => (
6069 < SidebarMenuSubItem key = { subItem . title } >
6170 < SidebarMenuSubButton asChild >
62- < NavLink to = { subItem . url } >
71+ < NavLink
72+ to = { subItem . url }
73+ onClick = { subItem . disabled ? ( e ) => e . preventDefault ( ) : undefined }
74+ className = { cn ( {
75+ "opacity-50" : subItem . disabled ,
76+ "cursor-not-allowed" : subItem . disabled ,
77+ } ) }
78+ >
6379 < span > { subItem . title } </ span >
6480 </ NavLink >
6581 </ SidebarMenuSubButton >
0 commit comments