mirror of https://github.com/logseq/logseq
refactor: sync immediately on switching browser tabs
parent
bd4cf6b153
commit
735e9ba70c
|
@ -650,10 +650,12 @@
|
||||||
(on-hide value event))
|
(on-hide value event))
|
||||||
(when
|
(when
|
||||||
(or (= event :esc)
|
(or (= event :esc)
|
||||||
|
(= event :visibilitychange)
|
||||||
(and (= event :click)
|
(and (= event :click)
|
||||||
(not (editor-handler/in-auto-complete? (gdom/getElement id)))))
|
(not (editor-handler/in-auto-complete? (gdom/getElement id)))))
|
||||||
(state/clear-edit!))))))
|
(state/clear-edit!))))))
|
||||||
:node (gdom/getElement id)))
|
:node (gdom/getElement id)
|
||||||
|
:visibilitychange? true))
|
||||||
100)
|
100)
|
||||||
|
|
||||||
(when-let [element (gdom/getElement id)]
|
(when-let [element (gdom/getElement id)]
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
;; (dissoc state name))})
|
;; (dissoc state name))})
|
||||||
|
|
||||||
(defn hide-when-esc-or-outside
|
(defn hide-when-esc-or-outside
|
||||||
[state & {:keys [on-hide node]}]
|
[state & {:keys [on-hide node visibilitychange?]}]
|
||||||
(try
|
(try
|
||||||
(let [dom-node (rum/dom-node state)]
|
(let [dom-node (rum/dom-node state)]
|
||||||
(when-let [dom-node (or node dom-node)]
|
(when-let [dom-node (or node dom-node)]
|
||||||
|
@ -65,6 +65,16 @@
|
||||||
(fn [e]
|
(fn [e]
|
||||||
(case (.-keyCode e)
|
(case (.-keyCode e)
|
||||||
;; Esc
|
;; Esc
|
||||||
|
27 (on-hide state e :esc)
|
||||||
|
nil)))
|
||||||
|
(when visibilitychange?
|
||||||
|
(listen state js/window "visibilitychange"
|
||||||
|
(fn [e]
|
||||||
|
(on-hide state e :visibilitychange))))
|
||||||
|
(listen state dom-node "keydown"
|
||||||
|
(fn [e]
|
||||||
|
(case (.-keyCode e)
|
||||||
|
;; Esc
|
||||||
27 (on-hide state e :esc)
|
27 (on-hide state e :esc)
|
||||||
nil)))))
|
nil)))))
|
||||||
(catch js/Error e
|
(catch js/Error e
|
||||||
|
|
Loading…
Reference in New Issue