69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import { app, BrowserWindow } from 'electron'
|
|
import path from 'path'
|
|
import os from 'os'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
// needed in case process is undefined under Linux
|
|
const platform = process.platform || os.platform()
|
|
|
|
const currentDir = fileURLToPath(new URL('.', import.meta.url))
|
|
|
|
let mainWindow: BrowserWindow | undefined
|
|
|
|
async function createWindow() {
|
|
/**
|
|
* Initial window options
|
|
*/
|
|
mainWindow = new BrowserWindow({
|
|
icon: path.resolve(currentDir, 'icons/icon.png'), // tray icon
|
|
width: 1000,
|
|
height: 600,
|
|
useContentSize: true,
|
|
webPreferences: {
|
|
contextIsolation: true,
|
|
// More info: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/electron-preload-script
|
|
preload: path.resolve(
|
|
currentDir,
|
|
path.join(
|
|
process.env.QUASAR_ELECTRON_PRELOAD_FOLDER,
|
|
'electron-preload' + process.env.QUASAR_ELECTRON_PRELOAD_EXTENSION,
|
|
),
|
|
),
|
|
},
|
|
})
|
|
|
|
if (process.env.DEV) {
|
|
await mainWindow.loadURL(process.env.APP_URL)
|
|
} else {
|
|
await mainWindow.loadFile('index.html')
|
|
}
|
|
|
|
if (process.env.DEBUGGING) {
|
|
// if on DEV or Production with debug enabled
|
|
mainWindow.webContents.openDevTools()
|
|
} else {
|
|
// we're on production; no access to devtools pls
|
|
mainWindow.webContents.on('devtools-opened', () => {
|
|
mainWindow?.webContents.closeDevTools()
|
|
})
|
|
}
|
|
|
|
mainWindow.on('closed', () => {
|
|
mainWindow = undefined
|
|
})
|
|
}
|
|
|
|
void app.whenReady().then(createWindow)
|
|
|
|
app.on('window-all-closed', () => {
|
|
if (platform !== 'darwin') {
|
|
app.quit()
|
|
}
|
|
})
|
|
|
|
app.on('activate', () => {
|
|
if (mainWindow === undefined) {
|
|
void createWindow()
|
|
}
|
|
})
|