// @ts-check // Modules to control application life and create native browser window import { join } from "path" import { app, BrowserWindow, Menu } from "electron" import "./ipc" function createWindow() { // Create the browser window. const mainWindow = new BrowserWindow({ width: 800, height: 650, // frame: false, // transparent: true, icon: join(__dirname, "../512x512.png"), webPreferences: { contextIsolation: true, preload: join(__dirname, "preload.js"), }, }) mainWindow.webContents.session.enableNetworkEmulation({ offline: true, }) Menu.setApplicationMenu(null) // and load the index.html of the app. if (process.env.NODE_ENV === "development") { mainWindow.loadURL("http://localhost:3000") mainWindow.webContents.openDevTools() } else { mainWindow.loadFile("./web/index.html") } if (process.env.DEBUG) { mainWindow.webContents.openDevTools() } } // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.whenReady().then(() => { createWindow() app.on("activate", () => { // On macOS it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (BrowserWindow.getAllWindows().length === 0) createWindow() }) }) // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits // explicitly with Cmd + Q. app.on("window-all-closed", () => { if (process.platform !== "darwin") app.quit() }) // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and require them here.