1
0
mirror of https://github.com/upscayl/upscayl.git synced 2024-11-24 07:30:19 +01:00
upscayl/electron/main-window.ts

62 lines
1.6 KiB
TypeScript
Raw Normal View History

import { BrowserWindow, shell } from "electron";
2023-09-10 20:00:49 +02:00
import { getPlatform } from "./utils/get-device-specs";
2023-09-10 11:14:04 +02:00
import { join } from "path";
import { ELECTRON_COMMANDS } from "../common/electron-commands";
2023-10-25 13:44:22 +02:00
import { fetchLocalStorage } from "./utils/config-variables";
import electronIsDev from "electron-is-dev";
2023-09-13 15:14:46 +02:00
import { format } from "url";
2023-09-10 11:14:04 +02:00
2023-09-13 15:14:46 +02:00
let mainWindow: BrowserWindow | undefined;
2023-09-10 11:14:04 +02:00
2023-09-10 19:42:18 +02:00
const createMainWindow = () => {
2023-10-25 13:44:22 +02:00
console.log("📂 DIRNAME", __dirname);
2023-09-10 19:42:18 +02:00
mainWindow = new BrowserWindow({
icon: join(__dirname, "build", "icon.png"),
width: 1300,
height: 940,
minHeight: 500,
2024-04-17 18:18:45 +02:00
minWidth: 600,
2023-09-10 19:42:18 +02:00
show: false,
backgroundColor: "#171717",
webPreferences: {
nodeIntegration: true,
nodeIntegrationInWorker: true,
webSecurity: false,
preload: join(__dirname, "preload.js"),
},
titleBarStyle: getPlatform() === "mac" ? "hiddenInset" : "default",
});
2023-09-10 11:14:04 +02:00
const url = electronIsDev
? "http://localhost:8000"
2023-09-13 15:14:46 +02:00
: format({
2023-10-26 10:09:52 +02:00
pathname: join(__dirname, "../../renderer/out/index.html"),
2023-09-13 15:14:46 +02:00
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();
});
2023-09-18 20:30:43 +02:00
fetchLocalStorage();
mainWindow.webContents.send(ELECTRON_COMMANDS.OS, getPlatform());
2023-09-10 19:42:18 +02:00
mainWindow.setMenuBarVisibility(false);
};
const getMainWindow = () => {
return mainWindow;
};
2023-09-10 11:14:04 +02:00
2023-09-10 19:42:18 +02:00
export { createMainWindow, getMainWindow };