Quellcode durchsuchen

feat: handle break change update

MystiPanda vor 11 Monaten
Ursprung
Commit
d8b878b1bb

+ 12 - 0
src/components/setting/mods/update-viewer.tsx

@@ -44,11 +44,23 @@ export const UpdateViewer = forwardRef<DialogRef>((props, ref) => {
     return updateInfo?.manifest?.body;
   }, [updateInfo]);
 
+  const breakChangeFlag = useMemo(() => {
+    if (!updateInfo?.manifest?.body) {
+      return false;
+    }
+    return updateInfo?.manifest?.body.toLowerCase().includes("break change");
+  }, [updateInfo]);
+
   const onUpdate = useLockFn(async () => {
     if (portableFlag) {
       Notice.error(t("Portable Updater Error"));
       return;
     }
+    if (!updateInfo?.manifest?.body) return;
+    if (breakChangeFlag) {
+      Notice.error(t("Break Change Update Error"));
+      return;
+    }
     if (updateState) return;
     setUpdateState(true);
     if (eventListener !== null) {

+ 1 - 0
src/locales/en.json

@@ -230,6 +230,7 @@
   "Check for Updates": "Check for Updates",
   "Go to Release Page": "Go to Release Page",
   "Portable Updater Error": "The portable version does not support in-app updates. Please manually download and replace it",
+  "Break Change Update Error": "This version is a major update and does not support in-app updates. Please uninstall it and manually download and install the new version",
   "Open Dev Tools": "Open Dev Tools",
   "Exit": "Exit",
   "Verge Version": "Verge Version",

+ 1 - 0
src/locales/fa.json

@@ -230,6 +230,7 @@
   "Check for Updates": "بررسی برای به‌روزرسانی‌ها",
   "Go to Release Page": "رفتن به صفحه انتشار",
   "Portable Updater Error": "نسخه پرتابل از به‌روزرسانی درون برنامه‌ای پشتیبانی نمی‌کند. لطفاً به صورت دستی دانلود و جایگزین کنید",
+  "Break Change Update Error": "این نسخه یک به‌روزرسانی اساسی است و پشتیبانی از به‌روزرسانی درون برنامه را پشتیبانی نمی‌کند. لطفاً پس از حذف، دستی دانلود و نصب کنید.",
   "Open Dev Tools": "باز کردن ابزارهای توسعه‌دهنده",
   "Exit": "خروج",
   "Verge Version": "نسخه Verge",

+ 1 - 0
src/locales/ru.json

@@ -230,6 +230,7 @@
   "Check for Updates": "Проверить обновления",
   "Go to Release Page": "Перейти на страницу релизов",
   "Portable Updater Error": "Портативная версия не поддерживает обновление внутри приложения, пожалуйста, скачайте и замените вручную",
+  "Break Change Update Error": "Это крупное обновление, которое не поддерживает обновление внутри приложения. Пожалуйста, удалите его и загрузите установочный файл вручную.",
   "Open Dev Tools": "Открыть инструменты разработчика",
   "Exit": "Выход",
   "Verge Version": "Версия Verge",

+ 1 - 0
src/locales/zh.json

@@ -230,6 +230,7 @@
   "Check for Updates": "检查更新",
   "Go to Release Page": "前往发布页",
   "Portable Updater Error": "便携版不支持应用内更新,请手动下载替换",
+  "Break Change Update Error": "此版本为重大更新,不支持应用内更新,请卸载后手动下载安装",
   "Open Dev Tools": "打开开发者工具",
   "Exit": "退出",
   "Verge Version": "Verge 版本",