From 60046abec3d29a9d67a1812d8d7ff545d3f186e1 Mon Sep 17 00:00:00 2001
From: GyDi <zzzgydi@gmail.com>
Date: Sun, 28 May 2023 17:07:39 +0800
Subject: [PATCH] fix: close all connections when change mode

---
 src/pages/proxies.tsx | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/pages/proxies.tsx b/src/pages/proxies.tsx
index 901b4c1..7be721c 100644
--- a/src/pages/proxies.tsx
+++ b/src/pages/proxies.tsx
@@ -3,7 +3,11 @@ import { useEffect, useMemo } from "react";
 import { useLockFn } from "ahooks";
 import { useTranslation } from "react-i18next";
 import { Button, ButtonGroup, Paper } from "@mui/material";
-import { getClashConfig, updateConfigs } from "@/services/api";
+import {
+  closeAllConnections,
+  getClashConfig,
+  updateConfigs,
+} from "@/services/api";
 import { patchClashConfig } from "@/services/cmds";
 import { useVerge } from "@/hooks/use-verge";
 import { BasePage } from "@/components/base";
@@ -29,6 +33,10 @@ const ProxyPage = () => {
   const curMode = clashConfig?.mode.toLowerCase();
 
   const onChangeMode = useLockFn(async (mode: string) => {
+    // 断开连接
+    if (mode !== curMode && verge?.auto_close_connection) {
+      closeAllConnections();
+    }
     await updateConfigs({ mode });
     await patchClashConfig({ mode });
     mutateClash();
-- 
GitLab