mirror of
https://github.com/logseq/logseq.git
synced 2026-05-27 06:04:23 +00:00
fix: typing a block with a new tag name doesn't save the tag
This commit is contained in:
@@ -133,14 +133,17 @@
|
||||
(when (and (config/db-based-graph? (state/get-current-repo))
|
||||
(:block/page block-entity)
|
||||
tags)
|
||||
(when-let [instance-id (first (remove (set (map :block/uuid tags))
|
||||
(map :block/uuid (:block/refs m))))]
|
||||
(swap! txs-state (fn [txs]
|
||||
(concat txs
|
||||
[{:block/uuid instance-id
|
||||
:block/tags (:block/tags m)}
|
||||
{:db/id (:db/id block-entity)
|
||||
:block/instance [:block/uuid instance-id]}])))))))
|
||||
(let [tag-names (set (map :block/name tags))]
|
||||
(when-let [instance-id (:block/uuid
|
||||
(first (remove (fn [ref]
|
||||
(contains? tag-names (:block/name ref)))
|
||||
(:block/refs m))))]
|
||||
(swap! txs-state (fn [txs]
|
||||
(concat txs
|
||||
[{:block/uuid instance-id
|
||||
:block/tags (:block/tags m)}
|
||||
{:db/id (:db/id block-entity)
|
||||
:block/instance [:block/uuid instance-id]}]))))))))
|
||||
|
||||
(defn rebuild-block-refs
|
||||
[block new-properties & {:keys [skip-content-parsing?]}]
|
||||
@@ -177,6 +180,19 @@
|
||||
(swap! txs-state (fn [txs] (concat txs [{:db/id (:db/id block)
|
||||
:block/refs refs}]))))))
|
||||
|
||||
(defn- fix-tag-ids
|
||||
[m]
|
||||
(let [refs (set (map :block/name (seq (:block/refs m))))
|
||||
tags (seq (:block/tags m))]
|
||||
(if (and refs tags)
|
||||
(update m :block/tags (fn [tags]
|
||||
(map (fn [tag]
|
||||
(if (contains? refs (:block/name tag))
|
||||
(dissoc tag :block/uuid)
|
||||
tag))
|
||||
tags)))
|
||||
m)))
|
||||
|
||||
;; -get-id, -get-parent-id, -get-left-id return block-id
|
||||
;; the :block/parent, :block/left should be datascript lookup ref
|
||||
|
||||
@@ -235,7 +251,8 @@
|
||||
(dissoc :block/children :block/meta :block.temp/top? :block.temp/bottom?
|
||||
:block/title :block/body :block/level)
|
||||
gp-util/remove-nils
|
||||
block-with-timestamps)
|
||||
block-with-timestamps
|
||||
fix-tag-ids)
|
||||
id (:db/id (:data this))
|
||||
block-entity (db/entity id)]
|
||||
(when id
|
||||
|
||||
Reference in New Issue
Block a user