From e3acf47c6d2339772d6a53bc6c701425ae55575f Mon Sep 17 00:00:00 2001 From: pompurin404 Date: Mon, 26 Aug 2024 12:53:19 +0800 Subject: [PATCH] restart core when enable tun --- src/main/resolve/tray.ts | 3 ++- .../src/components/sider/tun-switcher.tsx | 21 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/resolve/tray.ts b/src/main/resolve/tray.ts index 072a6be..49b8467 100644 --- a/src/main/resolve/tray.ts +++ b/src/main/resolve/tray.ts @@ -17,6 +17,7 @@ import { mainWindow, showMainWindow } from '..' import { app, clipboard, ipcMain, Menu, nativeImage, shell, Tray } from 'electron' import { dataDir, logDir, mihomoCoreDir, mihomoWorkDir } from '../utils/dirs' import { triggerSysProxy } from '../sys/sysproxy' +import { restartCore } from '../core/manager' export let tray: Tray | null = null @@ -154,8 +155,8 @@ const buildContextMenu = async (): Promise => { } else { await patchControledMihomoConfig({ tun: { enable } }) } - await patchMihomoConfig({ tun: { enable } }) mainWindow?.webContents.send('controledMihomoConfigUpdated') + await restartCore() ipcMain.emit('updateTrayMenu') } }, diff --git a/src/renderer/src/components/sider/tun-switcher.tsx b/src/renderer/src/components/sider/tun-switcher.tsx index 852159b..2a14942 100644 --- a/src/renderer/src/components/sider/tun-switcher.tsx +++ b/src/renderer/src/components/sider/tun-switcher.tsx @@ -3,12 +3,7 @@ import { useControledMihomoConfig } from '@renderer/hooks/use-controled-mihomo-c import BorderSwitch from '@renderer/components/base/border-swtich' import { TbDeviceIpadHorizontalBolt } from 'react-icons/tb' import { useLocation, useNavigate } from 'react-router-dom' -import { - encryptString, - patchMihomoConfig, - isEncryptionAvailable, - restartCore -} from '@renderer/utils/ipc' +import { encryptString, isEncryptionAvailable, restartCore } from '@renderer/utils/ipc' import { useSortable } from '@dnd-kit/sortable' import { CSS } from '@dnd-kit/utilities' import { platform } from '@renderer/utils/init' @@ -55,7 +50,7 @@ const TunSwitcher: React.FC = () => { } else { await patchControledMihomoConfig({ tun: { enable } }) } - await patchMihomoConfig({ tun: { enable } }) + await restartCore() window.electron.ipcRenderer.send('updateTrayMenu') } @@ -73,10 +68,14 @@ const TunSwitcher: React.FC = () => { setOpenPasswordModal(false)} onConfirm={async (password: string) => { - const encrypted = await encryptString(password) - await patchAppConfig({ encryptedPassword: encrypted }) - await restartCore() - setOpenPasswordModal(false) + try { + const encrypted = await encryptString(password) + await patchAppConfig({ encryptedPassword: encrypted }) + await restartCore() + setOpenPasswordModal(false) + } catch (e) { + alert(e) + } }} /> )}