From b98d9c293218b6e25b95388ee3fe6c8092d6a2d2 Mon Sep 17 00:00:00 2001 From: MystiPanda Date: Sat, 22 Jun 2024 21:03:49 +0800 Subject: [PATCH] feat: handle break change update --- src/components/setting/mods/update-viewer.tsx | 12 ++++++++++++ src/locales/en.json | 1 + src/locales/fa.json | 1 + src/locales/ru.json | 1 + src/locales/zh.json | 1 + 5 files changed, 16 insertions(+) diff --git a/src/components/setting/mods/update-viewer.tsx b/src/components/setting/mods/update-viewer.tsx index 8b52d1fb..bea9a01f 100644 --- a/src/components/setting/mods/update-viewer.tsx +++ b/src/components/setting/mods/update-viewer.tsx @@ -44,11 +44,23 @@ export const UpdateViewer = forwardRef((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) { diff --git a/src/locales/en.json b/src/locales/en.json index 1813c3b6..adc3e48c 100644 --- a/src/locales/en.json +++ b/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", diff --git a/src/locales/fa.json b/src/locales/fa.json index 8eba701d..a2e48602 100644 --- a/src/locales/fa.json +++ b/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", diff --git a/src/locales/ru.json b/src/locales/ru.json index 982661e6..b61bbeda 100644 --- a/src/locales/ru.json +++ b/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", diff --git a/src/locales/zh.json b/src/locales/zh.json index 8e37aa0d..e8ebbd39 100644 --- a/src/locales/zh.json +++ b/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 版本",