]> BookStack Code Mirror - bookstack/commitdiff
Lexical: Got working with attachment insert/drop
authorDan Brown <redacted>
Mon, 29 Jul 2024 20:14:42 +0000 (21:14 +0100)
committerDan Brown <redacted>
Mon, 29 Jul 2024 20:14:42 +0000 (21:14 +0100)
resources/js/wysiwyg/drop-handling.ts
resources/js/wysiwyg/todo.md

index 92dc758d8db6e625c0794e69edd1d2109e31fe3a..5d541365ab5fbcdcb1ab2ae41cf3fdd2d466818a 100644 (file)
@@ -1,7 +1,4 @@
 import {
-    $getNearestNodeFromDOMNode,
-    $getRoot,
-    $insertNodes,
     $isDecoratorNode,
     LexicalEditor,
     LexicalNode
@@ -9,7 +6,7 @@ import {
 import {
     $getNearestBlockNodeForCoords,
     $htmlToBlockNodes,
-    $insertNewBlockNodeAtSelection, $insertNewBlockNodesAtSelection,
+    $insertNewBlockNodesAtSelection,
     $selectSingleNode
 } from "./helpers";
 
@@ -54,8 +51,19 @@ function createDropListener(editor: LexicalEditor): (event: DragEvent) => void {
         // Template handling
         const templateId = event.dataTransfer?.getData('bookstack/template') || '';
         if (templateId) {
-            event.preventDefault();
             insertTemplateToEditor(editor, templateId, event);
+            event.preventDefault();
+            return;
+        }
+
+        // HTML contents drop
+        const html = event.dataTransfer?.getData('text/html') || '';
+        if (html) {
+            editor.update(() => {
+                const newNodes = $htmlToBlockNodes(editor, html);
+                $insertNodesAtEvent(newNodes, event, editor);
+            });
+            event.preventDefault();
             return;
         }
     };
index 5d495e7d83d63911f3a2433536393b0265b9abf9..73521df9b254cdab97c16e50dd134ae7d4f8a77c 100644 (file)
@@ -2,7 +2,7 @@
 
 ## In progress
 
-//
+- Draft/change management (connect with page editor component)
 
 ## Main Todo
 
@@ -11,9 +11,7 @@
 - Table features
 - Image paste upload
 - Keyboard shortcuts support
-- Draft/change management (connect with page editor component)
 - Add ID support to all block types
-- Video attachment drop / insert
 - Task list render/import from existing format
 - Link popup menu for cross-content reference
 - Link heading-based ID reference menu