Migrate app to TypeScript (#1637)

* Initial setup and migrated src/common

* WIP

* WIP

* WIP

* Main module basically finished

* Renderer process migrated

* Added CI step and some fixes

* Fixed remainder of issues and added proper ESLint config

* Fixed a couple issues

* Progress!

* Some more fixes

* Fixed a test

* Fix build step

* PR feedback
This commit is contained in:
Devin Binnie
2021-06-28 09:51:23 -04:00
committed by GitHub
parent 422673a740
commit 1b3d0eac8f
115 changed files with 16246 additions and 9921 deletions

View File

@@ -0,0 +1,42 @@
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {BrowserWindow} from 'electron';
import log from 'electron-log';
import {CombinedConfig} from 'types/config';
import ContextMenu from '../contextMenu';
import {getLocalPreload, getLocalURLString} from '../utils';
export function createSettingsWindow(mainWindow: BrowserWindow, config: CombinedConfig, withDevTools: boolean) {
const preload = getLocalPreload('mainWindow.js');
const spellcheck = (typeof config.useSpellChecker === 'undefined' ? true : config.useSpellChecker);
const settingsWindow = new BrowserWindow({
parent: mainWindow,
title: 'Desktop App Settings',
fullscreen: false,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
preload,
spellcheck,
enableRemoteModule: process.env.NODE_ENV === 'test',
}});
const contextMenu = new ContextMenu({}, settingsWindow);
contextMenu.reload();
const localURL = getLocalURLString('settings.html');
settingsWindow.setMenuBarVisibility(false);
settingsWindow.loadURL(localURL).catch(
(reason) => {
log.error(`Settings window failed to load: ${reason}`);
log.info(process.env);
});
settingsWindow.show();
if (withDevTools) {
settingsWindow.webContents.openDevTools({mode: 'detach'});
}
return settingsWindow;
}