+ handleDragStartFolder(event, nestedChild)
+ }
+ onDragEnd={handleDragEnd}
+ onDragOver={(event) => event.preventDefault()}
+ onDrop={(event) =>
+ handleFolderDrop(event, nestedChild)
+ }
+ onClick={() => toggleFolderExpanded(nestedChild.id)}
+ >
+
+
+ {nestedChild.name}
+
+
+ {isFolderExpanded(nestedChild.id) ? (
+
+ {(foldersByParent.get(nestedChild.id) ?? [])
+ .filter(
+ (deepChild) =>
+ !hasSearch ||
+ visibleFolderIds?.has(deepChild.id)
+ )
+ .map((deepChild) => (
+
+
+ handleDragStartFolder(event, deepChild)
+ }
+ onDragEnd={handleDragEnd}
+ onDragOver={(event) => event.preventDefault()}
+ onDrop={(event) =>
+ handleFolderDrop(event, deepChild)
+ }
+ onClick={() =>
+ toggleFolderExpanded(deepChild.id)
+ }
+ >
+
+
+ {deepChild.name}
+
+
+ {isFolderExpanded(deepChild.id) ? (
+
+ {(textsByFolder.get(deepChild.id) ?? []).map(
+ (text) => (
+
+ handleDragStartText(event, text)
+ }
+ onDragEnd={handleDragEnd}
+ onDragOver={(event) =>
+ event.preventDefault()
+ }
+ onDrop={(event) =>
+ handleTextDrop(
+ event,
+ text.id,
+ text.folder_id ?? null
+ )
+ }
+ onClick={() =>
+ setSelectedTextId(text.id)
+ }
+ onContextMenu={(event) =>
+ handleTextContextMenu(event, text.id)
+ }
+ >
+
+
+ {text.title}
+
+
+ Updated {formatDate(text.updated_at)}
+
+
+
+
+ )
+ )}
+
+ ) : null}
+
+ ))}
+ {(textsByFolder.get(nestedChild.id) ?? []).map(
+ (text) => (
+
+ handleDragStartText(event, text)
+ }
+ onDragEnd={handleDragEnd}
+ onDragOver={(event) => event.preventDefault()}
+ onDrop={(event) =>
+ handleTextDrop(
+ event,
+ text.id,
+ text.folder_id ?? null
+ )
+ }
+ onClick={() => setSelectedTextId(text.id)}
+ onContextMenu={(event) =>
+ handleTextContextMenu(event, text.id)
+ }
+ >
+
+
+ {text.title}
+
+
+ Updated {formatDate(text.updated_at)}
+
+
+
+
+ )
+ )}
+
+ ) : null}
+