1
1
const path = require ( "path" ) ;
2
2
3
3
const {
4
- app,
5
- BrowserWindow,
6
- Menu,
7
- shell,
8
- dialog,
9
- ipcMain
10
- } = require ( "electron" ) ;
4
+ app, BrowserWindow, Menu, shell, dialog, ipcMain,
5
+ } = require ( 'electron' ) ;
11
6
12
7
// Uncomment below for hot reloading during development
13
8
// require('electron-reload')(__dirname);
14
9
15
10
// const isDev = true;
16
- const isDev =
17
- process . env . NODE_ENV === "development" || process . env . NODE_ENV === "test" ;
11
+ const isDev = process . env . NODE_ENV === 'development' || process . env . NODE_ENV === 'test' ;
18
12
19
13
// Keep a global reference of the window object, if you don't, the window will
20
14
// be closed automatically when the JavaScript object is garbage collected.
@@ -24,53 +18,53 @@ let mainWindow;
24
18
function openFile ( ) {
25
19
// Opens file dialog looking for markdown
26
20
const files = dialog . showOpenDialog ( mainWindow , {
27
- properties : [ " openFile" ] ,
21
+ properties : [ ' openFile' ] ,
28
22
filters : [
29
23
{
30
- name : " Images" ,
31
- extensions : [ " jpeg" , " jpg" , " png" , " gif" , " pdf" ]
32
- }
33
- ]
24
+ name : ' Images' ,
25
+ extensions : [ ' jpeg' , ' jpg' , ' png' , ' gif' , ' pdf' ] ,
26
+ } ,
27
+ ] ,
34
28
} ) ;
35
29
36
30
// if no files
37
31
if ( ! files ) return ;
38
32
const file = files [ 0 ] ;
39
33
40
34
// Send fileContent to renderer
41
- mainWindow . webContents . send ( " new-file" , file ) ;
35
+ mainWindow . webContents . send ( ' new-file' , file ) ;
42
36
}
43
37
44
38
// Choose directory
45
- ipcMain . on ( " choose_app_dir" , event => {
39
+ ipcMain . on ( ' choose_app_dir' , ( event ) => {
46
40
const directory = dialog . showOpenDialog ( mainWindow , {
47
- properties : [ " openDirectory" ] ,
48
- buttonLabel : " Export"
41
+ properties : [ ' openDirectory' ] ,
42
+ buttonLabel : ' Export' ,
49
43
} ) ;
50
44
51
45
if ( ! directory ) return ;
52
- event . sender . send ( " app_dir_selected" , directory [ 0 ] ) ;
46
+ event . sender . send ( ' app_dir_selected' , directory [ 0 ] ) ;
53
47
} ) ;
54
48
55
- ipcMain . on ( " view_app_dir" , ( event , appDir ) => {
49
+ ipcMain . on ( ' view_app_dir' , ( event , appDir ) => {
56
50
shell . openItem ( appDir ) ;
57
51
} ) ;
58
52
59
53
// Update file
60
- ipcMain . on ( " update-file" , ( ) => {
54
+ ipcMain . on ( ' update-file' , ( ) => {
61
55
openFile ( ) ;
62
56
} ) ;
63
57
64
58
const createWindow = ( ) => {
65
59
// Create the browser window.
66
60
// eslint-disable-next-line
67
- const { width, height } = require ( " electron" ) . screen . getPrimaryDisplay ( ) . size ;
61
+ const { width, height } = require ( ' electron' ) . screen . getPrimaryDisplay ( ) . size ;
68
62
mainWindow = new BrowserWindow ( {
69
63
width,
70
64
height,
71
65
webPreferences : {
72
66
zoomFactor : 0.7 ,
73
- " node-Integration" : false
67
+ ' node-Integration' : false ,
74
68
} ,
75
69
show : false ,
76
70
icon : path . join ( __dirname , "/src/public/icons/mac/icon.icns" ) ,
@@ -83,22 +77,22 @@ const createWindow = () => {
83
77
// and load the index.html of the app.
84
78
mainWindow . loadURL ( `file://${ __dirname } /build/index.html` ) ;
85
79
// load page once window is loaded
86
- mainWindow . once ( " ready-to-show" , ( ) => {
80
+ mainWindow . once ( ' ready-to-show' , ( ) => {
87
81
mainWindow . show ( ) ;
88
82
} ) ;
89
83
90
84
const template = [
91
85
{
92
- label : " File" ,
86
+ label : ' File' ,
93
87
submenu : [
94
88
{
95
- label : " Open File" ,
96
- accelerator : process . platform === " darwin" ? " Cmd+O" : " Ctrl+Shift+O" ,
89
+ label : ' Open File' ,
90
+ accelerator : process . platform === ' darwin' ? ' Cmd+O' : ' Ctrl+Shift+O' ,
97
91
click ( ) {
98
92
openFile ( ) ;
99
- }
100
- }
101
- ]
93
+ } ,
94
+ } ,
95
+ ] ,
102
96
} ,
103
97
// {
104
98
// label: 'Edit',
@@ -115,90 +109,89 @@ const createWindow = () => {
115
109
// ],
116
110
// },
117
111
{
118
- label : " View" ,
112
+ label : ' View' ,
119
113
submenu : [
120
- { role : " reload" } ,
121
- { role : " forcereload" } ,
122
- { type : " separator" } ,
123
- { role : " resetzoom" } ,
124
- { role : " zoomin" } ,
125
- { role : " zoomout" } ,
126
- { type : " separator" } ,
127
- { role : " togglefullscreen" }
128
- ]
114
+ { role : ' reload' } ,
115
+ { role : ' forcereload' } ,
116
+ { type : ' separator' } ,
117
+ { role : ' resetzoom' } ,
118
+ { role : ' zoomin' } ,
119
+ { role : ' zoomout' } ,
120
+ { type : ' separator' } ,
121
+ { role : ' togglefullscreen' } ,
122
+ ] ,
129
123
} ,
130
124
{
131
- role : " window" ,
132
- submenu : [ { role : " minimize" } , { role : " close" } ]
125
+ role : ' window' ,
126
+ submenu : [ { role : ' minimize' } , { role : ' close' } ] ,
133
127
} ,
134
128
{
135
- role : " help" ,
129
+ role : ' help' ,
136
130
submenu : [
137
131
{
138
- label : " Learn More" ,
132
+ label : ' Learn More' ,
139
133
click ( ) {
140
- shell . openExternal ( " https://electronjs.org" ) ;
141
- }
142
- }
143
- ]
134
+ shell . openExternal ( ' https://electronjs.org' ) ;
135
+ } ,
136
+ } ,
137
+ ] ,
144
138
} ,
145
139
{
146
- label : " Developer" ,
140
+ label : ' Developer' ,
147
141
submenu : [
148
142
{
149
- label : "Toggle Developer Tools" ,
150
- accelerator :
151
- process . platform === "darwin" ? "Alt+Command+I" : "Ctrl+Shift+I" ,
143
+ label : 'Toggle Developer Tools' ,
144
+ accelerator : process . platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I' ,
152
145
click ( ) {
153
146
mainWindow . webContents . toggleDevTools ( ) ;
154
- }
155
- }
156
- ]
157
- }
147
+ } ,
148
+ } ,
149
+ ] ,
150
+ } ,
158
151
] ;
159
152
160
- if ( process . platform === " darwin" ) {
153
+ if ( process . platform === ' darwin' ) {
161
154
template . unshift ( {
162
155
label : app . getName ( ) ,
163
156
submenu : [
164
- { role : " about" } ,
165
- { type : " separator" } ,
166
- { role : " services" , submenu : [ ] } ,
167
- { type : " separator" } ,
168
- { role : " hide" } ,
169
- { role : " hideothers" } ,
170
- { role : " unhide" } ,
171
- { type : " separator" } ,
172
- { role : " quit" }
173
- ]
157
+ { role : ' about' } ,
158
+ { type : ' separator' } ,
159
+ { role : ' services' , submenu : [ ] } ,
160
+ { type : ' separator' } ,
161
+ { role : ' hide' } ,
162
+ { role : ' hideothers' } ,
163
+ { role : ' unhide' } ,
164
+ { type : ' separator' } ,
165
+ { role : ' quit' } ,
166
+ ] ,
174
167
} ) ;
175
168
176
169
// Edit menu
177
170
template [ 2 ] . submenu . push (
178
171
{
179
- type : " separator"
172
+ type : ' separator' ,
180
173
} ,
181
174
{
182
- label : " Speech" ,
183
- submenu : [ { role : " startspeaking" } , { role : " stopspeaking" } ]
184
- }
175
+ label : ' Speech' ,
176
+ submenu : [ { role : ' startspeaking' } , { role : ' stopspeaking' } ] ,
177
+ } ,
185
178
) ;
186
179
187
180
// Window menu
188
181
template [ 4 ] . submenu = [
189
- { role : " close" } ,
190
- { role : " minimize" } ,
191
- { role : " zoom" } ,
192
- { type : " separator" } ,
193
- { role : " front" }
182
+ { role : ' close' } ,
183
+ { role : ' minimize' } ,
184
+ { role : ' zoom' } ,
185
+ { type : ' separator' } ,
186
+ { role : ' front' } ,
194
187
] ;
195
188
}
196
189
197
190
const menu = Menu . buildFromTemplate ( template ) ;
198
191
Menu . setApplicationMenu ( menu ) ;
199
192
200
193
// Emitted when the window is closed.
201
- mainWindow . on ( " closed" , ( ) => {
194
+ mainWindow . on ( ' closed' , ( ) => {
202
195
// Dereference the window object, usually you would store windows
203
196
// in an array if your app supports multi windows, this is the time
204
197
// when you should delete the corresponding element.
@@ -209,13 +202,13 @@ const createWindow = () => {
209
202
// This method will be called when Electron has finished
210
203
// initialization and is ready to create browser windows.
211
204
// Some APIs can only be used after this event occurs.
212
- app . on ( " ready" , ( ) => {
205
+ app . on ( ' ready' , ( ) => {
213
206
if ( isDev ) {
214
207
const {
215
208
default : installExtension ,
216
209
REACT_DEVELOPER_TOOLS ,
217
- REDUX_DEVTOOLS
218
- } = require ( " electron-devtools-installer" ) ;
210
+ REDUX_DEVTOOLS ,
211
+ } = require ( ' electron-devtools-installer' ) ;
219
212
220
213
installExtension ( [ REACT_DEVELOPER_TOOLS , REDUX_DEVTOOLS ] )
221
214
. then ( ( ) => {
@@ -228,15 +221,15 @@ app.on("ready", () => {
228
221
} ) ;
229
222
230
223
// Quit when all windows are closed.
231
- app . on ( " window-all-closed" , ( ) => {
224
+ app . on ( ' window-all-closed' , ( ) => {
232
225
// On OS X it is common for applications and their menu bar
233
226
// to stay active until the user quits explicitly with Cmd + Q
234
- if ( process . platform !== " darwin" ) {
227
+ if ( process . platform !== ' darwin' ) {
235
228
app . quit ( ) ;
236
229
}
237
230
} ) ;
238
231
239
- app . on ( " activate" , ( ) => {
232
+ app . on ( ' activate' , ( ) => {
240
233
// On OS X it's common to re-create a window in the app when the
241
234
// dock icon is clicked and there are no other windows open.
242
235
if ( mainWindow === null ) {
0 commit comments