diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index d99041e367..b0aae85dcd 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -695,7 +695,6 @@ (rum/defcs ^:large-vars/cleanup-todo page-inner < (rum/local false ::mouse-down?) - (rum/local false ::hover?) "The inner div of page reference component page-name-in-block is the overridable name of the page (legacy) @@ -707,8 +706,7 @@ :or {with-parent? true} :as config} page-entity children label] - (let [*hover? (::hover? state) - *mouse-down? (::mouse-down? state) + (let [*mouse-down? (::mouse-down? state) tag? (:tag? config) page-name (when (:block/title page-entity) (util/page-name-sanity-lc (:block/title page-entity))) @@ -728,8 +726,6 @@ :draggable true :on-drag-start (fn [e] (editor-handler/block->data-transfer! page-name e true)) - :on-mouse-over #(reset! *hover? true) - :on-mouse-leave #(reset! *hover? false) :on-pointer-down (fn [^js e] (cond (util/link? (.-target e)) @@ -833,26 +829,18 @@ (let [*el-trigger (hooks/use-ref nil)] (hooks/use-effect! (fn [] - (when-not (state/editing?) - (when (true? visible?) - (shui/popup-show! - (hooks/deref *el-trigger) render - {:root-props {:onOpenChange (fn [v] (set-visible! v)) - :modal false} - :content-props {:class "ls-preview-popup" - :onInteractOutside (fn [^js e] (.preventDefault e)) - :onEscapeKeyDown (fn [^js e] - (when (state/editing?) - (.preventDefault e) - (some-> (hooks/deref *el-popup) (.focus))))} - :as-dropdown? false})) - - (when (false? visible?) - (shui/popup-hide!) - (when (state/get-edit-block) - (state/clear-edit!))) - (hooks/set-ref! *timer nil) - (hooks/set-ref! *timer1 nil)) + (when (true? visible?) + (shui/popup-show! + (hooks/deref *el-trigger) render + {:root-props {:onOpenChange (fn [v] (set-visible! v)) + :modal false} + :content-props {:class "ls-preview-popup" + :onInteractOutside (fn [^js e] (.preventDefault e)) + :onEscapeKeyDown (fn [^js e] + (when (state/editing?) + (.preventDefault e) + (some-> (hooks/deref *el-popup) (.focus))))} + :as-dropdown? false})) ;; teardown (fn [] @@ -862,17 +850,17 @@ [:span.preview-ref-link {:ref *el-trigger - :on-mouse-enter (fn [^js e] - (when (= (some-> (.-target e) (.closest ".preview-ref-link")) - (hooks/deref *el-trigger)) - (let [timer (hooks/deref *timer) - timer1 (hooks/deref *timer1)] - (when-not timer - (hooks/set-ref! *timer - (js/setTimeout #(set-visible! true) 1000))) - (when timer1 - (js/clearTimeout timer1) - (hooks/set-ref! *timer1 nil))))) + :on-mouse-move (fn [^js e] + (when (= (some-> (.-target e) (.closest ".preview-ref-link")) + (hooks/deref *el-trigger)) + (let [timer (hooks/deref *timer) + timer1 (hooks/deref *timer1)] + (when-not timer + (hooks/set-ref! *timer + (js/setTimeout #(set-visible! true) 1000))) + (when timer1 + (js/clearTimeout timer1) + (hooks/set-ref! *timer1 nil))))) :on-mouse-leave (fn [] (let [timer (hooks/deref *timer) timer1 (hooks/deref *timer1)] @@ -941,8 +929,7 @@ (if (boolean? in-popup?) (if (and (not (:preview? config)) (not in-popup?) - (or (not manual?) open?) - (not (state/editing?))) + (or (not manual?) open?)) (popup-preview-impl children {:visible? visible? :set-visible! set-visible! :*timer *timer :*timer1 *timer1