@@ -63,6 +63,7 @@ export const FolderContextMenu = memo(function FolderContextMenu({
6363 const isMultiSelect = selectedCount > 1
6464 const hasMove = Boolean ( onMove && moveOptions && moveOptions . length > 0 )
6565 const hasActionsAboveDestructive = ! isMultiSelect || hasMove
66+ const hasAvailableActions = ! isMultiSelect || canEdit
6667
6768 return (
6869 < DropdownMenu open = { isOpen } onOpenChange = { ( open ) => ! open && onClose ( ) } modal = { false } >
@@ -80,48 +81,54 @@ export const FolderContextMenu = memo(function FolderContextMenu({
8081 sideOffset = { 4 }
8182 onCloseAutoFocus = { ( e ) => e . preventDefault ( ) }
8283 >
83- { ! isMultiSelect && (
84- < >
85- < DropdownMenuItem onSelect = { onOpen } >
86- < Eye />
87- Open
88- </ DropdownMenuItem >
89- < DropdownMenuItem onSelect = { onTogglePin } >
90- < Pin />
91- { pinned ? 'Unpin' : 'Pin' }
92- </ DropdownMenuItem >
93- { onCopyId && (
94- < DropdownMenuItem onSelect = { onCopyId } >
95- < Duplicate />
96- Copy ID
97- </ DropdownMenuItem >
98- ) }
99- </ >
100- ) }
101- { canEdit && (
84+ { ! hasAvailableActions ? (
85+ < DropdownMenuItem disabled > No actions available</ DropdownMenuItem >
86+ ) : (
10287 < >
10388 { ! isMultiSelect && (
104- < DropdownMenuItem onSelect = { onRename } >
105- < Pencil />
106- Rename
107- </ DropdownMenuItem >
89+ < >
90+ < DropdownMenuItem onSelect = { onOpen } >
91+ < Eye />
92+ Open
93+ </ DropdownMenuItem >
94+ < DropdownMenuItem onSelect = { onTogglePin } >
95+ < Pin />
96+ { pinned ? 'Unpin' : 'Pin' }
97+ </ DropdownMenuItem >
98+ { onCopyId && (
99+ < DropdownMenuItem onSelect = { onCopyId } >
100+ < Duplicate />
101+ Copy ID
102+ </ DropdownMenuItem >
103+ ) }
104+ </ >
108105 ) }
109- { hasMove && (
110- < DropdownMenuSub >
111- < DropdownMenuSubTrigger >
112- < FolderInput />
113- { selectionActionLabel ( 'Move' , selectedCount , 'Move to' ) }
114- </ DropdownMenuSubTrigger >
115- < DropdownMenuSubContent >
116- { renderMoveOptions ( moveOptions ! , onMove ! ) }
117- </ DropdownMenuSubContent >
118- </ DropdownMenuSub >
106+ { canEdit && (
107+ < >
108+ { ! isMultiSelect && (
109+ < DropdownMenuItem onSelect = { onRename } >
110+ < Pencil />
111+ Rename
112+ </ DropdownMenuItem >
113+ ) }
114+ { hasMove && (
115+ < DropdownMenuSub >
116+ < DropdownMenuSubTrigger >
117+ < FolderInput />
118+ { selectionActionLabel ( 'Move' , selectedCount , 'Move to' ) }
119+ </ DropdownMenuSubTrigger >
120+ < DropdownMenuSubContent >
121+ { renderMoveOptions ( moveOptions ! , onMove ! ) }
122+ </ DropdownMenuSubContent >
123+ </ DropdownMenuSub >
124+ ) }
125+ { hasActionsAboveDestructive && < DropdownMenuSeparator /> }
126+ < DropdownMenuItem onSelect = { onDelete } >
127+ < Trash />
128+ { selectionActionLabel ( 'Delete' , selectedCount ) }
129+ </ DropdownMenuItem >
130+ </ >
119131 ) }
120- { hasActionsAboveDestructive && < DropdownMenuSeparator /> }
121- < DropdownMenuItem onSelect = { onDelete } >
122- < Trash />
123- { selectionActionLabel ( 'Delete' , selectedCount ) }
124- </ DropdownMenuItem >
125132 </ >
126133 ) }
127134 </ DropdownMenuContent >
0 commit comments