UNPKG

matterfront

Version:

Mattermost frontend app powered by electron

81 lines (65 loc) 2.11 kB
var app = require('app'); var BrowserWindow = require('browser-window'); var settings = require('./settings.js'); require('crash-reporter').start(); settings.load(); // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. var mainWindow = null; app.on('window-all-closed', function() { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform != 'darwin') { app.quit(); } }); var getFirstTeam = function(){ var teams = settings.get('teams'); if (Array.isArray(teams) && teams.length > 0){ return teams[0].url; } else { return 'file://' + __dirname + '/nosrc.html'; } }; app.on('ready', function() { var quitting = false; mainWindow = new BrowserWindow(settings.get('window')); var team = getFirstTeam(); mainWindow.loadURL('file://' + __dirname + '/index.html' + '?src=' + encodeURIComponent(team)); app.on('activate', function(e, hasVisibleWindows) { if (hasVisibleWindows) { mainWindow.focus(); } else { if (mainWindow == null) { mainWindow = new BrowserWindow({width: 1024, height: 600}); } else { mainWindow.show(); } } }); app.on('before-quit', function(e) { quitting = true; }); mainWindow.on('close', function(e) { settings.set('window:fullscreen', mainWindow.isFullScreen()); if (!mainWindow.isFullScreen()) { var bounds = mainWindow.getBounds(); settings.set('window:x', bounds.x); settings.set('window:y', bounds.y); settings.set('window:width', bounds.width); settings.set('window:height', bounds.height); } settings.saveState(); if (process.platform != 'darwin') { return; } if (quitting) { return; } e.preventDefault(); mainWindow.hide(); }); mainWindow.webContents.on('will-navigate', function (e) { e.preventDefault(); }); mainWindow.on('closed', function() { mainWindow = null; }); require('./menu.js'); });