fix: store db/id in block/children instead of lookup refs

This commit is contained in:
Tienson Qin
2020-11-12 20:16:00 +08:00
parent 09c6f16079
commit b49f172ce3
3 changed files with 27 additions and 32 deletions

View File

@@ -221,7 +221,10 @@
(defn block-keywordize
[block]
(medley/map-keys
(fn [k] (keyword "block" k))
(fn [k]
(if (namespace k)
k
(keyword "block" k)))
block))
(defn safe-blocks
@@ -269,23 +272,23 @@
(when (util/uuid-string? custom-id)
(uuid custom-id))))
(d/squuid))
temp-id (d/tempid :db.part/user)
block (second block)
level (:level block)
[children current-block-children]
(cond
(>= level last-level)
[(conj children [id level])
[(conj children [temp-id level])
#{}]
(< level last-level)
(let [current-block-children (set (->> (filter #(< level (second %)) children)
(map first)
(map (fn [id]
[:block/uuid id]))))
(map first)))
others (vec (remove #(< level (second %)) children))]
[(conj others [id level])
[(conj others [temp-id level])
current-block-children]))
block (-> (assoc block
:db/id temp-id
:uuid id
:body (vec (reverse block-body))
:properties (:properties properties)