From 2122d3d27c35e9a2a6557aff0417fe0559f6b794 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Sun, 9 Nov 2025 09:02:46 +0800 Subject: [PATCH] fix: Active breadcrumbs in node property dropdown menu fixes https://github.com/logseq/db-test/issues/565 --- src/main/frontend/components/block.cljs | 13 +++++++++---- src/main/frontend/components/editor.cljs | 3 ++- src/main/frontend/components/property/value.cljs | 3 ++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index 7d10f3a100..933f934e19 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -3296,7 +3296,7 @@ ;; "block-id - uuid of the target block of breadcrumb. page uuid is also acceptable" (rum/defc breadcrumb-aux < rum/reactive - [config repo block-id {:keys [show-page? indent? end-separator? _navigating-block] + [config repo block-id {:keys [show-page? indent? end-separator? _navigating-block disabled?] :or {show-page? true} :as opts}] (let [from-property (when (and block-id (config/db-based-graph? repo)) @@ -3312,7 +3312,10 @@ (let [parents-props (doall (for [{:block/keys [uuid name title] :as block} parents] (if name - [block (page-cp {:disable-preview? true} block) true] + [block (page-cp (cond-> {:disable-preview? true} + disabled? + (assoc :disable-click? true)) + block) true] (let [result (block/parse-title-and-body uuid (get block :block/format :markdown) @@ -3333,7 +3336,9 @@ label' (if page? label (breadcrumb-fragment config block label opts))] - (rum/with-key label' (str (:block/uuid block)))))) + (if (:disabled? opts) + label + (rum/with-key label' (str (:block/uuid block))))))) (interpose (breadcrumb-separator)))] (when (seq breadcrumbs) [:div.breadcrumb.block-parents @@ -3349,7 +3354,7 @@ (when end-separator? (breadcrumb-separator))]))))) (rum/defc breadcrumb - [config repo block-id {:keys [_show-page? _indent? _end-separator? _navigating-block] + [config repo block-id {:keys [_show-page? _indent? _end-separator? _navigating-block _disabled?] :as opts}] (let [[block set-block!] (hooks/use-state (when (uuid? block-id) (db/entity [:block/uuid block-id])))] diff --git a/src/main/frontend/components/editor.cljs b/src/main/frontend/components/editor.cljs index 2ea8b67878..065d37e76e 100644 --- a/src/main/frontend/components/editor.cljs +++ b/src/main/frontend/components/editor.cljs @@ -213,7 +213,8 @@ (when (and (:block/uuid block') (or (:block/parent block') (not (:page? block)))) (when-let [breadcrumb (state/get-component :block/breadcrumb)] [:div.text-xs.opacity-70.mb-1 {:style {:margin-left 3}} - (breadcrumb {:search? true} (state/get-current-repo) (:block/uuid block') {})])) + (breadcrumb {:search? true} (state/get-current-repo) (:block/uuid block') + {:disabled? true})])) [:div.flex.flex-row.items-start (when-not (or db-tag? (not db-based?)) [:div.flex.items-center.h-5.mr-1.opacity-50 diff --git a/src/main/frontend/components/property/value.cljs b/src/main/frontend/components/property/value.cljs index 355ea1d79e..353a7e125a 100644 --- a/src/main/frontend/components/property/value.cljs +++ b/src/main/frontend/components/property/value.cljs @@ -764,7 +764,8 @@ header (when-not (db/page? node) (when-let [breadcrumb (state/get-component :block/breadcrumb)] [:div.text-xs.opacity-70 - (breadcrumb {:search? true} (state/get-current-repo) (:block/uuid node) {})])) + (breadcrumb {:search? true} (state/get-current-repo) (:block/uuid node) + {:disabled? true})])) label [:div.flex.flex-row.items-center.gap-1 (when-not (or (:logseq.property/classes property) (contains? #{:class :property} (:logseq.property/type property)))