From b959bf070ca860e2000c77fedf4cb55f8d68730b Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 1 Jul 2025 15:15:25 +0800 Subject: [PATCH] feat: add upgrade to premium option in settings menu (#1505) --- apps/readest-app/public/locales/ar/translation.json | 3 ++- apps/readest-app/public/locales/de/translation.json | 3 ++- apps/readest-app/public/locales/el/translation.json | 3 ++- apps/readest-app/public/locales/es/translation.json | 3 ++- apps/readest-app/public/locales/fr/translation.json | 3 ++- apps/readest-app/public/locales/hi/translation.json | 3 ++- apps/readest-app/public/locales/id/translation.json | 3 ++- apps/readest-app/public/locales/it/translation.json | 3 ++- apps/readest-app/public/locales/ja/translation.json | 3 ++- apps/readest-app/public/locales/ko/translation.json | 3 ++- apps/readest-app/public/locales/nl/translation.json | 3 ++- apps/readest-app/public/locales/pl/translation.json | 3 ++- apps/readest-app/public/locales/pt/translation.json | 3 ++- apps/readest-app/public/locales/ru/translation.json | 3 ++- apps/readest-app/public/locales/tr/translation.json | 3 ++- apps/readest-app/public/locales/uk/translation.json | 3 ++- apps/readest-app/public/locales/vi/translation.json | 3 ++- .../readest-app/public/locales/zh-CN/translation.json | 3 ++- .../readest-app/public/locales/zh-TW/translation.json | 3 ++- .../src/app/library/components/SettingsMenu.tsx | 11 +++++++++-- 20 files changed, 47 insertions(+), 21 deletions(-) diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 40b6fec5..038a7ede 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -417,5 +417,6 @@ "Cloud Sync Storage": "مساحة المزامنة السحابية", "Parallel Read": "القراءة المتزامنة", "Disable": "تعطيل", - "Enable": "تمكين" + "Enable": "تمكين", + "Upgrade to Readest Premium": "ترقية إلى Readest Premium" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index bc2eef71..e0879813 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -401,5 +401,6 @@ "Cloud Sync Storage": "Cloud-Speicher", "Parallel Read": "Paralleles Lesen", "Disable": "Deaktivieren", - "Enable": "Aktivieren" + "Enable": "Aktivieren", + "Upgrade to Readest Premium": "Upgrade auf Readest Premium" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 4db71714..b955407b 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -401,5 +401,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% του χώρου συγχρονισμού στο cloud χρησιμοποιήθηκε.", "Cloud Sync Storage": "Χώρος συγχρονισμού cloud", "Disable": "Απενεργοποίηση", - "Enable": "Ενεργοποίηση" + "Enable": "Ενεργοποίηση", + "Upgrade to Readest Premium": "Αναβάθμιση στο Readest Premium" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index ef3e1a6d..29f03cfe 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -405,5 +405,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% del espacio de sincronización en la nube utilizado.", "Cloud Sync Storage": "Almacenamiento en la nube", "Disable": "Desactivar", - "Enable": "Activar" + "Enable": "Activar", + "Upgrade to Readest Premium": "Actualizar a Readest Premium" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 1f78053e..6ad4596a 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -405,5 +405,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% de l’espace de synchronisation cloud utilisé.", "Cloud Sync Storage": "Stockage de synchronisation cloud", "Disable": "Désactiver", - "Enable": "Activer" + "Enable": "Activer", + "Upgrade to Readest Premium": "Passer à Readest Premium" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 8c0536cd..fa27f10f 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -401,5 +401,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% क्लाउड सिंक स्पेस का उपयोग किया गया है।", "Cloud Sync Storage": "क्लाउड सिंक स्टोरेज", "Disable": "अक्षम करें", - "Enable": "सक्षम करें" + "Enable": "सक्षम करें", + "Upgrade to Readest Premium": "Readest प्रीमियम में अपग्रेड करें" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index a76d7c6d..9b4e50dd 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -397,5 +397,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% ruang sinkronisasi cloud terpakai", "Cloud Sync Storage": "Ruang cloud", "Disable": "Nonaktifkan", - "Enable": "Aktifkan" + "Enable": "Aktifkan", + "Upgrade to Readest Premium": "Tingkatkan ke Readest Premium" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index c8dd1b70..e766f2b1 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -405,5 +405,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% dello spazio cloud usato", "Cloud Sync Storage": "Spazio cloud", "Disable": "Disabilita", - "Enable": "Abilita" + "Enable": "Abilita", + "Upgrade to Readest Premium": "Aggiorna a Readest Premium" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index b610a33b..dda9aac5 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -397,5 +397,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "クラウド同期スペースの使用量は{{percentage}}%です。", "Cloud Sync Storage": "クラウド同期容量", "Disable": "無効にする", - "Enable": "有効にする" + "Enable": "有効にする", + "Upgrade to Readest Premium": "Readest Premiumにアップグレード" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index 8955bc3b..b79d8b53 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -397,5 +397,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}%의 클라우드 동기화 공간 사용됨.", "Cloud Sync Storage": "클라우드 저장 공간", "Disable": "비활성화", - "Enable": "활성화" + "Enable": "활성화", + "Upgrade to Readest Premium": "Readest Premium으로 업그레이드" } diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json index 26f33142..ad77248e 100644 --- a/apps/readest-app/public/locales/nl/translation.json +++ b/apps/readest-app/public/locales/nl/translation.json @@ -401,5 +401,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% van de cloud-synchronisatie ruimte gebruikt.", "Cloud Sync Storage": "Cloud Sync Opslag", "Disable": "Uitschakelen", - "Enable": "Inschakelen" + "Enable": "Inschakelen", + "Upgrade to Readest Premium": "Upgrade naar Readest Premium" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index 9e843410..d65e9c88 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -409,5 +409,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "Użyto {{percentage}}% przestrzeni synchronizacji w chmurze.", "Cloud Sync Storage": "Miejsce w chmurze", "Disable": "Wyłącz", - "Enable": "Włącz" + "Enable": "Włącz", + "Upgrade to Readest Premium": "Uaktualnij do Readest Premium" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index f3ba8484..44531a7a 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -405,5 +405,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "{{percentage}}% do espaço de sincronização na nuvem utilizado.", "Cloud Sync Storage": "Armazenamento na Nuvem", "Disable": "Desativar", - "Enable": "Ativar" + "Enable": "Ativar", + "Upgrade to Readest Premium": "Atualizar para Readest Premium" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index f03a6a18..7e81a794 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -409,5 +409,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "Использовано {{percentage}}% облачного пространства для синхронизации.", "Cloud Sync Storage": "Облачное хранилище", "Disable": "Отключить", - "Enable": "Включить" + "Enable": "Включить", + "Upgrade to Readest Premium": "Обновить до Readest Premium" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index f71551e7..9f02e9c5 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -401,5 +401,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "Bulut Senkronizasyon Alanının %{{percentage}}'si Kullanıldı.", "Cloud Sync Storage": "Bulut Senkronizasyon Depolama", "Disable": "Devre Dışı Bırak", - "Enable": "Etkinleştir" + "Enable": "Etkinleştir", + "Upgrade to Readest Premium": "Readest Premium’a Yükselt" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 2c9055f4..ee7fbe85 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -409,5 +409,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "Використано {{percentage}}% хмарного сховища.", "Cloud Sync Storage": "Облачне хранилище", "Disable": "Вимкнути", - "Enable": "Увімкнути" + "Enable": "Увімкнути", + "Upgrade to Readest Premium": "Оновити до Readest Premium" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index d0d71cc3..1b606f20 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -397,5 +397,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "Đã sử dụng {{percentage}}% không gian đồng bộ đám mây.", "Cloud Sync Storage": "Lưu trữ đồng bộ đám mây", "Disable": "Tắt", - "Enable": "Bật" + "Enable": "Bật", + "Upgrade to Readest Premium": "Đăng ký Readest Premium" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index a85c4b3e..1763afe5 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -397,5 +397,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "已使用 {{percentage}}% 的云同步空间。", "Cloud Sync Storage": "云同步空间", "Disable": "禁用", - "Enable": "启用" + "Enable": "启用", + "Upgrade to Readest Premium": "升级到 Readest Premium" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 0753a3c1..4c37fe61 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -397,5 +397,6 @@ "{{percentage}}% of Cloud Sync Space Used.": "已使用 {{percentage}}% 的雲同步空間。", "Cloud Sync Storage": "雲同步空間", "Disable": "禁用", - "Enable": "啟用" + "Enable": "啟用", + "Upgrade to Readest Premium": "升級到 Readest Premium" } diff --git a/apps/readest-app/src/app/library/components/SettingsMenu.tsx b/apps/readest-app/src/app/library/components/SettingsMenu.tsx index 559ea2d7..9141ca82 100644 --- a/apps/readest-app/src/app/library/components/SettingsMenu.tsx +++ b/apps/readest-app/src/app/library/components/SettingsMenu.tsx @@ -33,6 +33,7 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { const router = useRouter(); const { envConfig, appService } = useEnv(); const { user } = useAuth(); + const { userPlan, quotas } = useQuotaStats(); const { themeMode, setThemeMode } = useThemeStore(); const { settings, setSettings, saveSettings } = useSettingsStore(); const [isAutoUpload, setIsAutoUpload] = useState(settings.autoUpload); @@ -47,8 +48,6 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { const [isTelemetryEnabled, setIsTelemetryEnabled] = useState(settings.telemetryEnabled); const iconSize = useResponsiveSize(16); - const { quotas } = useQuotaStats(); - const showAboutReadest = () => { setAboutDialogVisible(true); setIsDropdownOpen?.(false); @@ -152,6 +151,11 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { setIsTelemetryEnabled(settings.telemetryEnabled); }; + const handleUpgrade = () => { + navigateToProfile(router); + setIsDropdownOpen?.(false); + }; + const avatarUrl = user?.user_metadata?.['picture'] || user?.user_metadata?.['avatar_url']; const userFullName = user?.user_metadata?.['full_name']; const userDisplayName = userFullName ? userFullName.split(' ')[0] : null; @@ -248,6 +252,9 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { onClick={cycleThemeMode} />
+ {user && userPlan === 'free' && !appService?.isIOSApp && ( + + )} {isWebAppPlatform() && }