Files
geo/apps/desktop-client/src/main/review-window.ts
T
root 162abdc97c
Backend CI / Backend (push) Has been cancelled
Frontend CI / Frontend (push) Failing after 1m39s
chore(frontend): introduce prettier + eslint and prune unused code
- Add Prettier 3 with prettier-plugin-organize-imports (sorts/removes unused imports)
- Add ESLint 10 flat config with typescript-eslint + eslint-plugin-vue + eslint-config-prettier
- Add root scripts: format, format:check, lint, lint:fix
- Reformat 257 files across admin-web, ops-web, desktop-client, packages
- Remove unused locals/exports flagged by --noUnusedLocals/--noUnusedParameters
- Fix duplicate localTabLabel key, surrogate-pair regex u-flag, NBSP literal in regex
- Skip server/ (Go) and apps/browser-extension/ (deprecated per ADR)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 20:39:09 +08:00

55 lines
1.4 KiB
TypeScript

import type { Session } from 'electron/main'
import { BrowserWindow, nativeTheme } from 'electron/main'
import { attachWindowDiagnostics, loadWindowURLSafely } from './external-window'
interface ReviewWindowRecord {
taskId: string
window: BrowserWindow
}
const reviewWindows = new Map<string, ReviewWindowRecord>()
export async function openReviewWindow(options: {
taskId: string
title: string
url: string
session: Session
}): Promise<void> {
const existing = reviewWindows.get(options.taskId)
if (existing && !existing.window.isDestroyed()) {
existing.window.show()
existing.window.focus()
if (existing.window.webContents.getURL() !== options.url) {
await loadWindowURLSafely(existing.window, options.url, options.title)
}
return
}
const window = new BrowserWindow({
width: 1440,
height: 960,
minWidth: 1120,
minHeight: 760,
title: options.title,
autoHideMenuBar: true,
backgroundColor: nativeTheme.shouldUseDarkColors ? '#15191a' : '#f4f1ea',
webPreferences: {
session: options.session,
sandbox: true,
contextIsolation: true,
nodeIntegration: false,
},
})
attachWindowDiagnostics(window, options.title)
reviewWindows.set(options.taskId, { taskId: options.taskId, window })
window.on('closed', () => {
reviewWindows.delete(options.taskId)
})
await loadWindowURLSafely(window, options.url, options.title)
window.show()
window.focus()
}