diff --git a/src/components/setting/mods/clash-core-viewer.tsx b/src/components/setting/mods/clash-core-viewer.tsx index 0ca1a858..eeb42f29 100644 --- a/src/components/setting/mods/clash-core-viewer.tsx +++ b/src/components/setting/mods/clash-core-viewer.tsx @@ -14,7 +14,7 @@ import { ListItemText, } from "@mui/material"; import { changeClashCore, restartSidecar } from "@/services/cmds"; -import { closeAllConnections } from "@/services/api"; +import { closeAllConnections, upgradeCore } from "@/services/api"; import { grantPermission } from "@/services/cmds"; import getSystem from "@/utils/get-system"; @@ -76,16 +76,36 @@ export const ClashCoreViewer = forwardRef((props, ref) => { } }); + const onUpgrade = useLockFn(async () => { + try { + await upgradeCore(); + Notice.success(`Successfully upgrade core`, 1000); + } catch (err: any) { + Notice.error(err?.response.data.message || err.toString()); + } + }); + return ( {t("Clash Core")} - - + + {clash_core !== "clash-meta" && ( + + )} + + } contentSx={{ diff --git a/src/components/setting/setting-clash.tsx b/src/components/setting/setting-clash.tsx index 92a18c81..405f7370 100644 --- a/src/components/setting/setting-clash.tsx +++ b/src/components/setting/setting-clash.tsx @@ -63,11 +63,7 @@ const SettingClash = ({ onError }: Props) => { await updateGeoData(); Notice.success("Start update geodata"); } catch (err: any) { - if (err.response.status === 400) { - Notice.success("Updating geodata..."); - } else { - Notice.error(err.message || err.toString()); - } + Notice.error(err?.response.data.message || err.toString()); } }); diff --git a/src/locales/en.json b/src/locales/en.json index 03734679..050bb0b4 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -112,6 +112,7 @@ "Runtime Config": "Runtime Config", "ReadOnly": "ReadOnly", "Restart": "Restart", + "Upgrade": "Upgrade", "Back": "Back", "Save": "Save", diff --git a/src/locales/ru.json b/src/locales/ru.json index 1e86e70d..03aa2093 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -99,6 +99,7 @@ "Runtime Config": "Используемый конфиг", "ReadOnly": "Только для чтения", "Restart": "Перезапуск", + "Upgrade": "Обновлять", "Back": "Назад", "Save": "Сохранить", diff --git a/src/locales/zh.json b/src/locales/zh.json index bd511742..b07fbd8f 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -112,6 +112,7 @@ "Runtime Config": "当前配置", "ReadOnly": "只读", "Restart": "重启内核", + "Upgrade": "升级内核", "Back": "返回", "Save": "保存", diff --git a/src/services/api.ts b/src/services/api.ts index 902994d1..12493460 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -61,6 +61,12 @@ export const updateGeoData = async () => { return instance.post("/configs/geo"); }; +/// Upgrade clash core +export const upgradeCore = async () => { + const instance = await getAxios(); + return instance.post("/upgrade"); +}; + /// Get current rules export const getRules = async () => { const instance = await getAxios();