+ {/* Render folder */}
+
+
+
- const handleRename = async (folderId: string, newName: string) => {
- try {
- await updateFolderAPI(folderId, { name: newName })
- } catch (error) {
- console.error('Failed to rename folder:', error)
- }
- }
+ {/* Render workflows in this folder */}
+ {expandedFolders.has(folder.id) && workflowsInFolder.length > 0 && (
+
+ {workflowsInFolder.map((workflow) => (
+
+ ))}
+
+ )}
- const handleDelete = async (folderId: string) => {
- if (
- confirm(
- `Are you sure you want to delete "${folder.name}"? Child folders and workflows will be moved to the parent folder.`
- )
- ) {
- try {
- await deleteFolder(folderId)
- } catch (error) {
- console.error('Failed to delete folder:', error)
- }
- }
- }
+ {/* Render child folders */}
+ {expandedFolders.has(folder.id) && folder.children.length > 0 && (
+
{renderFolderTree(folder.children, level + 1, isAnyDragOver)}
+ )}
+
+ )
+}
+
+// Custom hook for drag and drop handling
+function useDragHandlers(
+ updateWorkflow: (id: string, updates: Partial