Browse Source

enhance: don't display pull errors when deleting blocks

Tienson Qin 4 years ago
parent
commit
21b0d75dff

+ 1 - 2
src/main/frontend/db/utils.cljs

@@ -83,8 +83,7 @@
        (d/pull conn
                selector
                eid)
-       (catch js/Error e
-         (js/console.error e)
+       (catch js/Error _e
          nil)))))
 
 (defn pull-many

+ 3 - 1
src/main/frontend/handler/editor.cljs

@@ -758,6 +758,7 @@
   ([repo e]
    (delete-block! repo e true))
   ([repo e delete-children?]
+   (state/set-editor-op! :delete)
    (let [{:keys [id block-id block-parent-id value format]} (get-state)]
     (when block-id
       (let [page-id (:db/id (:block/page (db/entity [:block/uuid block-id])))
@@ -789,7 +790,8 @@
                         (edit-block! block pos format id
                                      {:custom-content new-value
                                       :tail-len tail-len
-                                      :move-cursor? false}))))))))))))))
+                                      :move-cursor? false}))))))))))))
+   (state/set-editor-op! nil)))
 
 (defn- get-end-block-parent
   [end-block blocks]

+ 1 - 1
src/main/frontend/handler/editor/lifecycle.cljs

@@ -58,7 +58,7 @@
               :upload-images))))
     (editor-handler/clear-when-saved!)
     ;; TODO: ugly
-    (when-not (contains? #{:insert :indent-outdent :auto-save :undo :redo} (state/get-editor-op))
+    (when-not (contains? #{:insert :indent-outdent :auto-save :undo :redo :delete} (state/get-editor-op))
       (editor-handler/save-block! (get-state) value)))
   state)
 

+ 10 - 2
src/main/frontend/modules/datascript_report/core.cljs

@@ -5,11 +5,19 @@
 
 (def keys-of-deleted-entity 1)
 
+(defn safe-pull
+  [db selector eid]
+  (try
+    (d/pull db selector eid)
+    (catch js/Error e
+      (js/console.error e)
+      nil)))
+
 (defn get-entity-from-db-after-or-before
   [db-before db-after db-id]
-  (let [r (d/pull db-after '[*] db-id)]
+  (let [r (safe-pull db-after '[*] db-id)]
     (if (= keys-of-deleted-entity (count r))
-      (let [r (d/pull db-before '[*] db-id)]
+      (let [r (safe-pull db-before '[*] db-id)]
         (when (= keys-of-deleted-entity (count r))
           ;; TODO: What can cause this happen?
           (log/error :outliner-pipeline/cannot-find-entity {:entity r}))