fix: batch set icon

This commit is contained in:
Tienson Qin
2025-03-11 01:10:39 +08:00
parent 8803c09cfe
commit 73615bf559

View File

@@ -64,6 +64,18 @@
(ui/icon "line-dashed"))
"Empty")])
(defn- get-operating-blocks
[block]
(let [selected-blocks (some->> (state/get-selection-block-ids)
(map (fn [id] (db/entity [:block/uuid id])))
(seq)
block-handler/get-top-level-blocks
(remove ldb/property?))
view-selected-blocks (:view/selected-blocks @state/state)]
(or (seq selected-blocks)
(seq view-selected-blocks)
[block])))
(rum/defc icon-row
[block editing?]
(let [icon-value (:logseq.property/icon block)
@@ -71,14 +83,13 @@
(shui/dialog-close!)
(shui/popup-hide-all!))
on-chosen! (fn [_e icon]
(if icon
(db-property-handler/set-block-property!
(:db/id block)
(let [repo (state/get-current-repo)
blocks (get-operating-blocks block)]
(property-handler/batch-set-block-property!
repo
(map :db/id blocks)
:logseq.property/icon
(select-keys icon [:type :id :color]))
(db-property-handler/remove-block-property!
(:db/id block)
:logseq.property/icon))
(when icon (select-keys icon [:type :id :color]))))
(clear-overlay!)
(when editing?
(editor-handler/restore-last-saved-cursor!)))]
@@ -121,18 +132,6 @@
(and (= (:db/ident property) :logseq.property/default-value)
(= (:logseq.property/type block) :number)))))
(defn- get-operating-blocks
[block]
(let [selected-blocks (some->> (state/get-selection-block-ids)
(map (fn [id] (db/entity [:block/uuid id])))
(seq)
block-handler/get-top-level-blocks
(remove ldb/property?))
view-selected-blocks (:view/selected-blocks @state/state)]
(or (seq selected-blocks)
(seq view-selected-blocks)
[block])))
(defn <create-new-block!
[block property value & {:keys [edit-block? batch-op?]
:or {edit-block? true}}]