main: use functional methods

This commit is contained in:
leejooy96 committed 2022-07-21 09:27:57 +09:00
1 parent 99e95970bd
commit d1c3d4fc58
3 files changed
+28 -34

No files matched your search

+22 -17
View File
@@ -1,12 +1,24 @@
import { app, BrowserWindow } from 'electron' import { app, BrowserWindow } from 'electron'
import Constants from './utils/Constants' import Constants from './utils/Constants'
import Utils from './utils' import { join } from 'path'
import * as electronRemote from '@electron/remote/main'
export default class MainRunner { const getAppIcon = () => {
static async createMainWindow (mainWindow) { return join(__static, Constants.APP_ICON)
}
const exitApp = (mainWindow) => {
if (mainWindow && !mainWindow.isDestroyed()) {
mainWindow.hide()
}
mainWindow = null
app.exit()
}
export const createMainWindow = async (mainWindow) => {
mainWindow = new BrowserWindow({ mainWindow = new BrowserWindow({
title: Constants.APP_NAME, title: Constants.APP_NAME,
icon: Utils.getAppIcon(), icon: getAppIcon(),
show: false, show: false,
width: Constants.IS_DEV_ENV ? 1500 : 1200, width: Constants.IS_DEV_ENV ? 1500 : 1200,
height: 650, height: 650,
@@ -18,7 +30,7 @@ export default class MainRunner {
mainWindow.on('close', (event) => { mainWindow.on('close', (event) => {
event.preventDefault() event.preventDefault()
MainRunner.exitApp(mainWindow) exitApp(mainWindow)
}) })
mainWindow.on('show', () => { mainWindow.on('show', () => {
@@ -29,6 +41,8 @@ export default class MainRunner {
if (Constants.IS_DEV_ENV) { if (Constants.IS_DEV_ENV) {
mainWindow.webContents.openDevTools() mainWindow.webContents.openDevTools()
} }
electronRemote.initialize()
}) })
mainWindow.once('ready-to-show', () => { mainWindow.once('ready-to-show', () => {
@@ -40,16 +54,16 @@ export default class MainRunner {
await mainWindow.loadURL(`${Constants.APP_INDEX_URL}`) await mainWindow.loadURL(`${Constants.APP_INDEX_URL}`)
return mainWindow return mainWindow
} }
static createErrorWindow (errorWindow, mainWindow, details) { export const createErrorWindow = (errorWindow, mainWindow, details) => {
if (!Constants.IS_DEV_ENV) { if (!Constants.IS_DEV_ENV) {
mainWindow?.hide() mainWindow?.hide()
} }
errorWindow = new BrowserWindow({ errorWindow = new BrowserWindow({
title: Constants.APP_NAME, title: Constants.APP_NAME,
icon: Utils.getAppIcon(), icon: getAppIcon(),
show: false, show: false,
resizable: Constants.IS_DEV_ENV, resizable: Constants.IS_DEV_ENV,
webPreferences: Constants.DEFAULT_WEB_PREFERENCES webPreferences: Constants.DEFAULT_WEB_PREFERENCES
@@ -73,13 +87,4 @@ export default class MainRunner {
}) })
return errorWindow return errorWindow
}
static exitApp (mainWindow) {
if (mainWindow && !mainWindow.isDestroyed()) {
mainWindow.hide()
}
mainWindow = null
app.exit()
}
} }
+6 -9
View File
@@ -1,28 +1,25 @@
import 'v8-compile-cache' import 'v8-compile-cache'
import { app } from 'electron' import { app } from 'electron'
import path from 'path' import { join, dirname } from 'path'
import MainRunner from './MainRunner'
import { fileURLToPath } from 'url' import { fileURLToPath } from 'url'
import Constants from './utils/Constants' import Constants from './utils/Constants'
import * as electronRemote from '@electron/remote/main' import { createErrorWindow, createMainWindow } from './MainRunner'
let mainWindow let mainWindow
let errorWindow let errorWindow
app.on('ready', () => { app.on('ready', () => {
electronRemote.initialize()
if (!Constants.IS_DEV_ENV) { if (!Constants.IS_DEV_ENV) {
global.__static = path.join(path.dirname(fileURLToPath(import.meta.url)), '/static') global.__static = join(dirname(fileURLToPath(import.meta.url)), '/static')
.replace(/\\/g, '\\\\') .replace(/\\/g, '\\\\')
} }
mainWindow = MainRunner.createMainWindow(mainWindow) mainWindow = createMainWindow(mainWindow)
}) })
app.on('activate', () => { app.on('activate', () => {
if (!mainWindow) { if (!mainWindow) {
mainWindow = MainRunner.createMainWindow(mainWindow) mainWindow = createMainWindow(mainWindow)
} }
}) })
@@ -36,5 +33,5 @@ app.on('window-all-closed', () => {
}) })
app.on('render-process-gone', (ev, webContents, details) => { app.on('render-process-gone', (ev, webContents, details) => {
errorWindow = MainRunner.createErrorWindow(errorWindow, mainWindow, details) errorWindow = createErrorWindow(errorWindow, mainWindow, details)
}) })
-8
View File
@@ -1,8 +0,0 @@
import path from 'path'
import Constants from './Constants'
export default class Utils {
static getAppIcon () {
return path.join(__static, Constants.APP_ICON)
}
}