浏览代码

fix: clear interval to avoid multiple intervals on dev mode

Code modifications will trigger :will-mount again which results in
multiple intervals.
Tienson Qin 1 年之前
父节点
当前提交
efc083afab
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      src/main/frontend/components/header.cljs

+ 6 - 2
src/main/frontend/components/header.cljs

@@ -69,8 +69,12 @@
                               (if (= :open (:rtc-state @(:rtc/state @state/state)))
                                 (rtc-handler/<rtc-get-users-info)
                                 (when @*interval (js/clearInterval @*interval))))
-                            5000)))
-                 state)}
+                            5000))
+                   (assoc state ::interval *interval)))
+   :will-unmount (fn [state]
+                   (when-let [interval @(::interval state)]
+                     (js/clearInterval interval))
+                   state)}
   []
   (let [rtc-graph-id (ldb/get-graph-rtc-uuid (db/get-db))
         online-users (->> (get (state/sub :rtc/users-info) (state/get-current-repo))