From 0087ce2f19d2c1729b2f29cbab6e6a9456736d66 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 25 Nov 2025 16:19:24 +0800 Subject: [PATCH] feat: add option to clear custom fonts in Font Panel (#2541) --- .../public/locales/ar/translation.json | 3 ++- .../public/locales/bn/translation.json | 3 ++- .../public/locales/bo/translation.json | 3 ++- .../public/locales/de/translation.json | 3 ++- .../public/locales/el/translation.json | 3 ++- .../public/locales/es/translation.json | 3 ++- .../public/locales/fa/translation.json | 3 ++- .../public/locales/fr/translation.json | 3 ++- .../public/locales/hi/translation.json | 3 ++- .../public/locales/id/translation.json | 3 ++- .../public/locales/it/translation.json | 3 ++- .../public/locales/ja/translation.json | 3 ++- .../public/locales/ko/translation.json | 3 ++- .../public/locales/nl/translation.json | 3 ++- .../public/locales/pl/translation.json | 3 ++- .../public/locales/pt/translation.json | 3 ++- .../public/locales/ru/translation.json | 3 ++- .../public/locales/si/translation.json | 3 ++- .../public/locales/sv/translation.json | 3 ++- .../public/locales/ta/translation.json | 3 ++- .../public/locales/th/translation.json | 3 ++- .../public/locales/tr/translation.json | 3 ++- .../public/locales/uk/translation.json | 3 ++- .../public/locales/vi/translation.json | 3 ++- .../public/locales/zh-CN/translation.json | 3 ++- .../public/locales/zh-TW/translation.json | 3 ++- .../src/components/settings/DialogMenu.tsx | 19 ++++++++++++++++++- .../src/components/settings/FontPanel.tsx | 14 +------------- 28 files changed, 71 insertions(+), 40 deletions(-) diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 6f5739af..b8c8c372 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -689,5 +689,6 @@ "Convert Mode": "وضع التحويل", "Failed to auto-save book cover for lock screen: {{error}}": "فشل في الحفظ التلقائي لغلاف الكتاب لشاشة القفل: {{error}}", "Download from Cloud": "تحميل من السحابة", - "Upload to Cloud": "رفع إلى السحابة" + "Upload to Cloud": "رفع إلى السحابة", + "Clear Custom Fonts": "مسح الخطوط المخصصة" } diff --git a/apps/readest-app/public/locales/bn/translation.json b/apps/readest-app/public/locales/bn/translation.json index 22f7e407..2fe618c8 100644 --- a/apps/readest-app/public/locales/bn/translation.json +++ b/apps/readest-app/public/locales/bn/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "রূপান্তর মোড", "Failed to auto-save book cover for lock screen: {{error}}": "লক স্ক্রিনের জন্য বইয়ের মলাট স্বয়ংক্রিয়ভাবে সংরক্ষণ করতে ব্যর্থ: {{error}}", "Download from Cloud": "ক্লাউড থেকে ডাউনলোড করুন", - "Upload to Cloud": "ক্লাউডে আপলোড করুন" + "Upload to Cloud": "ক্লাউডে আপলোড করুন", + "Clear Custom Fonts": "কাস্টম ফন্টস মুছুন" } diff --git a/apps/readest-app/public/locales/bo/translation.json b/apps/readest-app/public/locales/bo/translation.json index 7fcb0725..45c4dd0f 100644 --- a/apps/readest-app/public/locales/bo/translation.json +++ b/apps/readest-app/public/locales/bo/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "བསྒྱུར་བའི་རྣམ་པ", "Failed to auto-save book cover for lock screen: {{error}}": "སྒྲོམ་སྒོར་དེབ་གནས་བཅས་པའི་སྤྱོད་བྱས་མ་ཐུབ།: {{error}}", "Download from Cloud": "སྤྲིན་ནས་ཕབ་སྟེ་འབེབས་", - "Upload to Cloud": "སྤྲིན་ལ་ཡར་སྤེལ་" + "Upload to Cloud": "སྤྲིན་ལ་ཡར་སྤེལ་", + "Clear Custom Fonts": "རང་བཞིན་ཡིག་གཟུགས་སུབ་པ།" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index 0eee9856..49518d83 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "Konvertierungsmodus", "Failed to auto-save book cover for lock screen: {{error}}": "Automatisches Speichern des Buchcovers für den Sperrbildschirm fehlgeschlagen: {{error}}", "Download from Cloud": "Aus der Cloud herunterladen", - "Upload to Cloud": "In die Cloud hochladen" + "Upload to Cloud": "In die Cloud hochladen", + "Clear Custom Fonts": "Benutzerdefinierte Schriftarten löschen" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 6abcac34..9a89db02 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "Λειτουργία μετατροπής", "Failed to auto-save book cover for lock screen: {{error}}": "Αποτυχία αυτόματης αποθήκευσης εξωφύλλου βιβλίου για την οθόνη κλειδώματος: {{error}}", "Download from Cloud": "Λήψη από το Cloud", - "Upload to Cloud": "Ανέβασμα στο Cloud" + "Upload to Cloud": "Ανέβασμα στο Cloud", + "Clear Custom Fonts": "Καθαρισμός προσαρμοσμένων γραμματοσειρών" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index cf8aa7e5..9965ceda 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -677,5 +677,6 @@ "Convert Mode": "Modo de conversión", "Failed to auto-save book cover for lock screen: {{error}}": "Error al guardar automáticamente la portada del libro para la pantalla de bloqueo: {{error}}", "Download from Cloud": "Descargar desde la nube", - "Upload to Cloud": "Subir a la nube" + "Upload to Cloud": "Subir a la nube", + "Clear Custom Fonts": "Limpiar fuentes personalizadas" } diff --git a/apps/readest-app/public/locales/fa/translation.json b/apps/readest-app/public/locales/fa/translation.json index 4529d6a2..32e055dc 100644 --- a/apps/readest-app/public/locales/fa/translation.json +++ b/apps/readest-app/public/locales/fa/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "حالت تبدیل", "Failed to auto-save book cover for lock screen: {{error}}": "ذخیره‌ی خودکار جلد کتاب برای صفحه‌ی قفل ناموفق بود: {{error}}", "Download from Cloud": "دانلود از فضای ابری", - "Upload to Cloud": "آپلود به فضای ابری" + "Upload to Cloud": "آپلود به فضای ابری", + "Clear Custom Fonts": "پاک‌کردن فونت‌های سفارشی" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 7b3f21fa..7ec813cb 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -677,5 +677,6 @@ "Convert Mode": "Mode de conversion", "Failed to auto-save book cover for lock screen: {{error}}": "Échec de l'enregistrement automatique de la couverture du livre pour l'écran de verrouillage : {{error}}", "Download from Cloud": "Télécharger depuis le Cloud", - "Upload to Cloud": "Téléverser vers le Cloud" + "Upload to Cloud": "Téléverser vers le Cloud", + "Clear Custom Fonts": "Effacer les Polices Personnalisées" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 6161551d..85e3684b 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "रूपांतरण मोड", "Failed to auto-save book cover for lock screen: {{error}}": "लॉक स्क्रीन के लिए पुस्तक कवर स्वचालित रूप से सहेजने में विफल: {{error}}", "Download from Cloud": "क्लाउड से डाउनलोड करें", - "Upload to Cloud": "क्लाउड पर अपलोड करें" + "Upload to Cloud": "क्लाउड पर अपलोड करें", + "Clear Custom Fonts": "कस्टम फ़ॉन्ट साफ़ करें" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index 79ae01f8..925397cc 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "Mode Konversi", "Failed to auto-save book cover for lock screen: {{error}}": "Gagal menyimpan otomatis sampul buku untuk layar kunci: {{error}}", "Download from Cloud": "Unduh dari Cloud", - "Upload to Cloud": "Unggah ke Cloud" + "Upload to Cloud": "Unggah ke Cloud", + "Clear Custom Fonts": "Bersihkan Font Kustom" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index 5ee1b2aa..c39041c4 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -677,5 +677,6 @@ "Convert Mode": "Modalità conversione", "Failed to auto-save book cover for lock screen: {{error}}": "Impossibile salvare automaticamente la copertina del libro per la schermata di blocco: {{error}}", "Download from Cloud": "Scarica dal Cloud", - "Upload to Cloud": "Carica sul Cloud" + "Upload to Cloud": "Carica sul Cloud", + "Clear Custom Fonts": "Pulisci Font Personalizzati" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index 52303c32..13cbf1a5 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "変換モード", "Failed to auto-save book cover for lock screen: {{error}}": "ロック画面の本のカバーの自動保存に失敗しました:{{error}}", "Download from Cloud": "クラウドからダウンロード", - "Upload to Cloud": "クラウドにアップロード" + "Upload to Cloud": "クラウドにアップロード", + "Clear Custom Fonts": "カスタムフォントをクリア" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index 21082822..e59a1f59 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "변환 모드", "Failed to auto-save book cover for lock screen: {{error}}": "잠금 화면용 책 표지 자동 저장 실패: {{error}}", "Download from Cloud": "클라우드에서 다운로드", - "Upload to Cloud": "클라우드에 업로드" + "Upload to Cloud": "클라우드에 업로드", + "Clear Custom Fonts": "사용자 정의 글꼴 지우기" } diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json index c3d59cf1..3b0b3a51 100644 --- a/apps/readest-app/public/locales/nl/translation.json +++ b/apps/readest-app/public/locales/nl/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "Conversiemodus", "Failed to auto-save book cover for lock screen: {{error}}": "Automatisch opslaan van boekomslag voor vergrendelscherm mislukt: {{error}}", "Download from Cloud": "Downloaden van Cloud", - "Upload to Cloud": "Uploaden naar Cloud" + "Upload to Cloud": "Uploaden naar Cloud", + "Clear Custom Fonts": "Aangepaste Lettertypen Wissen" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index a6ab25a5..905b738f 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -681,5 +681,6 @@ "Convert Mode": "Tryb konwersji", "Failed to auto-save book cover for lock screen: {{error}}": "Nie udało się automatycznie zapisać okładki książki dla ekranu blokady: {{error}}", "Download from Cloud": "Pobierz z chmury", - "Upload to Cloud": "Prześlij do chmury" + "Upload to Cloud": "Prześlij do chmury", + "Clear Custom Fonts": "Wyczyść niestandardowe czcionki" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 2398a8c0..256df5a3 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -677,5 +677,6 @@ "Convert Mode": "Modo de conversão", "Failed to auto-save book cover for lock screen: {{error}}": "Falha ao salvar automaticamente a capa do livro para a tela de bloqueio: {{error}}", "Download from Cloud": "Baixar da Nuvem", - "Upload to Cloud": "Enviar para a Nuvem" + "Upload to Cloud": "Enviar para a Nuvem", + "Clear Custom Fonts": "Limpar Fontes Personalizadas" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 97bae0c6..6dd52649 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -681,5 +681,6 @@ "Convert Mode": "Режим преобразования", "Failed to auto-save book cover for lock screen: {{error}}": "Не удалось автоматически сохранить обложку книги для экрана блокировки: {{error}}", "Download from Cloud": "Скачать из облака", - "Upload to Cloud": "Загрузить в облако" + "Upload to Cloud": "Загрузить в облако", + "Clear Custom Fonts": "Очистить пользовательские шрифты" } diff --git a/apps/readest-app/public/locales/si/translation.json b/apps/readest-app/public/locales/si/translation.json index 2243b5ed..a4057d9d 100644 --- a/apps/readest-app/public/locales/si/translation.json +++ b/apps/readest-app/public/locales/si/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "පරිවර්තන මෝඩියුලය", "Failed to auto-save book cover for lock screen: {{error}}": "අගුළු තිරය සඳහා පොත් ආවරණය ස්වයංක්‍රීයව සුරකිීමට අසමත් විය: {{error}}", "Download from Cloud": "කලාඬයෙන් බාගත කරන්න", - "Upload to Cloud": "කලාඬයට උඩුගත කරන්න" + "Upload to Cloud": "කලාඬයට උඩුගත කරන්න", + "Clear Custom Fonts": "අභිරුචි අකුරු පැහැදිලි කරන්න" } diff --git a/apps/readest-app/public/locales/sv/translation.json b/apps/readest-app/public/locales/sv/translation.json index c4cd865f..ca82698f 100644 --- a/apps/readest-app/public/locales/sv/translation.json +++ b/apps/readest-app/public/locales/sv/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "Konverteringsläge", "Failed to auto-save book cover for lock screen: {{error}}": "Kunde inte autospara bokomslag för låsskärm: {{error}}", "Download from Cloud": "Ladda ner från molnet", - "Upload to Cloud": "Ladda upp till molnet" + "Upload to Cloud": "Ladda upp till molnet", + "Clear Custom Fonts": "Rensa anpassade typsnitt" } diff --git a/apps/readest-app/public/locales/ta/translation.json b/apps/readest-app/public/locales/ta/translation.json index 4414094c..ada99cc5 100644 --- a/apps/readest-app/public/locales/ta/translation.json +++ b/apps/readest-app/public/locales/ta/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "மாற்ற முறை", "Failed to auto-save book cover for lock screen: {{error}}": "பூட்டு திரைக்கான புத்தகக் கோப்பை தானாகச் சேமிக்க முடியவில்லை: {{error}}", "Download from Cloud": "மேகத்திலிருந்து பதிவிறக்கு செய்யவும்", - "Upload to Cloud": "மேகத்திற்கு பதிவேற்றவும்" + "Upload to Cloud": "மேகத்திற்கு பதிவேற்றவும்", + "Clear Custom Fonts": "தனிப்பயன் எழுத்துருக்களை அழிக்கவும்" } diff --git a/apps/readest-app/public/locales/th/translation.json b/apps/readest-app/public/locales/th/translation.json index 3f0ed1ea..ac5d259f 100644 --- a/apps/readest-app/public/locales/th/translation.json +++ b/apps/readest-app/public/locales/th/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "โหมดแปลงค่า", "Failed to auto-save book cover for lock screen: {{error}}": "ไม่สามารถบันทึกปกหนังสือสำหรับหน้าจอล็อกโดยอัตโนมัติ: {{error}}", "Download from Cloud": "ดาวน์โหลดจากคลาวด์", - "Upload to Cloud": "อัปโหลดไปยังคลาวด์" + "Upload to Cloud": "อัปโหลดไปยังคลาวด์", + "Clear Custom Fonts": "ล้างฟอนต์กำหนดเอง" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 8738115f..d8edc4ea 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -673,5 +673,6 @@ "Convert Mode": "Dönüştürme Modu", "Failed to auto-save book cover for lock screen: {{error}}": "Kitap kapağı kilit ekranı için otomatik kaydedilemedi: {{error}}", "Download from Cloud": "Buluttan İndir", - "Upload to Cloud": "Buluta Yükle" + "Upload to Cloud": "Buluta Yükle", + "Clear Custom Fonts": "Özel Yazı Tiplerini Temizle" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 79a06e65..14c72e1a 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -681,5 +681,6 @@ "Convert Mode": "Режим конвертації", "Failed to auto-save book cover for lock screen: {{error}}": "Не вдалося автоматично зберегти обкладинку книги для екрана блокування: {{error}}", "Download from Cloud": "Завантажити з хмари", - "Upload to Cloud": "Завантажити в хмару" + "Upload to Cloud": "Завантажити в хмару", + "Clear Custom Fonts": "Очистити користувацькі шрифти" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index 3381ee4b..4991b56e 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "Chế độ chuyển đổi", "Failed to auto-save book cover for lock screen: {{error}}": "Không thể tự động lưu bìa sách cho màn hình khóa: {{error}}", "Download from Cloud": "Tải xuống từ đám mây", - "Upload to Cloud": "Tải lên đám mây" + "Upload to Cloud": "Tải lên đám mây", + "Clear Custom Fonts": "Xóa phông chữ tùy chỉnh" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index 16ee95df..fb1e1d50 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "转换模式", "Failed to auto-save book cover for lock screen: {{error}}": "自动保存锁屏书籍封面失败:{{error}}", "Download from Cloud": "从云端下载", - "Upload to Cloud": "上传到云端" + "Upload to Cloud": "上传到云端", + "Clear Custom Fonts": "清除自定义字体" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 9eb7022f..b579c92b 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -669,5 +669,6 @@ "Convert Mode": "轉換模式", "Failed to auto-save book cover for lock screen: {{error}}": "自動保存鎖定螢幕書籍封面失敗:{{error}}", "Download from Cloud": "從雲端下載", - "Upload to Cloud": "上傳到雲端" + "Upload to Cloud": "上傳到雲端", + "Clear Custom Fonts": "清除自訂字型" } diff --git a/apps/readest-app/src/components/settings/DialogMenu.tsx b/apps/readest-app/src/components/settings/DialogMenu.tsx index fae18a98..feb3111e 100644 --- a/apps/readest-app/src/components/settings/DialogMenu.tsx +++ b/apps/readest-app/src/components/settings/DialogMenu.tsx @@ -1,8 +1,10 @@ import clsx from 'clsx'; import React from 'react'; import { MdCheck } from 'react-icons/md'; +import { useEnv } from '@/context/EnvContext'; import { useSettingsStore } from '@/store/settingsStore'; import { useTranslation } from '@/hooks/useTranslation'; +import { useCustomFontStore } from '@/store/customFontStore'; import { useResponsiveSize } from '@/hooks/useResponsiveSize'; import { SettingsPanelType } from './SettingsDialog'; import MenuItem from '@/components/MenuItem'; @@ -21,8 +23,10 @@ const DialogMenu: React.FC = ({ resetLabel, }) => { const _ = useTranslation(); + const { envConfig, appService } = useEnv(); const iconSize = useResponsiveSize(16); const { setFontPanelView, isSettingsGlobal, setSettingsGlobal } = useSettingsStore(); + const { getAllFonts, removeFont, saveCustomFonts } = useCustomFontStore(); const handleToggleGlobal = () => { setSettingsGlobal(!isSettingsGlobal); @@ -39,6 +43,16 @@ const DialogMenu: React.FC = ({ setIsDropdownOpen?.(false); }; + const handleClearCustomFont = () => { + getAllFonts().forEach((font) => { + if (removeFont(font.id)) { + appService!.deleteFont(font); + } + }); + saveCustomFonts(envConfig); + setIsDropdownOpen?.(false); + }; + return (
= ({ /> {activePanel === 'Font' && ( - + <> + + + )}
); diff --git a/apps/readest-app/src/components/settings/FontPanel.tsx b/apps/readest-app/src/components/settings/FontPanel.tsx index c9443f6b..50e92b40 100644 --- a/apps/readest-app/src/components/settings/FontPanel.tsx +++ b/apps/readest-app/src/components/settings/FontPanel.tsx @@ -91,13 +91,7 @@ const FontPanel: React.FC = ({ bookKey, onRegisterReset const { envConfig, appService } = useEnv(); const { getView, getViewSettings } = useReaderStore(); const { settings, fontPanelView, setFontPanelView } = useSettingsStore(); - const { - fonts: allCustomFonts, - getAllFonts, - getFontFamilies, - removeFont, - saveCustomFonts, - } = useCustomFontStore(); + const { fonts: allCustomFonts, getFontFamilies } = useCustomFontStore(); const viewSettings = getViewSettings(bookKey) || settings.globalViewSettings; const view = getView(bookKey); const iconSize18 = useResponsiveSize(18); @@ -164,12 +158,6 @@ const FontPanel: React.FC = ({ bookKey, onRegisterReset monospaceFont: setMonospaceFont, fontWeight: setFontWeight, }); - getAllFonts().forEach((font) => { - if (removeFont(font.id)) { - appService!.deleteFont(font); - } - }); - saveCustomFonts(envConfig); }; const handleManageCustomFonts = () => {