Files
Jammy 52636c91ae
Some checks failed
CI / main (push) Has been cancelled
CI / release-e2e (push) Has been cancelled
Track bundled vendor runtime sources
2026-07-07 10:05:50 +08:00

71 lines
2.5 KiB
TypeScript

import { BrowserWindow } from "electron";
import { preloadDefault, rendererLoadPath } from "../lib/env-main";
import { Page } from "./index";
import { AppConfig } from "../../src/config";
import { icnsLogoPath, icoLogoPath, logoPath } from "../config/icon";
import { isPackaged } from "../lib/env";
import { WindowConfig } from "../config/window";
import * as remoteMain from "@electron/remote/main";
import { DevToolsManager } from "../lib/devtools";
export const PageSetup = {
NAME: "setup",
open: async (option: any) => {
let icon = logoPath;
if (process.platform === "win32") {
icon = icoLogoPath;
} else if (process.platform === "darwin") {
icon = icnsLogoPath;
}
const win = new BrowserWindow({
show: true,
title: AppConfig.title,
...(!isPackaged ? { icon } : {}),
frame: false,
transparent: false,
hasShadow: true,
center: true,
useContentSize: true,
minWidth: WindowConfig.guideWidth,
minHeight: WindowConfig.guideHeight,
width: WindowConfig.guideWidth,
height: WindowConfig.guideHeight,
skipTaskbar: true,
resizable: false,
maximizable: false,
backgroundColor: "#f1f5f9",
alwaysOnTop: false,
webPreferences: {
preload: preloadDefault,
// Warning: Enable nodeIntegration and disable contextIsolation is not secure in production
nodeIntegration: true,
webSecurity: false,
webviewTag: true,
// Consider using contextBridge.exposeInMainWorld
// Read more on https://www.electronjs.org/docs/latest/tutorial/context-isolation
contextIsolation: false,
// sandbox: false,
},
});
win.on("closed", () => {
Page.unregisterWindow(PageSetup.NAME);
});
rendererLoadPath(win, "page/setup.html");
remoteMain.enable(win.webContents);
win.webContents.on("did-finish-load", () => {
Page.ready("setup");
DevToolsManager.autoShow(win);
});
DevToolsManager.register("Setup", win);
// win.webContents.setWindowOpenHandler(({url}) => {
// if (url.startsWith('https:')) shell.openExternal(url)
// return {action: 'deny'}
// })
Page.registerWindow(PageSetup.NAME, win);
},
};