mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-09 17:52:30 +08:00
* feat: add proxy settings to Settings dialog (Desktop only) Fixes #535 - Desktop app now respects HTTP/HTTPS proxy configuration. - Add proxy-manager.ts to handle proxy config storage (JSON file in userData) - Load proxy settings on app startup before Next.js server starts - Add IPC handlers for get-proxy and set-proxy - Add proxy settings UI in Settings dialog (Electron only) - Add translations for en/zh/ja * fix: improve proxy settings reliability and simplify UI - Fix server restart race condition (wait for process exit before starting new server) - Add URL validation (must include http:// or https:// prefix) - Enable Node.js built-in proxy support (NODE_USE_ENV_PROXY=1) - Remove "Proxy Exceptions" field (unnecessary for this app) - Add debug logging for proxy env vars * refactor: remove duplicate ProxyConfig interface, import from electron.d.ts
30 lines
943 B
TypeScript
30 lines
943 B
TypeScript
import { contextBridge, ipcRenderer } from "electron"
|
|
|
|
/**
|
|
* Expose safe APIs to the renderer process
|
|
*/
|
|
contextBridge.exposeInMainWorld("electronAPI", {
|
|
// Platform information
|
|
platform: process.platform,
|
|
|
|
// Check if running in Electron
|
|
isElectron: true,
|
|
|
|
// Application version
|
|
getVersion: () => ipcRenderer.invoke("get-version"),
|
|
|
|
// Window controls (optional, for custom title bar)
|
|
minimize: () => ipcRenderer.send("window-minimize"),
|
|
maximize: () => ipcRenderer.send("window-maximize"),
|
|
close: () => ipcRenderer.send("window-close"),
|
|
|
|
// File operations
|
|
openFile: () => ipcRenderer.invoke("dialog-open-file"),
|
|
saveFile: (data: string) => ipcRenderer.invoke("dialog-save-file", data),
|
|
|
|
// Proxy settings
|
|
getProxy: () => ipcRenderer.invoke("get-proxy"),
|
|
setProxy: (config: { httpProxy?: string; httpsProxy?: string }) =>
|
|
ipcRenderer.invoke("set-proxy", config),
|
|
})
|