feat(menu): add support for custom menu
This commit is contained in:
parent
026e00ad5e
commit
45f9daa22b
|
@ -0,0 +1,91 @@
|
|||
// @flow
|
||||
|
||||
import { openExternal } from './utils/open-external';
|
||||
import packageJson from '../package.json';
|
||||
|
||||
const DOCS_URL = 'https://zepiowallet.com/';
|
||||
const REPOSITORY_URL = 'https://github.com/ZcashFoundation/zepio/issues/new';
|
||||
|
||||
const menu = [
|
||||
{
|
||||
label: 'Edit',
|
||||
submenu: [
|
||||
{ role: 'undo' },
|
||||
{ role: 'redo' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'cut' },
|
||||
{ role: 'copy' },
|
||||
{ role: 'paste' },
|
||||
{ role: 'pasteandmatchstyle' },
|
||||
{ role: 'delete' },
|
||||
{ role: 'selectall' },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'View',
|
||||
submenu: [
|
||||
{ role: 'reload' },
|
||||
{ role: 'forcereload' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'resetzoom' },
|
||||
{ role: 'zoomin' },
|
||||
{ role: 'zoomout' },
|
||||
{ role: 'togglefullscreen' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'toggledevtools' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const helpMenu = {
|
||||
role: 'help',
|
||||
submenu: [
|
||||
{
|
||||
label: `v${packageJson.version}`,
|
||||
enabled: false,
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{
|
||||
label: 'Help / FAQ',
|
||||
click() {
|
||||
openExternal(DOCS_URL);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Report a Bug',
|
||||
click() {
|
||||
openExternal(REPOSITORY_URL);
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
menu.unshift({
|
||||
label: 'Zepio',
|
||||
submenu: [
|
||||
{ role: 'about' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'hide' },
|
||||
{ role: 'hideothers' },
|
||||
{ role: 'unhide' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'quit' },
|
||||
],
|
||||
});
|
||||
|
||||
menu.push({
|
||||
...helpMenu,
|
||||
submenu: [
|
||||
...helpMenu.submenu,
|
||||
{
|
||||
label: 'Speech',
|
||||
submenu: [{ role: 'startspeaking' }, { role: 'stopspeaking' }],
|
||||
},
|
||||
],
|
||||
});
|
||||
} else {
|
||||
menu.push(helpMenu);
|
||||
}
|
||||
|
||||
export const MENU = menu;
|
|
@ -6,7 +6,9 @@ import dotenv from 'dotenv';
|
|||
import path from 'path';
|
||||
|
||||
/* eslint-disable import/no-extraneous-dependencies */
|
||||
import { app, BrowserWindow, typeof BrowserWindow as BrowserWindowType } from 'electron';
|
||||
import {
|
||||
app, BrowserWindow, typeof BrowserWindow as BrowserWindowType, Menu,
|
||||
} from 'electron';
|
||||
import { autoUpdater } from 'electron-updater';
|
||||
import isDev from 'electron-is-dev';
|
||||
import { registerDebugShortcut } from '../utils/debug-shortcut';
|
||||
|
@ -15,6 +17,7 @@ import { log as zcashLog, cleanLogs } from './daemon/logger';
|
|||
import getZecPrice from '../services/zec-price';
|
||||
import store from './electron-store';
|
||||
import { handleDeeplink } from './handle-deeplink';
|
||||
import { MENU } from '../app/menu';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
|
@ -77,6 +80,8 @@ const createWindow = () => {
|
|||
isDev ? 'http://localhost:8080/' : `file://${path.join(__dirname, '../build/index.html')}`,
|
||||
);
|
||||
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(MENU));
|
||||
|
||||
exports.app = app;
|
||||
exports.mainWindow = mainWindow;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue