From 565deb69a02fde1126326ee34def6ad31f4aa3ad Mon Sep 17 00:00:00 2001 From: charlie Date: Wed, 4 Sep 2024 16:48:59 +0800 Subject: [PATCH] fix(ux): enter interaction for the icon picker from block property --- src/main/frontend/components/icon.cljs | 1 - src/main/frontend/handler/editor.cljs | 28 ++++++++++++++++---------- src/main/frontend/handler/events.cljs | 1 - 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/frontend/components/icon.cljs b/src/main/frontend/components/icon.cljs index ac6a75b944..b2e3690b92 100644 --- a/src/main/frontend/components/icon.cljs +++ b/src/main/frontend/components/icon.cljs @@ -143,7 +143,6 @@ mods (mod total step) rows (if (zero? mods) rows (inc rows)) items (vec items)] - (prn :debug :rows rows) (ui/virtualized-list (cond-> {:total-count rows :item-content (fn [idx] diff --git a/src/main/frontend/handler/editor.cljs b/src/main/frontend/handler/editor.cljs index 84bba8daa9..007ef9cd9a 100644 --- a/src/main/frontend/handler/editor.cljs +++ b/src/main/frontend/handler/editor.cljs @@ -2536,21 +2536,27 @@ [el] (some? (dom/closest el ".single-block"))) -(defn keydown-new-block-handler [e] +(defn- inside-of-editor-block + [el] + (some? (dom/closest el ".block-editor"))) + +(defn keydown-new-block-handler [^js e] (let [state (get-state)] - (if (or (state/doc-mode-enter-for-new-line?) (inside-of-single-block (rum/dom-node state))) - (keydown-new-line) - (do - (.preventDefault e) - (keydown-new-block state))))) + (when (or (nil? (.-target e)) (inside-of-editor-block (.-target e))) + (if (or (state/doc-mode-enter-for-new-line?) (inside-of-single-block (rum/dom-node state))) + (keydown-new-line) + (do + (.preventDefault e) + (keydown-new-block state)))))) (defn keydown-new-line-handler [e] (let [state (get-state)] - (if (and (state/doc-mode-enter-for-new-line?) (not (inside-of-single-block (rum/dom-node state)))) - (keydown-new-block state) - (do - (.preventDefault e) - (keydown-new-line))))) + (when (or (nil? (.-target e)) (inside-of-editor-block (.-target e))) + (if (and (state/doc-mode-enter-for-new-line?) (not (inside-of-single-block (rum/dom-node state)))) + (keydown-new-block state) + (do + (.preventDefault e) + (keydown-new-line)))))) (defn- select-first-last "Select first or last block in viewpoint" diff --git a/src/main/frontend/handler/events.cljs b/src/main/frontend/handler/events.cljs index 9464377540..4e672c862e 100644 --- a/src/main/frontend/handler/events.cljs +++ b/src/main/frontend/handler/events.cljs @@ -997,7 +997,6 @@ (shui/popup-show! target' #(property-dialog/dialog blocks opts') {:align "start" - :as-dropdown? true :auto-focus? true}) (shui/dialog-open! #(property-dialog/dialog blocks opts') {:id :property-dialog