Pārlūkot izejas kodu

fix: skip parent-left check when exporting for whiteboards

Tienson Qin 3 gadi atpakaļ
vecāks
revīzija
00f25d22d7
1 mainītis faili ar 17 papildinājumiem un 15 dzēšanām
  1. 17 15
      src/main/frontend/db/model.cljs

+ 17 - 15
src/main/frontend/db/model.cljs

@@ -348,21 +348,23 @@
    (sort-by-left blocks parent {:check? true}))
   ([blocks parent {:keys [check?]}]
    (let [blocks (util/distinct-by :db/id blocks)]
-     (when check?
-      (when (not= (count blocks) (count (set (map :block/left blocks))))
-        (let [duplicates (->> (map (comp :db/id :block/left) blocks)
-                              frequencies
-                              (filter (fn [[_k v]] (> v 1)))
-                              (map (fn [[k _v]]
-                                     (let [left (db-utils/pull k)]
-                                       {:left left
-                                        :duplicates (->>
-                                                     (filter (fn [block]
-                                                               (= k (:db/id (:block/left block))))
-                                                             blocks)
-                                                     (map #(select-keys % [:db/id :block/level :block/content :block/file])))}))))]
-          (util/pprint duplicates)))
-      (assert (= (count blocks) (count (set (map :block/left blocks)))) "Each block should have a different left node"))
+     (when (and check?
+                ;; Top-level blocks on whiteboards have no relationships of :block/left
+                (not= "whiteboard" (:block/type (db-utils/entity (:db/id parent)))))
+       (when (not= (count blocks) (count (set (map :block/left blocks))))
+         (let [duplicates (->> (map (comp :db/id :block/left) blocks)
+                               frequencies
+                               (filter (fn [[_k v]] (> v 1)))
+                               (map (fn [[k _v]]
+                                      (let [left (db-utils/pull k)]
+                                        {:left left
+                                         :duplicates (->>
+                                                      (filter (fn [block]
+                                                                (= k (:db/id (:block/left block))))
+                                                              blocks)
+                                                      (map #(select-keys % [:db/id :block/level :block/content :block/file])))}))))]
+           (util/pprint duplicates)))
+       (assert (= (count blocks) (count (set (map :block/left blocks)))) "Each block should have a different left node"))
 
      (let [left->blocks (reduce (fn [acc b] (assoc acc (:db/id (:block/left b)) b)) {} blocks)]
        (loop [block parent