1
0
Эх сурвалжийг харах

fix: don't access renderer's state in Electron

Tienson Qin 3 жил өмнө
parent
commit
097ad107c3

+ 2 - 3
src/electron/electron/handler.cljs

@@ -15,8 +15,7 @@
             [clojure.core.async :as async]
             [electron.search :as search]
             [electron.git :as git]
-            [electron.plugin :as plugin]
-            [frontend.handler.route :as route-handler]))
+            [electron.plugin :as plugin]))
 
 (defmulti handle (fn [_window args] (keyword (first args))))
 
@@ -189,7 +188,7 @@
           (fs-extra/removeSync path)
           (catch js/Error e
             (js/console.error e)))))
-    (route-handler/redirect-to-home!)))
+    (utils/send-to-renderer "redirect" {:payload {:to :home}})))
 
 (defmethod handle :clearCache [_window _]
   (search/close!)

+ 8 - 1
src/main/electron/listener.cljs

@@ -73,7 +73,14 @@
   (js/window.apis.on "getCurrentGraph"
                      (fn []
                        (when-let [graph (state/get-current-repo)]
-                         (ipc/ipc "setCurrentGraph" graph)))))
+                         (ipc/ipc "setCurrentGraph" graph))))
+
+  (js/window.apis.on "redirect"
+                     (fn [data]
+                       (let [{:keys [payload]} (bean/->clj data)
+                             payload (update payload :to keyword)]
+                         (prn {:payload payload})
+                         (route-handler/redirect! payload)))))
 
 (defn listen!
   []