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))
|
||||
(when
|
||||
(or (= event :esc)
|
||||
(= event :visibilitychange)
|
||||
(and (= event :click)
|
||||
(not (editor-handler/in-auto-complete? (gdom/getElement id)))))
|
||||
(state/clear-edit!))))))
|
||||
:node (gdom/getElement id)))
|
||||
:node (gdom/getElement id)
|
||||
:visibilitychange? true))
|
||||
100)
|
||||
|
||||
(when-let [element (gdom/getElement id)]
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
;; (dissoc state name))})
|
||||
|
||||
(defn hide-when-esc-or-outside
|
||||
[state & {:keys [on-hide node]}]
|
||||
[state & {:keys [on-hide node visibilitychange?]}]
|
||||
(try
|
||||
(let [dom-node (rum/dom-node state)]
|
||||
(when-let [dom-node (or node dom-node)]
|
||||
|
@ -65,6 +65,16 @@
|
|||
(fn [e]
|
||||
(case (.-keyCode e)
|
||||
;; 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)
|
||||
nil)))))
|
||||
(catch js/Error e
|
||||
|
|
Loading…
Reference in New Issue