(e: React.DragEvent, targetNode: FolderNode)
| 226 | |
| 227 | // Handle drop |
| 228 | const handleDrop = (e: React.DragEvent, targetNode: FolderNode) => { |
| 229 | e.preventDefault(); |
| 230 | e.stopPropagation(); |
| 231 | |
| 232 | const draggedNode = draggedNodeRef.current; |
| 233 | if (draggedNode && targetNode.type === 'folder' && draggedNode.nodeId !== targetNode.id) { |
| 234 | // Don't allow dropping a folder into its own descendant |
| 235 | let parent = getNodeById(targetNode.id); |
| 236 | let canDrop = true; |
| 237 | |
| 238 | while (parent) { |
| 239 | if (parent.id === draggedNode.nodeId) { |
| 240 | canDrop = false; |
| 241 | break; |
| 242 | } |
| 243 | parent = parent.parentId ? getNodeById(parent.parentId) : undefined; |
| 244 | } |
| 245 | |
| 246 | if (canDrop) { |
| 247 | moveNode(draggedNode.nodeId, targetNode.id); |
| 248 | } |
| 249 | } |
| 250 | |
| 251 | setDraggedOver(null); |
| 252 | draggedNodeRef.current = null; |
| 253 | }; |
| 254 | |
| 255 | // Handle file/folder selection |
| 256 | const handleNodeClick = (node: FolderNode, e: React.MouseEvent) => { |
no outgoing calls
no test coverage detected