mirror of https://github.com/logseq/logseq
fix: don't re-run queries when hovering the foldable title
parent
30df4c220b
commit
fe84cf1137
|
@ -722,28 +722,10 @@
|
|||
{:class (if collapsed? "rotating-arrow collapsed" "rotating-arrow not-collapsed")}
|
||||
(svg/caret-right)])
|
||||
|
||||
(rum/defcs foldable < db-mixins/query rum/reactive
|
||||
(rum/defcs foldable-title <
|
||||
(rum/local false ::control?)
|
||||
(rum/local false ::collapsed?)
|
||||
{:will-mount (fn [state]
|
||||
(let [args (:rum/args state)]
|
||||
(when (true? (:default-collapsed? (last args)))
|
||||
(reset! (get state ::collapsed?) true)))
|
||||
state)
|
||||
:did-mount (fn [state]
|
||||
(when-let [f (:init-collapsed (last (:rum/args state)))]
|
||||
(f (::collapsed? state)))
|
||||
state)}
|
||||
[state header content {:keys [title-trigger? on-mouse-down
|
||||
_default-collapsed? _init-collapsed]}]
|
||||
(let [control? (get state ::control?)
|
||||
collapsed? (get state ::collapsed?)
|
||||
on-mouse-down (fn [e]
|
||||
(util/stop e)
|
||||
(swap! collapsed? not)
|
||||
(when on-mouse-down
|
||||
(on-mouse-down @collapsed?)))]
|
||||
[:div.flex.flex-col
|
||||
[state {:keys [on-mouse-down header title-trigger? collapsed?]}]
|
||||
(let [control? (get state ::control?)]
|
||||
[:div.content
|
||||
[:div.flex-1.flex-row.foldable-title (cond->
|
||||
{:on-mouse-over #(reset! control? true)
|
||||
|
@ -764,7 +746,32 @@
|
|||
(rotating-arrow @collapsed?)]])
|
||||
(if (fn? header)
|
||||
(header @collapsed?)
|
||||
header)]]]
|
||||
header)]]]))
|
||||
|
||||
(rum/defcs foldable < db-mixins/query rum/reactive
|
||||
(rum/local false ::collapsed?)
|
||||
{:will-mount (fn [state]
|
||||
(let [args (:rum/args state)]
|
||||
(when (true? (:default-collapsed? (last args)))
|
||||
(reset! (get state ::collapsed?) true)))
|
||||
state)
|
||||
:did-mount (fn [state]
|
||||
(when-let [f (:init-collapsed (last (:rum/args state)))]
|
||||
(f (::collapsed? state)))
|
||||
state)}
|
||||
[state header content {:keys [title-trigger? on-mouse-down
|
||||
_default-collapsed? _init-collapsed]}]
|
||||
(let [collapsed? (get state ::collapsed?)
|
||||
on-mouse-down (fn [e]
|
||||
(util/stop e)
|
||||
(swap! collapsed? not)
|
||||
(when on-mouse-down
|
||||
(on-mouse-down @collapsed?)))]
|
||||
[:div.flex.flex-col
|
||||
(foldable-title {:on-mouse-down on-mouse-down
|
||||
:header header
|
||||
:title-trigger? title-trigger?
|
||||
:collapsed? collapsed?})
|
||||
[:div {:class (if @collapsed? "hidden" "initial")
|
||||
:on-mouse-down (fn [e] (.stopPropagation e))}
|
||||
(if (fn? content)
|
||||
|
|
Loading…
Reference in New Issue