feat(menu): add support for custom menu (#118)
feat(menu): add support for custom menu
This commit is contained in:
commit
f31fd928d9
|
@ -0,0 +1,78 @@
|
|||
// @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';
|
||||
|
||||
const menu = [
|
||||
{
|
||||
label: 'Edit',
|
||||
submenu: [
|
||||
{ role: 'undo' },
|
||||
{ role: 'redo' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'cut' },
|
||||
{ role: 'copy' },
|
||||
{ role: 'paste' },
|
||||
{ role: 'delete' },
|
||||
{ role: 'selectall' },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'View',
|
||||
submenu: [
|
||||
{ role: 'togglefullscreen' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
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: packageJson.name,
|
||||
submenu: [
|
||||
{ role: 'about' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'hide' },
|
||||
{ role: 'hideothers' },
|
||||
{ role: 'unhide' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'quit' },
|
||||
],
|
||||
});
|
||||
|
||||
menu.push({
|
||||
...helpMenu,
|
||||
submenu: [
|
||||
...helpMenu.submenu,
|
||||
],
|
||||
});
|
||||
} 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();
|
||||
|
||||
|
@ -62,8 +65,7 @@ const createWindow = () => {
|
|||
frame: true,
|
||||
resizable: true,
|
||||
webPreferences: {
|
||||
devTools: true,
|
||||
// devTools: false,
|
||||
devTools: false,
|
||||
webSecurity: true,
|
||||
},
|
||||
});
|
||||
|
@ -77,6 +79,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;
|
||||
};
|
||||
|
|
163
package.json
163
package.json
|
@ -1,10 +1,23 @@
|
|||
{
|
||||
"name": "zepio",
|
||||
"productName": "Zepio",
|
||||
"version": "0.6.2",
|
||||
"description": "Zepio",
|
||||
"description": "Zepio | Cross-platform sapling-enabled full-node Zcash wallet",
|
||||
"main": "config/main.js",
|
||||
"license": "MIT",
|
||||
"homepage": "https://zepiowallet.com",
|
||||
"license": "MIT",
|
||||
"author": {
|
||||
"name": "André Neves",
|
||||
"email": "andrerfneves@protonmail.com",
|
||||
"url": "https://andrenev.es"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ZcashFoundation/zepio/issues"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/ZcashFoundation/zepio"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "yarn check --integrity && concurrently \"cross-env BROWSER=none yarn dev\" \"wait-on http://0.0.0.0:8080 && yarn electron:dev\"",
|
||||
"dev": "webpack-dev-server --config config/webpack-dev.config.js --mode development --open --hot",
|
||||
|
@ -32,12 +45,77 @@
|
|||
"e2e:serve": "node -r @babel/register ./__tests__/setup/mockAPI.js",
|
||||
"e2e:run": "yarn test e2e"
|
||||
},
|
||||
"author": {
|
||||
"name": "André Neves",
|
||||
"email": "andrerfneves@protonmail.com",
|
||||
"url": "https://andrenev.es"
|
||||
"pre-commit": [
|
||||
"flow:generate-coverage-badge",
|
||||
"lint:precommit",
|
||||
"flow:precommit"
|
||||
],
|
||||
"build": {
|
||||
"appId": "com.zcashfoundation",
|
||||
"productName": "Zepio",
|
||||
"asar": true,
|
||||
"directories": {
|
||||
"buildResources": "build",
|
||||
"output": "dist"
|
||||
},
|
||||
"files": [
|
||||
"node_modules/",
|
||||
"services/",
|
||||
"config/",
|
||||
"utils/",
|
||||
"app/",
|
||||
"bin/",
|
||||
"public/",
|
||||
"build/"
|
||||
],
|
||||
"extraFiles": [
|
||||
{
|
||||
"from": "bin/",
|
||||
"to": "resources/bin",
|
||||
"filter": [
|
||||
"**/*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"linux": {
|
||||
"icon": "./build/icons/png",
|
||||
"target": [
|
||||
"deb"
|
||||
]
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.productivity",
|
||||
"type": "distribution",
|
||||
"target": [
|
||||
"dmg"
|
||||
],
|
||||
"icon": "./build/icons/mac/icon.icns"
|
||||
},
|
||||
"win": {
|
||||
"target": "nsis",
|
||||
"icon": "./build/icons/win/icon.ico"
|
||||
},
|
||||
"protocols": {
|
||||
"name": "zcash",
|
||||
"schemes": [
|
||||
"zcash"
|
||||
]
|
||||
}
|
||||
},
|
||||
"jest": {
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/__tests__/setup/jest.js"
|
||||
],
|
||||
"testPathIgnorePatterns": [
|
||||
"<rootDir>/__tests__/setup/"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__tests__/setup/assetTransformer.js"
|
||||
}
|
||||
},
|
||||
"resolutions": {
|
||||
"babel-core": "7.0.0-bridge.0"
|
||||
},
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.0.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.0.0",
|
||||
|
@ -135,76 +213,5 @@
|
|||
"styled-components": "^4.1.1",
|
||||
"styled-theming": "^2.2.0",
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"pre-commit": [
|
||||
"flow:generate-coverage-badge",
|
||||
"lint:precommit",
|
||||
"flow:precommit"
|
||||
],
|
||||
"build": {
|
||||
"appId": "com.zcashfoundation",
|
||||
"productName": "Zepio",
|
||||
"asar": true,
|
||||
"directories": {
|
||||
"buildResources": "build",
|
||||
"output": "dist"
|
||||
},
|
||||
"files": [
|
||||
"node_modules/",
|
||||
"services/",
|
||||
"config/",
|
||||
"utils/",
|
||||
"app/",
|
||||
"bin/",
|
||||
"public/",
|
||||
"build/"
|
||||
],
|
||||
"extraFiles": [
|
||||
{
|
||||
"from": "bin/",
|
||||
"to": "resources/bin",
|
||||
"filter": [
|
||||
"**/*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"linux": {
|
||||
"icon": "./build/icons/png",
|
||||
"target": [
|
||||
"deb"
|
||||
]
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.productivity",
|
||||
"type": "distribution",
|
||||
"target": [
|
||||
"dmg"
|
||||
],
|
||||
"icon": "./build/icons/mac/icon.icns"
|
||||
},
|
||||
"win": {
|
||||
"target": "nsis",
|
||||
"icon": "./build/icons/win/icon.ico"
|
||||
},
|
||||
"protocols": {
|
||||
"name": "zcash",
|
||||
"schemes": [
|
||||
"zcash"
|
||||
]
|
||||
}
|
||||
},
|
||||
"jest": {
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/__tests__/setup/jest.js"
|
||||
],
|
||||
"testPathIgnorePatterns": [
|
||||
"<rootDir>/__tests__/setup/"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__tests__/setup/assetTransformer.js"
|
||||
}
|
||||
},
|
||||
"resolutions": {
|
||||
"babel-core": "7.0.0-bridge.0"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue