import { BrowserWindow, shell } from "electron"; import { getPlatform } from "./utils/get-device-specs"; import { join } from "path"; import COMMAND from "../common/commands"; import { fetchLocalStorage } from "./utils/config-variables"; import electronIsDev from "electron-is-dev"; import { format } from "url"; let mainWindow: BrowserWindow | undefined; const createMainWindow = () => { console.log("📂 DIRNAME", __dirname); mainWindow = new BrowserWindow({ icon: join(__dirname, "build", "icon.png"), width: 1300, height: 940, minHeight: 500, minWidth: 500, show: false, backgroundColor: "#171717", webPreferences: { nodeIntegration: true, nodeIntegrationInWorker: true, webSecurity: false, preload: join(__dirname, "preload.js"), }, titleBarStyle: getPlatform() === "mac" ? "hiddenInset" : "default", }); const url = electronIsDev ? "http://localhost:8000" : format({ pathname: join(__dirname, "../../renderer/out/index.html"), protocol: "file:", slashes: true, }); mainWindow.loadURL(url); mainWindow.webContents.setWindowOpenHandler(({ url }) => { shell.openExternal(url); return { action: "deny" }; }); mainWindow.once("ready-to-show", () => { if (!mainWindow) return; mainWindow.show(); }); fetchLocalStorage(); mainWindow.webContents.send(COMMAND.OS, getPlatform()); mainWindow.setMenuBarVisibility(false); }; const getMainWindow = () => { return mainWindow; }; export { createMainWindow, getMainWindow };