diff --git a/package.json b/package.json
index a6a361ad71..49caedb2f2 100644
--- a/package.json
+++ b/package.json
@@ -83,7 +83,6 @@
"jsxhint": "^0.15.1",
"load-grunt-tasks": "^3.2.0",
"minimist": "^1.1.1",
- "react-tools": "^0.13.1",
"run-sequence": "^1.0.2",
"shell-escape": "^0.2.0",
"source-map-support": "^0.3.2"
diff --git a/src/app.js b/src/app.js
index c706a18be4..293cf72481 100644
--- a/src/app.js
+++ b/src/app.js
@@ -1,24 +1,24 @@
require.main.paths.splice(0, 0, process.env.NODE_PATH);
-import remote from 'remote';
-var Menu = remote.require('menu');
+import electron from 'electron';
+const remote = electron.remote;
+const Menu = remote.Menu;
+// ipcRenderer is used as we're in the process
+const ipcRenderer = electron.ipcRenderer;
+
import React from 'react';
-import SetupStore from './stores/SetupStore';
-import ipc from 'ipc';
-import machine from './utils/DockerMachineUtil';
+
import metrics from './utils/MetricsUtil';
import template from './menutemplate';
import webUtil from './utils/WebUtil';
import hubUtil from './utils/HubUtil';
import setupUtil from './utils/SetupUtil';
-import request from 'request';
import docker from './utils/DockerUtil';
import hub from './utils/HubUtil';
import Router from 'react-router';
import routes from './routes';
import routerContainer from './router';
import repositoryActions from './actions/RepositoryActions';
-import util from './utils/Util';
-var app = remote.require('app');
+import machine from './utils/DockerMachineUtil';
hubUtil.init();
@@ -47,6 +47,8 @@ var router = Router.create({
router.run(Handler => React.render(, document.body));
routerContainer.set(router);
+
+
setupUtil.setup().then(() => {
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
docker.init();
@@ -63,7 +65,7 @@ setupUtil.setup().then(() => {
throw err;
});
-ipc.on('application:quitting', () => {
+ipcRenderer.on('application:quitting', () => {
if (localStorage.getItem('settings.closeVMOnQuit') === 'true') {
machine.stop();
}
diff --git a/src/browser.js b/src/browser.js
index 7104cda3c4..0ffca63efc 100644
--- a/src/browser.js
+++ b/src/browser.js
@@ -1,8 +1,10 @@
-import app from 'app';
-import BrowserWindow from 'browser-window';
+import electron from 'electron';
+const app = electron.app;
+const BrowserWindow = electron.BrowserWindow;
+
import fs from 'fs';
import os from 'os';
-var ipc = require('electron').ipcMain;
+
import path from 'path';
import child_process from 'child_process';
@@ -18,29 +20,6 @@ try {
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, 'settings.json'), 'utf8'));
} catch (err) {}
-let updateCmd = (args, cb) => {
- let updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
- let child = child_process.spawn(updateExe, args, {detached: true});
- child.on('close', cb);
-};
-
-if (process.platform === 'win32') {
- var squirrelCommand = process.argv[1];
- let target = path.basename(process.execPath);
- switch (squirrelCommand) {
- case '--squirrel-install':
- case '--squirrel-updated':
- updateCmd(['--createShortcut', target], app.quit);
- break;
- case '--squirrel-uninstall':
- updateCmd(['--removeShortcut', target], app.quit);
- break;
- case '--squirrel-obsolete':
- app.quit();
- break;
- }
-}
-
app.on('ready', function () {
var mainWindow = new BrowserWindow({
width: size.width || 1080,
@@ -66,25 +45,18 @@ app.on('ready', function () {
return false;
});
- var updating = false;
- ipc.on('application:quit-install', function () {
- updating = true;
- });
-
if (os.platform() === 'win32') {
mainWindow.on('close', function () {
mainWindow.webContents.send('application:quitting');
return true;
});
- app.on('window-all-closed', function() {
+ app.on('window-all-closed', function () {
app.quit();
});
} else if (os.platform() === 'darwin') {
app.on('before-quit', function () {
- if (!updating) {
- mainWindow.webContents.send('application:quitting');
- }
+ mainWindow.webContents.send('application:quitting');
});
}
diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js
index e56fa451be..cab35902df 100644
--- a/src/components/ContainerHomeFolders.react.js
+++ b/src/components/ContainerHomeFolders.react.js
@@ -6,8 +6,9 @@ import shell from 'shell';
import util from '../utils/Util';
import metrics from '../utils/MetricsUtil';
import containerActions from '../actions/ContainerActions';
-import remote from 'remote';
-var dialog = remote.require('dialog');
+import electron from 'electron';
+const remote = electron.remote;
+const dialog = remote.dialog;
import mkdirp from 'mkdirp';
var ContainerHomeFolder = React.createClass({
diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js
index 76c9d886a0..2791ca9d22 100644
--- a/src/components/ContainerListItem.react.js
+++ b/src/components/ContainerListItem.react.js
@@ -1,8 +1,9 @@
import $ from 'jquery';
import React from 'react/addons';
import Router from 'react-router';
-import remote from 'remote';
-var dialog = remote.require('dialog');
+import electron from 'electron';
+const remote = electron.remote;
+const dialog = remote.dialog;
import metrics from '../utils/MetricsUtil';
import {OverlayTrigger, Tooltip} from 'react-bootstrap';
import containerActions from '../actions/ContainerActions';
diff --git a/src/components/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js
index a9650d43ce..8e8066e2ce 100644
--- a/src/components/ContainerSettingsGeneral.react.js
+++ b/src/components/ContainerSettingsGeneral.react.js
@@ -1,8 +1,9 @@
import _ from 'underscore';
import React from 'react/addons';
import metrics from '../utils/MetricsUtil';
-import remote from 'remote';
-var dialog = remote.require('dialog');
+import electron from 'electron';
+const remote = electron.remote;
+const dialog = remote.dialog;
import ContainerUtil from '../utils/ContainerUtil';
import containerActions from '../actions/ContainerActions';
import util from '../utils/Util';
diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js
index c6e42c2d39..914fa57494 100644
--- a/src/components/ContainerSettingsVolumes.react.js
+++ b/src/components/ContainerSettingsVolumes.react.js
@@ -1,7 +1,8 @@
import _ from 'underscore';
import React from 'react/addons';
-import remote from 'remote';
-var dialog = remote.require('dialog');
+import electron from 'electron';
+const remote = electron.remote;
+const dialog = remote.dialog;
import shell from 'shell';
import util from '../utils/Util';
import metrics from '../utils/MetricsUtil';
diff --git a/src/components/Header.react.js b/src/components/Header.react.js
index d56ec9a7b8..4381554a15 100644
--- a/src/components/Header.react.js
+++ b/src/components/Header.react.js
@@ -1,11 +1,11 @@
import React from 'react/addons';
-import remote from 'remote';
import RetinaImage from 'react-retina-image';
-import ipc from 'ipc';
import util from '../utils/Util';
import metrics from '../utils/MetricsUtil';
-var Menu = remote.require('menu');
-var MenuItem = remote.require('menu-item');
+import electron from 'electron';
+const remote = electron.remote;
+const Menu = remote.Menu;
+const MenuItem = remote.MenuItem;
import accountStore from '../stores/AccountStore';
import accountActions from '../actions/AccountActions';
import Router from 'react-router';
@@ -25,12 +25,6 @@ var Header = React.createClass({
document.addEventListener('keyup', this.handleDocumentKeyUp, false);
accountStore.listen(this.update);
-
- ipc.on('application:update-available', () => {
- this.setState({
- updateAvailable: true
- });
- });
},
componentWillUnmount: function () {
document.removeEventListener('keyup', this.handleDocumentKeyUp, false);
@@ -79,10 +73,6 @@ var Header = React.createClass({
handleFullscreenHover: function () {
this.update();
},
- handleAutoUpdateClick: function () {
- metrics.track('Restarted to Update');
- ipc.send('application:quit-install');
- },
handleUserClick: function (e) {
let menu = new Menu();
@@ -166,7 +156,6 @@ var Header = React.createClass({
);
}
- let updateWidget = this.state.updateAvailable && !this.props.hideLogin ? UPDATE NOW : null;
return (
@@ -174,9 +163,6 @@ var Header = React.createClass({
{username}
-
- {updateWidget}
-
{util.isWindows () ? this.renderWindowButtons() : this.renderLogo()}
diff --git a/src/menutemplate.js b/src/menutemplate.js
index 043d89239f..c6d3b79bce 100644
--- a/src/menutemplate.js
+++ b/src/menutemplate.js
@@ -1,4 +1,5 @@
-import remote from 'remote';
+import electron from 'electron';
+const remote = electron.remote;
import shell from 'shell';
import router from './router';
import util from './utils/Util';
@@ -6,7 +7,7 @@ import metrics from './utils/MetricsUtil';
import machine from './utils/DockerMachineUtil';
import docker from './utils/DockerUtil';
-var app = remote.require('app');
+const app = remote.app;
// main.js
var MenuTemplate = function () {
diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js
index b6d8787654..02faddafb8 100644
--- a/src/utils/SetupUtil.js
+++ b/src/utils/SetupUtil.js
@@ -121,7 +121,6 @@ export default {
await machine.create();
} else {
let state = await machine.status();
- console.log(state);
if (state !== 'Running') {
if (state === 'Saved') {
router.get().transitionTo('setup');
diff --git a/src/utils/Util.js b/src/utils/Util.js
index e3418c7c3a..c8e376021d 100644
--- a/src/utils/Util.js
+++ b/src/utils/Util.js
@@ -3,9 +3,10 @@ import Promise from 'bluebird';
import fs from 'fs';
import path from 'path';
import crypto from 'crypto';
-import remote from 'remote';
-var dialog = remote.require('dialog');
-var app = remote.require('app');
+import electron from 'electron';
+const remote = electron.remote;
+const dialog = remote.dialog;
+const app = remote.app;
module.exports = {
execFile: function (args, options) {
diff --git a/src/utils/WebUtil.js b/src/utils/WebUtil.js
index 8bc2f735e9..2d774fe013 100644
--- a/src/utils/WebUtil.js
+++ b/src/utils/WebUtil.js
@@ -1,5 +1,6 @@
-import remote from 'remote';
-var app = remote.require('app');
+import electron from 'electron';
+const remote = electron.remote;
+const app = remote.app;
import fs from 'fs';
import util from './Util';
import path from 'path';