feat(menu): add support for custom menu

This commit is contained in:
George Lima 2019-05-13 22:40:50 -03:00
parent 026e00ad5e
commit 45f9daa22b
2 changed files with 97 additions and 1 deletions

91
app/menu.js Normal file
View File

@ -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;

View File

@ -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;
};