11import { createMenu } from '../components/menu'
22import type { MenuItemConstructorOptions } from 'electron'
3- import { dialog , app , BrowserWindow } from 'electron'
3+ import { shell , dialog , app , BrowserWindow } from 'electron'
44import { version , author } from '../../../package.json'
55import os from 'os'
66
@@ -78,10 +78,6 @@ const appMenu: MenuItemConstructorOptions[] = [
7878]
7979
8080const helpMenu : MenuItemConstructorOptions [ ] = [
81- {
82- label : 'Toogle Dev tools' ,
83- role : 'toggleDevTools'
84- } ,
8581 {
8682 label : 'About' ,
8783 click ( ) {
@@ -100,6 +96,62 @@ const helpMenu: MenuItemConstructorOptions[] = [
10096 `
10197 } )
10298 }
99+ } ,
100+ {
101+ label : 'Website' ,
102+ click : ( ) => {
103+ shell . openExternal ( 'https://masscode.io' )
104+ }
105+ } ,
106+ {
107+ label : 'Change Log' ,
108+ click : ( ) => {
109+ shell . openExternal (
110+ 'https://github.com/massCodeIO/massCode/blob/master/CHANGELOG.md'
111+ )
112+ }
113+ } ,
114+ {
115+ label : 'Documentation' ,
116+ click : ( ) => {
117+ shell . openExternal ( 'https://masscode.io/documentation' )
118+ }
119+ } ,
120+ {
121+ label : 'View in GitHub' ,
122+ click : ( ) => {
123+ shell . openExternal ( 'https://github.com/massCodeIO/massCode' )
124+ }
125+ } ,
126+ {
127+ label : 'Report Issue' ,
128+ click : ( ) => {
129+ shell . openExternal (
130+ 'https://github.com/massCodeIO/massCode/issues/new/choose'
131+ )
132+ }
133+ } ,
134+ {
135+ type : 'separator'
136+ } ,
137+ {
138+ label : 'Donate' ,
139+ click : ( ) => {
140+ shell . openExternal ( 'https://opencollective.com/masscode' )
141+ }
142+ } ,
143+ {
144+ label : 'Twitter' ,
145+ click : ( ) => {
146+ shell . openExternal ( 'https://twitter.com/anton_reshetov' )
147+ }
148+ } ,
149+ {
150+ type : 'separator'
151+ } ,
152+ {
153+ label : 'Toggle Developer Tools' ,
154+ role : 'toggleDevTools'
103155 }
104156]
105157
@@ -110,15 +162,72 @@ if (isDev) {
110162 } )
111163}
112164
165+ const fileMenu : MenuItemConstructorOptions [ ] = [
166+ {
167+ label : 'New Snippet' ,
168+ accelerator : 'CommandOrControl+N' ,
169+ click : ( ) => {
170+ BrowserWindow . getFocusedWindow ( ) ?. webContents . send (
171+ 'main-menu:new-snippet'
172+ )
173+ }
174+ } ,
175+ {
176+ label : 'New Fragment' ,
177+ accelerator : 'CommandOrControl+T' ,
178+ click : ( ) => {
179+ BrowserWindow . getFocusedWindow ( ) ?. webContents . send (
180+ 'main-menu:new-fragment'
181+ )
182+ }
183+ } ,
184+ {
185+ label : 'New Folder' ,
186+ accelerator : 'CommandOrControl+Shift+N' ,
187+ click : ( ) => {
188+ BrowserWindow . getFocusedWindow ( ) ?. webContents . send ( 'main-menu:new-folder' )
189+ }
190+ }
191+ ]
192+
193+ const editorMenu : MenuItemConstructorOptions [ ] = [
194+ {
195+ label : 'Copy Snippet to Clipboard' ,
196+ accelerator : 'Shift+CommandOrControl+C' ,
197+ click : ( ) => {
198+ BrowserWindow . getFocusedWindow ( ) ?. webContents . send (
199+ 'main-menu:copy-snippet'
200+ )
201+ }
202+ } ,
203+ {
204+ label : 'Preview Markdown' ,
205+ accelerator : 'Shift+CommandOrControl+M' ,
206+ click : ( ) => {
207+ BrowserWindow . getFocusedWindow ( ) ?. webContents . send (
208+ 'main-menu:preview-markdown'
209+ )
210+ }
211+ }
212+ ]
213+
113214const menuItems : MenuItemConstructorOptions [ ] = [
114215 {
115216 label : 'massCode' ,
116217 submenu : isMac ? appMenuMac : appMenu
117218 } ,
219+ {
220+ label : 'File' ,
221+ submenu : fileMenu
222+ } ,
118223 {
119224 label : 'Edit' ,
120225 role : 'editMenu'
121226 } ,
227+ {
228+ label : 'Editor' ,
229+ submenu : editorMenu
230+ } ,
122231 {
123232 label : 'Help' ,
124233 submenu : helpMenu
0 commit comments