From 9e974e977eccd33c01907ad557c5d4fb14f6132b Mon Sep 17 00:00:00 2001 From: an-lee Date: Tue, 15 Oct 2024 10:24:33 +0800 Subject: [PATCH] setup system proxy on initilized --- enjoy/src/main/window.ts | 21 +++++++++++++------ enjoy/src/preload.ts | 3 +++ .../context/app-settings-provider.tsx | 2 ++ enjoy/src/types/enjoy-app.d.ts | 1 + 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/enjoy/src/main/window.ts b/enjoy/src/main/window.ts index fb6dcdd4..a421000f 100644 --- a/enjoy/src/main/window.ts +++ b/enjoy/src/main/window.ts @@ -104,10 +104,21 @@ main.init = async () => { throw new Error("Invalid proxy config"); } - if (config) { - if (!config.url) { - config.enabled = false; - } + if (config && !config.url) { + config.enabled = false; + } + + return settings.setSync("proxy", config); + }); + + ipcMain.handle("system-proxy-refresh", (_event) => { + let config = settings.getSync("proxy") as ProxyConfigType; + if (!config) { + config = { + enabled: false, + url: "", + }; + settings.setSync("proxy", config); } if (config.enabled && config.url) { @@ -124,8 +135,6 @@ main.init = async () => { }); mainWindow.webContents.session.closeAllConnections(); } - - return settings.setSync("proxy", config); }); // BrowserView diff --git a/enjoy/src/preload.ts b/enjoy/src/preload.ts index 649cd953..5bda6216 100644 --- a/enjoy/src/preload.ts +++ b/enjoy/src/preload.ts @@ -76,6 +76,9 @@ contextBridge.exposeInMainWorld("__ENJOY_APP__", { set: (config: ProxyConfigType) => { return ipcRenderer.invoke("system-proxy-set", config); }, + refresh: () => { + return ipcRenderer.invoke("system-proxy-refresh"); + }, }, }, providers: { diff --git a/enjoy/src/renderer/context/app-settings-provider.tsx b/enjoy/src/renderer/context/app-settings-provider.tsx index b9eb98bc..41c32e94 100644 --- a/enjoy/src/renderer/context/app-settings-provider.tsx +++ b/enjoy/src/renderer/context/app-settings-provider.tsx @@ -162,11 +162,13 @@ export const AppSettingsProvider = ({ const fetchProxyConfig = async () => { const config = await EnjoyApp.system.proxy.get(); setProxy(config); + EnjoyApp.system.proxy.refresh(); }; const setProxyConfigHandler = async (config: ProxyConfigType) => { EnjoyApp.system.proxy.set(config).then(() => { setProxy(config); + EnjoyApp.system.proxy.refresh(); }); }; diff --git a/enjoy/src/types/enjoy-app.d.ts b/enjoy/src/types/enjoy-app.d.ts index 0671f527..a20bf846 100644 --- a/enjoy/src/types/enjoy-app.d.ts +++ b/enjoy/src/types/enjoy-app.d.ts @@ -27,6 +27,7 @@ type EnjoyAppType = { proxy: { get: () => Promise; set: (config: ProxyConfigType) => Promise; + refresh: () => Promise; }; }; providers: {