mirror of
https://github.com/logseq/logseq.git
synced 2026-05-21 11:22:44 +00:00
fix: display reference preview in editing mode
fixes https://github.com/logseq/db-test/issues/369
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user