mirror of
https://github.com/status-im/MyCrypto.git
synced 2025-01-30 04:44:56 +00:00
87 lines
2.1 KiB
TypeScript
87 lines
2.1 KiB
TypeScript
|
import { app, BrowserWindow, Menu } from 'electron';
|
||
|
import * as path from 'path';
|
||
|
import updater from './updater';
|
||
|
import MENU from './menu';
|
||
|
|
||
|
const isDevelopment = process.env.NODE_ENV !== 'production';
|
||
|
|
||
|
// Global reference to mainWindow
|
||
|
// Necessary to prevent window from being garbage collected
|
||
|
let mainWindow;
|
||
|
|
||
|
function createMainWindow() {
|
||
|
// Construct new BrowserWindow
|
||
|
const window = new BrowserWindow({
|
||
|
title: 'MyEtherWallet',
|
||
|
backgroundColor: '#fbfbfb',
|
||
|
width: 1220,
|
||
|
height: 800,
|
||
|
minWidth: 320,
|
||
|
minHeight: 400,
|
||
|
// TODO - Implement styles for custom title bar in components/ui/TitleBar.scss
|
||
|
// frame: false,
|
||
|
// titleBarStyle: 'hidden',
|
||
|
webPreferences: {
|
||
|
devTools: true,
|
||
|
nodeIntegration: false,
|
||
|
preload: path.resolve(__dirname, 'preload.js')
|
||
|
}
|
||
|
});
|
||
|
|
||
|
const url = isDevelopment
|
||
|
? `http://localhost:${process.env.HTTPS ? 3443 : 3000}`
|
||
|
: `file://${__dirname}/index.html`;
|
||
|
window.loadURL(url);
|
||
|
|
||
|
window.on('closed', () => {
|
||
|
mainWindow = null;
|
||
|
});
|
||
|
|
||
|
window.webContents.on('devtools-opened', () => {
|
||
|
window.focus();
|
||
|
setImmediate(() => {
|
||
|
window.focus();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
if (isDevelopment) {
|
||
|
window.webContents.on('did-fail-load', () => {
|
||
|
setTimeout(() => {
|
||
|
if (window && window.webContents) {
|
||
|
window.webContents.reload();
|
||
|
}
|
||
|
}, 500);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
Menu.setApplicationMenu(Menu.buildFromTemplate(MENU));
|
||
|
|
||
|
return window;
|
||
|
}
|
||
|
|
||
|
// Quit application when all windows are closed
|
||
|
app.on('window-all-closed', () => {
|
||
|
// On macOS it is common for applications to stay open
|
||
|
// until the user explicitly quits
|
||
|
if (process.platform !== 'darwin') {
|
||
|
app.quit();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
app.on('activate', () => {
|
||
|
// On macOS it is common to re-create a window
|
||
|
// even after all windows have been closed
|
||
|
if (mainWindow === null) {
|
||
|
mainWindow = createMainWindow();
|
||
|
updater(app, mainWindow);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Create main BrowserWindow when electron is ready
|
||
|
app.on('ready', () => {
|
||
|
mainWindow = createMainWindow();
|
||
|
mainWindow.webContents.on('did-finish-load', () => {
|
||
|
updater(app, mainWindow);
|
||
|
});
|
||
|
});
|