singularity-forge/studio/src/main/index.ts
2026-05-05 14:46:18 +02:00

55 lines
1.2 KiB
TypeScript

import { join } from "node:path";
import { app, BrowserWindow } from "electron";
const __dirname = import.meta.dirname;
let _mainWindow: BrowserWindow | null = null;
function createWindow(): BrowserWindow {
const preload = join(__dirname, "../preload/index.mjs");
const window = new BrowserWindow({
width: 1400,
height: 900,
minWidth: 1100,
minHeight: 720,
backgroundColor: "#0a0a0a",
titleBarStyle: process.platform === "darwin" ? "hiddenInset" : "default",
trafficLightPosition:
process.platform === "darwin" ? { x: 16, y: 16 } : undefined,
webPreferences: {
preload,
contextIsolation: true,
nodeIntegration: false,
},
});
const rendererUrl = process.env.ELECTRON_RENDERER_URL;
if (rendererUrl) {
void window.loadURL(rendererUrl);
} else {
void window.loadFile(join(__dirname, "../renderer/index.html"));
}
console.log("[studio] window created");
console.log("SF Studio ready");
return window;
}
app.whenReady().then(() => {
_mainWindow = createWindow();
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) {
_mainWindow = createWindow();
}
});
});
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
});