🐛 Fix unexpected internal error on frame hidding.

Because of incorrect use of hooks.
This commit is contained in:
Andrey Antukh 2020-06-10 09:21:25 +02:00
parent 1e709ee166
commit e25da8c6d3

View file

@ -43,20 +43,6 @@
(recur (first ids) (rest ids)) (recur (first ids) (rest ids))
false)))))) false))))))
(defn use-mouse-over
[{:keys [id] :as shape}]
(mf/use-callback
(mf/deps shape)
(fn []
(st/emit! (dws/change-hover-state id true)))))
(defn use-mouse-out
[{:keys [id] :as shape}]
(mf/use-callback
(mf/deps shape)
(fn []
(st/emit! (dws/change-hover-state id false)))))
(defn frame-wrapper-factory (defn frame-wrapper-factory
[shape-wrapper] [shape-wrapper]
(let [frame-shape (frame/frame-shape shape-wrapper)] (let [frame-shape (frame/frame-shape shape-wrapper)]
@ -93,7 +79,19 @@
(fn [event] (fn [event]
(dom/prevent-default event) (dom/prevent-default event)
(st/emit! dw/deselect-all (st/emit! dw/deselect-all
(dw/select-shape (:id shape)))))] (dw/select-shape (:id shape)))))
on-mouse-over
(mf/use-callback
(mf/deps (:id shape))
(fn []
(st/emit! (dws/change-hover-state (:id shape) true))))
on-mouse-out
(mf/use-callback
(mf/deps (:id shape))
(fn []
(st/emit! (dws/change-hover-state (:id shape) false))))]
(when-not (:hidden shape) (when-not (:hidden shape)
[:g {:class (when selected? "selected") [:g {:class (when selected? "selected")
@ -115,8 +113,8 @@
")") ")")
;; User may also select the frame with single click in the label ;; User may also select the frame with single click in the label
:on-click on-double-click :on-click on-double-click
:on-mouse-over (use-mouse-over shape) :on-mouse-over on-mouse-over
:on-mouse-out (use-mouse-out shape)} :on-mouse-out on-mouse-out}
(:name shape)] (:name shape)]
[:* [:*
[:& frame-shape [:& frame-shape