fix(whiteboard): cleanup click outside events correctly

This commit is contained in:
Peng Xiao
2022-10-09 13:00:46 +08:00
committed by Tienson Qin
parent b536e78ec0
commit c307cb62cc
2 changed files with 5 additions and 13 deletions

View File

@@ -122,7 +122,9 @@
(defn use-click-outside
"Returns a function that can be used to register a callback
that will be called when the user clicks outside the given dom node"
[handler]
[handler & {:keys [capture? event]
:or {capture? false
event "click"}}] ;; could be "mousedown" or "click"
(let [[ref set-ref] (rum/use-state nil)]
(rum/use-effect!
(fn []
@@ -130,7 +132,7 @@
(when (and ref
(not (.. ref (contains (.-target e)))))
(handler e)))]
(js/document.addEventListener "click" listener)
#(.removeEventListener js/document "click" listener)))
(js/document.addEventListener event listener capture?)
#(js/document.removeEventListener event listener capture?)))
[ref])
set-ref))