import { join } from 'node:path' import { BrowserWindow, app, shell } from 'electron' // Test hook: isolate config/cache to a throwaway dir (must run before any getPath). if (process.env.COMMITEA_USERDATA) app.setPath('userData', process.env.COMMITEA_USERDATA) import { registerGiteaIpc } from './gitea.js' import { registerModelIpc } from './model.js' function createWindow(): void { const win = new BrowserWindow({ width: 1440, height: 900, minWidth: 1080, minHeight: 700, show: false, autoHideMenuBar: true, backgroundColor: '#F0F4F0', webPreferences: { preload: join(import.meta.dirname, '../preload/index.mjs'), sandbox: false, }, }) win.on('ready-to-show', () => win.show()) win.webContents.setWindowOpenHandler(({ url }) => { void shell.openExternal(url) return { action: 'deny' } }) if (process.env.ELECTRON_RENDERER_URL) { void win.loadURL(process.env.ELECTRON_RENDERER_URL) } else { void win.loadFile(join(import.meta.dirname, '../renderer/index.html')) } } void app.whenReady().then(() => { registerGiteaIpc() registerModelIpc() createWindow() app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) }) app.on('window-all-closed', () => { if (process.platform !== 'darwin') app.quit() })