소스 검색

Fix: disable drag && drop for dummy blocks

Tienson Qin 4 년 전
부모
커밋
8b0bcaf19e
2개의 변경된 파일18개의 추가작업 그리고 6개의 파일을 삭제
  1. 10 5
      src/main/frontend/components/block.cljs
  2. 8 1
      src/main/frontend/handler/dnd.cljs

+ 10 - 5
src/main/frontend/components/block.cljs

@@ -1317,12 +1317,17 @@
         (not slide?)
         (merge attrs))
 
-      (if pre-block?
+      (cond
+        pre-block?
         (pre-block-cp config (string/trim content) format)
-        (when (seq title)
-          (build-block-title config block)))
 
-      (when (and dragging? (not slide?))
+        dummy?
+        [:span.opacity-50 "Click here to start writing"]
+
+        (seq title)
+        (build-block-title config block))
+
+      (when (and dragging? (not slide?) (not dummy?))
         (dnd-separator block 0 -4 false true))
 
       (when (and deadline deadline-ast)
@@ -1398,7 +1403,7 @@
   [block slide? top?]
   (let [dragging? (rum/react *dragging?)]
     (cond
-      (and dragging? (not slide?))
+      (and dragging? (not slide?) (not (:block/dummy? block)))
       (dnd-separator block 20 0 top? false)
 
       :else

+ 8 - 1
src/main/frontend/handler/dnd.cljs

@@ -299,6 +299,7 @@
         target-file-path (:file/path target-file)
         target-file-content (db/get-file repo target-file-path)
         to-file (db/entity repo (:db/id (:block/file to-block)))
+        to-block (assoc to-block :block/meta (:block/meta (db/entity (:db/id to-block))))
         to-file-path (:file/path to-file)
         target-block-end-pos (block-handler/get-block-end-pos-rec repo target-block)
         to-block-start-pos (get-start-pos to-block)
@@ -364,7 +365,13 @@
   2. Sometimes we might need to move a parent block to it's own child.
   "
   [target-block to-block target-dom-id top? nested?]
-  (when (and target-block to-block (:block/format target-block) (:block/format to-block))
+  (when (and
+         target-block
+         to-block
+         (:block/format target-block)
+         (:block/format to-block)
+         (not (:block/dummy? to-block))
+         (not (:block/dummy? target-block)))
     (cond
       (not= (:block/format target-block)
             (:block/format to-block))