From 73615bf559632e906734f0c842353abb9aedc0e9 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Tue, 11 Mar 2025 01:10:39 +0800 Subject: [PATCH] fix: batch set icon --- .../frontend/components/property/value.cljs | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/main/frontend/components/property/value.cljs b/src/main/frontend/components/property/value.cljs index b88bc636f4..4d897303ef 100644 --- a/src/main/frontend/components/property/value.cljs +++ b/src/main/frontend/components/property/value.cljs @@ -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