Browse Source

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

Tienson Qin 3 years ago
parent
commit
097ad107c3
2 changed files with 10 additions and 4 deletions
  1. 2 3
      src/electron/electron/handler.cljs
  2. 8 1
      src/main/electron/listener.cljs

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

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

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

@@ -73,7 +73,14 @@
   (js/window.apis.on "getCurrentGraph"
   (js/window.apis.on "getCurrentGraph"
                      (fn []
                      (fn []
                        (when-let [graph (state/get-current-repo)]
                        (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!
 (defn listen!
   []
   []