Skip to content

Commit df52dc5

Browse files
committed
move functionality from preload to main
1 parent 664dfe2 commit df52dc5

File tree

4 files changed

+23
-24
lines changed

4 files changed

+23
-24
lines changed

src/electron/main.cljs

+15
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
(ns electron.main
22
(:require
33
#_["@sentry/electron/main" :as sentry-electron-main]
4+
["@webref/css" :as css]
45
["electron-extension-installer" :refer [REACT_DEVELOPER_TOOLS installExtension]]
56
["electron-log/main" :as log]
67
["electron-reloader"]
78
#_["electron-updater" :as updater]
89
["electron-window-state" :as window-state-keeper]
910
["electron" :refer [app shell ipcMain BrowserWindow clipboard nativeTheme]]
11+
["font-scanner" :as fontManager]
1012
["os" :as os]
1113
["path" :as path]
1214
[config]
@@ -79,6 +81,17 @@
7981
["restore" "windowRestored"]]]
8082
(.on ^js @main-window window-event #(send-to-renderer! action))))
8183

84+
(defn load-system-fonts!
85+
"https://github.com/axosoft/font-scanner#getavailablefonts"
86+
[]
87+
(let [fonts (.getAvailableFontsSync fontManager)]
88+
(send-to-renderer! "fontsLoaded" fonts)))
89+
90+
(defn load-webref!
91+
[]
92+
(p/let [files (.listAll css)]
93+
(send-to-renderer! "webrefLoaded" files)))
94+
8295
(defn register-web-contents-events!
8396
[]
8497
(doseq
@@ -115,6 +128,8 @@
115128
(fn []
116129
(.show ^js @main-window)
117130
(.manage win-state ^js @main-window)
131+
(load-system-fonts!)
132+
(load-webref!)
118133
(send-to-renderer! (if (.isMaximized ^js @main-window)
119134
"windowMaximized"
120135
"windowUnmaximized"))

src/electron/preload.cljs

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
(ns electron.preload
22
(:require
33
#_["@sentry/electron" :as Sentry]
4-
["@webref/css" :as css]
54
["electron" :refer [contextBridge ipcRenderer]]
65
["font-scanner" :as fontManager]
7-
["mdn-data" :as mdn] ;; deprecating in favor of w3c/webref
86
["opentype.js" :as opentype]
97
["os" :as os]
108
[config]))
@@ -21,19 +19,15 @@
2119
:receive (fn [channel f]
2220
;; Strip event (_) as it includes `sender`
2321
(.on ipcRenderer channel (fn [_ args] (f args))))
24-
:mdn mdn
25-
:webrefCss css
2622
:platform (.platform os)
27-
;; https://github.com/axosoft/font-scanner#getavailablefonts
28-
:systemFonts (.getAvailableFontsSync fontManager)
2923
:findFonts (fn [descriptor] (.findFontsSync fontManager descriptor))
3024
:textToPath (fn [text options]
3125
(text->path text (js->clj options :keywordize-keys true)))})
3226

3327
(defn ^:export init []
3428
;; https://docs.sentry.io/platforms/javascript/guides/electron/#configuring-the-client
3529
#_(.init Sentry (clj->js config/sentry-options))
36-
;; Expose protected methods that allow the renderer process to use the
30+
;; Expose protected methods that allow the renderer process to use the
3731
;; ipcRenderer without exposing the entire object
3832
;; https://www.electronjs.org/docs/api/context-bridge
3933
(.exposeInMainWorld contextBridge "api" (clj->js api)))

src/renderer/core.cljs

+5-15
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
#_["@sentry/electron/renderer" :as sentry-electron-renderer]
44
#_["@sentry/react" :as sentry-react]
55
["electron-log/renderer"]
6+
["mdn-data" :as mdn] ;; deprecating in favor of w3c/webref
67
["paper" :refer [paper]]
78
[cljs.reader :as edn]
89
[config]
910
[devtools.core :as devtools]
1011
[platform]
11-
[promesa.core :as p]
1212
[re-frame.core :as rf]
1313
[re-pressed.core :as rp]
1414
[reagent.dom :as ra.dom]
@@ -82,7 +82,8 @@
8282
"fromMain"
8383
(fn [data]
8484
(case (.-action data)
85-
"fontsLoaded" (js/console.log "fontsLoaded")
85+
"fontsLoaded" (rf/dispatch [:set-system-fonts (js->clj (.-data data) :keywordize-keys true)])
86+
"webrefLoaded" (rf/dispatch [:set-webref-css (js->clj (.-data data) :keywordize-keys true)])
8687
"windowMaximized" (rf/dispatch [::window.e/set-maximized? true])
8788
"windowUnmaximized" (rf/dispatch [::window.e/set-maximized? false])
8889
"windowEnteredFullscreen" (rf/dispatch [::window.e/set-fullscreen? true])
@@ -92,15 +93,6 @@
9293
"fileLoaded" (rf/dispatch [::document.e/load (edn/read-string (.-data data))])
9394
"fileSaved" (rf/dispatch [::document.e/saved (edn/read-string (.-data data))])))))
9495

95-
(defn load-system-fonts!
96-
[]
97-
(let [fonts (js->clj js/window.api.systemFonts :keywordize-keys true)]
98-
(rf/dispatch-sync [:set-system-fonts fonts])))
99-
100-
(defn load-webref!
101-
[]
102-
(p/let [files (js/window.api.webrefCss.listAll)]
103-
(rf/dispatch-sync [:set-webref-css (js->clj files :keywordize-keys true)])))
10496

10597
(defn ^:export init []
10698
#_(if platform/electron?
@@ -121,6 +113,7 @@
121113
(rf/dispatch-sync [:theme/init-mode])
122114
(rf/dispatch-sync [::document.e/new])
123115
(rf/dispatch-sync [:set-tool :select])
116+
(rf/dispatch-sync [:set-mdn (js->clj mdn :keywordize-keys true)])
124117

125118
(rf/dispatch-sync [::rp/add-keyboard-event-listener "keydown"])
126119
(rf/dispatch-sync [::rp/set-keydown-rules keyb/keydown-rules])
@@ -131,10 +124,7 @@
131124
(.setup paper) ; REVIEW
132125

133126
(if platform/electron?
134-
(do (load-system-fonts!)
135-
(load-webref!)
136-
(rf/dispatch-sync [:set-mdn (js->clj js/window.api.mdn :keywordize-keys true)])
137-
(init-api!))
127+
(init-api!)
138128
(.addEventListener js/document
139129
"fullscreenchange"
140130
#(rf/dispatch [:window.e/set-fullscreen? (boolean (.-fullscreenElement js/document))])))

src/renderer/history/handlers.cljs

+2-2
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
[db [x y]]
105105
(assoc-in db (conj (history-path db) :translate) [x y]))
106106

107-
(defn create-state
107+
(defn- create-state
108108
[db id explanation]
109109
{:explanation explanation
110110
:elements (element.h/elements db)
@@ -114,7 +114,7 @@
114114
:parent (:position (history db))
115115
:children []})
116116

117-
(defn update-ancestors
117+
(defn- update-ancestors
118118
"Makes all ancestors of the active branch the rightmost element.
119119
This ensures that when users remain in the latest branch when they undo/redo."
120120
[db]

0 commit comments

Comments
 (0)