import { app, BrowserWindow, ipcMain, shell } from 'electron' import path from 'path' import os from 'os' // needed in case process is undefined under Linux const platform = process.platform || os.platform() let mainWindow function createWindow () { /** * Initial window options */ mainWindow = new BrowserWindow({ icon: path.resolve(__dirname, 'icons/icon.png'), // tray icon width: 1000, minWidth: 1000, minHeight: 600, height: 600, autoHideMenuBar: true, useContentSize: true, webPreferences: { contextIsolation: true, // More info: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/electron-preload-script preload: path.resolve(__dirname, process.env.QUASAR_ELECTRON_PRELOAD) } }) mainWindow.loadURL(process.env.APP_URL) mainWindow.webContents.setWindowOpenHandler(({ url }) => { shell.openExternal(url) return { action: 'deny' } }) 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() }) } ipcMain.handle('get-opened-file', async () => { let file = null // open file on wiwindows using process.argv if (platform === 'win32' && process.argv.length >= 2) { process.argv.forEach((val, index) => { if (val.endsWith('.newsletter')) { // read file contents to string const fs = require('fs') const data = fs.readFileSync(val, 'utf8') file = data } }) } return file }) mainWindow.on('closed', () => { mainWindow = null }) } app.whenReady().then(createWindow) app.on('window-all-closed', () => { if (platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (mainWindow === null) { createWindow() } })