diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index db042c8c..d90a1920 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Buch hochladen", "Auto Upload Books to Cloud": "Bücher automatisch in die Cloud hochladen", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% des Cloud-Speichers verwendet.", - "Storage": "Speicher" + "Storage": "Speicher", + "Book deleted: {{title}}": "Buch gelöscht: {{title}}", + "Failed to delete book: {{title}}": "Fehler beim Löschen des Buches: {{title}}", + "Check Updates on Start": "Aktualisierungen beim Start prüfen" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 22b4bf4b..50525193 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Ανέβασμα βιβλίου", "Auto Upload Books to Cloud": "Αυτόματο ανέβασμα βιβλίων στο cloud", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% της αποθήκευσης στο cloud χρησιμοποιήθηκε.", - "Storage": "Αποθήκευση" + "Storage": "Αποθήκευση", + "Book deleted: {{title}}": "Το βιβλίο με τίτλο {{title}} διαγράφηκε", + "Failed to delete book: {{title}}": "Αποτυχία διαγραφής βιβλίου: {{title}}", + "Check Updates on Start": "Έλεγχος ενημερώσεων κατά την εκκίνηση" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index de63bf04..431d87ef 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Subir libro", "Auto Upload Books to Cloud": "Subir libros automáticamente a la nube", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% del almacenamiento en la nube utilizado.", - "Storage": "Almacenamiento" + "Storage": "Almacenamiento", + "Book deleted: {{title}}": "Libro eliminado: {{title}}", + "Failed to delete book: {{title}}": "Error al eliminar libro: {{title}}", + "Check Updates on Start": "Comprobar actualizaciones al iniciar" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 6f4befc4..555ffa5e 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Télécharger un livre", "Auto Upload Books to Cloud": "Télécharger automatiquement les livres dans le cloud", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% de l'espace de stockage dans le cloud utilisé.", - "Storage": "Stockage" + "Storage": "Stockage", + "Book deleted: {{title}}": "Livre supprimé : {{title}}", + "Failed to delete book: {{title}}": "Échec de la suppression du livre : {{title}}", + "Check Updates on Start": "Vérifier les mises à jour au démarrage" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 1a83da99..1efe08a9 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -146,5 +146,8 @@ "Upload Book": "पुस्तक अपलोड करें", "Auto Upload Books to Cloud": "पुस्तकें बादल में स्वचालित रूप से अपलोड करें", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% क्लाउड स्टोरेज का उपयोग किया गया है।", - "Storage": "स्टोरेज" + "Storage": "स्टोरेज", + "Book deleted: {{title}}": "पुस्तक हटाई गई: {{title}}", + "Failed to delete book: {{title}}": "पुस्तक हटाने में विफल: {{title}}", + "Check Updates on Start": "शुरू में अपडेट जांचें" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index f1ee528d..216d8d88 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Unggah Buku", "Auto Upload Books to Cloud": "Unggah Buku Otomatis ke Cloud", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% dari Penyimpanan Cloud Digunakan.", - "Storage": "Penyimpanan" + "Storage": "Penyimpanan", + "Book deleted: {{title}}": "Buku dihapus: {{title}}", + "Failed to delete book: {{title}}": "Gagal menghapus buku: {{title}}", + "Check Updates on Start": "Periksa Pembaruan saat Memulai" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index e8b4d1d5..e6e1dc66 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Carica libro", "Auto Upload Books to Cloud": "Carica libri automaticamente su cloud", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% dello spazio di archiviazione cloud utilizzato.", - "Storage": "Archiviazione" + "Storage": "Archiviazione", + "Book deleted: {{title}}": "Libro eliminato: {{title}}", + "Failed to delete book: {{title}}": "Eliminazione libro non riuscita: {{title}}", + "Check Updates on Start": "Controlla aggiornamenti all'avvio" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index f1d0d941..e48fd4ab 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -146,5 +146,8 @@ "Upload Book": "書籍をアップロード", "Auto Upload Books to Cloud": "書籍を自動的にクラウドにアップロード", "{{percentage}}% of Cloud Storage Used.": "クラウドストレージの{{percentage}}%が使用されています。", - "Storage": "ストレージ" + "Storage": "ストレージ", + "Book deleted: {{title}}": "書籍が削除されました:{{title}}", + "Failed to delete book: {{title}}": "書籍の削除に失敗しました:{{title}}", + "Check Updates on Start": "開始時に更新を確認" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index 154951e4..345adc83 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -146,5 +146,8 @@ "Upload Book": "책 업로드", "Auto Upload Books to Cloud": "책 자동으로 클라우드에 업로드", "{{percentage}}% of Cloud Storage Used.": "클라우드 저장소 사용량 {{percentage}}%.", - "Storage": "저장소" + "Storage": "저장소", + "Book deleted: {{title}}": "책 삭제됨: {{title}}", + "Failed to delete book: {{title}}": "책 삭제 실패: {{title}}", + "Check Updates on Start": "시작 시 업데이트 확인" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index 7f55a6e1..8623e707 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Prześlij książkę", "Auto Upload Books to Cloud": "Automatycznie przesyłaj książki do chmury", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% przestrzeni dyskowej w chmurze użytej.", - "Storage": "Przechowywanie" + "Storage": "Przechowywanie", + "Book deleted: {{title}}": "Książka usunięta: {{title}}", + "Failed to delete book: {{title}}": "Nie udało się usunąć książki: {{title}}", + "Check Updates on Start": "Sprawdź aktualizacje przy starcie" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index fac1d7be..a5bdc5a7 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Enviar Livro", "Auto Upload Books to Cloud": "Enviar Livros para a Nuvem Automaticamente", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% do Armazenamento na Nuvem Usado.", - "Storage": "Armazenamento" + "Storage": "Armazenamento", + "Book deleted: {{title}}": "Livro excluído: {{title}}", + "Failed to delete book: {{title}}": "Falha ao excluir livro: {{title}}", + "Check Updates on Start": "Verificar Atualizações ao Iniciar" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index d6a3a56a..b7df49f5 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Загрузить книгу", "Auto Upload Books to Cloud": "Автоматическая загрузка книг в облако", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% использовано облачного хранилища.", - "Storage": "Хранилище" + "Storage": "Хранилище", + "Book deleted: {{title}}": "Книга удалена: {{title}}", + "Failed to delete book: {{title}}": "Не удалось удалить книгу: {{title}}", + "Check Updates on Start": "Проверять обновления при запуске" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 30c9f1e2..8c532df5 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Kitap Yükle", "Auto Upload Books to Cloud": "Kitapları Otomatik Olarak Buluta Yükle", "{{percentage}}% of Cloud Storage Used.": "Bulut Depolamanın %{{percentage}}'si kullanıldı.", - "Storage": "Depolama" + "Storage": "Depolama", + "Book deleted: {{title}}": "Kitap silindi: {{title}}", + "Failed to delete book: {{title}}": "Kitap silinemedi: {{title}}", + "Check Updates on Start": "Başlangıçta Güncellemeleri Kontrol Et" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index f1884cbf..0b48a9cd 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Завантажити книгу", "Auto Upload Books to Cloud": "Автоматично завантажувати книги в хмару", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% використано хмарного сховища.", - "Storage": "Сховище" + "Storage": "Сховище", + "Book deleted: {{title}}": "Книгу видалено: {{title}}", + "Failed to delete book: {{title}}": "Не вдалося видалити книгу: {{title}}", + "Check Updates on Start": "Перевіряти оновлення при запуску" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index d43ad166..c0db0c3b 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -146,5 +146,8 @@ "Upload Book": "Tải lên sách", "Auto Upload Books to Cloud": "Tự động tải sách lên đám mây", "{{percentage}}% of Cloud Storage Used.": "{{percentage}}% dung lượng lưu trữ đám mây đã sử dụng.", - "Storage": "Lưu trữ" + "Storage": "Lưu trữ", + "Book deleted: {{title}}": "Sách đã xóa: {{title}}", + "Failed to delete book: {{title}}": "Không thể xóa sách: {{title}}", + "Check Updates on Start": "Kiểm tra cập nhật khi khởi động" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index f9b6e2f0..e12d7759 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -146,5 +146,8 @@ "Upload Book": "上传书籍", "Auto Upload Books to Cloud": "自动上传书籍到云端", "{{percentage}}% of Cloud Storage Used.": "已使用 {{percentage}}% 云存储空间", - "Storage": "存储空间" + "Storage": "存储空间", + "Book deleted: {{title}}": "书籍已删除:{{title}}", + "Failed to delete book: {{title}}": "删除书籍失败:{{title}}", + "Check Updates on Start": "启动时检查更新" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 93b9073a..18faa180 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -146,5 +146,8 @@ "Upload Book": "上傳書籍", "Auto Upload Books to Cloud": "自動上傳書籍到雲端", "{{percentage}}% of Cloud Storage Used.": "已使用 {{percentage}}% 雲存儲空間", - "Storage": "存儲空間" + "Storage": "存儲空間", + "Book deleted: {{title}}": "書籍已刪除:{{title}}", + "Failed to delete book: {{title}}": "書籍刪除失敗:{{title}}", + "Check Updates on Start": "啟動時檢查更新" } diff --git a/apps/readest-app/src/app/library/components/SettingsMenu.tsx b/apps/readest-app/src/app/library/components/SettingsMenu.tsx index 6b66bc73..f189018d 100644 --- a/apps/readest-app/src/app/library/components/SettingsMenu.tsx +++ b/apps/readest-app/src/app/library/components/SettingsMenu.tsx @@ -6,7 +6,7 @@ import { PiUserCircleCheck } from 'react-icons/pi'; import { MdCheck } from 'react-icons/md'; import { setAboutDialogVisible } from '@/components/AboutWindow'; -import { isWebAppPlatform } from '@/services/environment'; +import { hasUpdater, isWebAppPlatform } from '@/services/environment'; import { DOWNLOAD_READEST_URL } from '@/services/constants'; import { useAuth } from '@/context/AuthContext'; import { useEnv } from '@/context/EnvContext'; @@ -30,6 +30,7 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { const { settings, setSettings, saveSettings } = useSettingsStore(); const [quotas, setQuotas] = React.useState([]); const [isAutoUpload, setIsAutoUpload] = useState(settings.autoUpload); + const [isAutoCheckUpdates, setIsAutoCheckUpdates] = useState(settings.autoCheckUpdates); const showAboutReadest = () => { setAboutDialogVisible(true); @@ -69,6 +70,13 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { } }; + const toggleAutoCheckUpdates = () => { + settings.autoCheckUpdates = !settings.autoCheckUpdates; + setSettings(settings); + saveSettings(envConfig, settings); + setIsAutoCheckUpdates(settings.autoCheckUpdates); + }; + useEffect(() => { if (!user || !token) return; const storagPlan = getStoragePlanData(token); @@ -131,6 +139,13 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { icon={isAutoUpload ? : undefined} onClick={toggleAutoUploadBooks} /> + {hasUpdater() && ( + : undefined} + onClick={toggleAutoCheckUpdates} + /> + )}

diff --git a/apps/readest-app/src/app/library/page.tsx b/apps/readest-app/src/app/library/page.tsx index 631f6989..4f3b7258 100644 --- a/apps/readest-app/src/app/library/page.tsx +++ b/apps/readest-app/src/app/library/page.tsx @@ -63,14 +63,18 @@ const LibraryPage = () => { useEffect(() => { updateAppTheme('base-200'); - const doAppUpdates = async () => { - if (hasUpdater()) { + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect(() => { + const doCheckAppUpdates = async () => { + if (hasUpdater() && settings.autoCheckUpdates) { await checkForAppUpdates(_); } }; - doAppUpdates(); + doCheckAppUpdates(); // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + }, [settings]); const processOpenWithFiles = React.useCallback( async (appService: AppService, openWithFiles: string[], libraryBooks: Book[]) => { diff --git a/apps/readest-app/src/app/reader/page.tsx b/apps/readest-app/src/app/reader/page.tsx index 89e4fb79..78ad075d 100644 --- a/apps/readest-app/src/app/reader/page.tsx +++ b/apps/readest-app/src/app/reader/page.tsx @@ -5,20 +5,24 @@ import { useTheme } from '@/hooks/useTheme'; import { hasUpdater } from '@/services/environment'; import { checkForAppUpdates } from '@/helpers/updater'; import { useTranslation } from '@/hooks/useTranslation'; +import { useSettingsStore } from '@/store/settingsStore'; import Reader from './components/Reader'; export default function Page() { const _ = useTranslation(); + const { settings } = useSettingsStore(); + useTheme(); + useEffect(() => { - const doAppUpdates = async () => { - if (hasUpdater()) { + const doCheckAppUpdates = async () => { + if (hasUpdater() && settings.autoCheckUpdates) { await checkForAppUpdates(_); } }; - doAppUpdates(); + doCheckAppUpdates(); // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + }, [settings]); return ; } diff --git a/apps/readest-app/src/components/MenuItem.tsx b/apps/readest-app/src/components/MenuItem.tsx index 20658217..65cb82ae 100644 --- a/apps/readest-app/src/components/MenuItem.tsx +++ b/apps/readest-app/src/components/MenuItem.tsx @@ -35,7 +35,13 @@ const MenuItem: React.FC = ({ >
{!noIcon && {icon}} - + {label}
diff --git a/apps/readest-app/src/helpers/updater.ts b/apps/readest-app/src/helpers/updater.ts index b5dc63c7..81ff3513 100644 --- a/apps/readest-app/src/helpers/updater.ts +++ b/apps/readest-app/src/helpers/updater.ts @@ -12,8 +12,9 @@ export const checkForAppUpdates = async (_: TranslationFunc) => { if (lastCheck && now - parseInt(lastCheck, 10) < CHECK_UPDATE_INTERVAL_SEC * 1000) return; localStorage.setItem(LAST_CHECK_KEY, now.toString()); + console.log('Checking for updates'); const update = await check(); - console.log('update found', update); + console.log('Update found', update); if (update) { const yes = await ask( ` diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts index 8e62b5e0..ba97e572 100644 --- a/apps/readest-app/src/services/appService.ts +++ b/apps/readest-app/src/services/appService.ts @@ -28,6 +28,7 @@ import { DEFAULT_TTS_CONFIG, CLOUD_BOOKS_SUBDIR, DEFAULT_MOBILE_VIEW_SETTINGS, + DEFAULT_SYSTEM_SETTINGS, } from './constants'; import { isWebAppPlatform } from './environment'; import { getOSPlatform, isValidURL } from '@/utils/misc'; @@ -69,6 +70,7 @@ export abstract class BaseAppService implements AppService { settings.localBooksDir = await this.getInitBooksDir(); settings.version = SYSTEM_SETTINGS_VERSION; } + settings = { ...DEFAULT_SYSTEM_SETTINGS, ...settings }; settings.globalReadSettings = { ...DEFAULT_READSETTINGS, ...settings.globalReadSettings }; settings.globalViewSettings = { ...DEFAULT_BOOK_LAYOUT, @@ -81,13 +83,9 @@ export abstract class BaseAppService implements AppService { }; } catch { settings = { + ...DEFAULT_SYSTEM_SETTINGS, version: SYSTEM_SETTINGS_VERSION, localBooksDir: await this.getInitBooksDir(), - lastSyncedAtBooks: 0, - lastSyncedAtConfigs: 0, - lastSyncedAtNotes: 0, - keepLogin: false, - autoUpload: false, globalReadSettings: DEFAULT_READSETTINGS, globalViewSettings: { ...DEFAULT_BOOK_LAYOUT, @@ -97,7 +95,7 @@ export abstract class BaseAppService implements AppService { ...DEFAULT_VIEW_CONFIG, ...DEFAULT_TTS_CONFIG, }, - }; + } as SystemSettings; await this.fs.createDir('', 'Books', true); await this.fs.createDir('', base, true); diff --git a/apps/readest-app/src/services/constants.ts b/apps/readest-app/src/services/constants.ts index 312e9c6e..72005cf0 100644 --- a/apps/readest-app/src/services/constants.ts +++ b/apps/readest-app/src/services/constants.ts @@ -7,7 +7,7 @@ import { ViewConfig, ViewSettings, } from '@/types/book'; -import { ReadSettings } from '@/types/settings'; +import { ReadSettings, SystemSettings } from '@/types/settings'; import { UserStorageQuota } from '@/types/user'; export const LOCAL_BOOKS_SUBDIR = 'Readest/Books'; @@ -16,6 +16,16 @@ export const CLOUD_BOOKS_SUBDIR = 'Readest/Books'; export const SUPPORTED_FILE_EXTS = ['epub', 'mobi', 'azw', 'azw3', 'fb2', 'cbz', 'pdf']; export const FILE_ACCEPT_FORMATS = SUPPORTED_FILE_EXTS.map((ext) => `.${ext}`).join(', '); +export const DEFAULT_SYSTEM_SETTINGS: Partial = { + keepLogin: false, + autoUpload: false, + autoCheckUpdates: true, + + lastSyncedAtBooks: 0, + lastSyncedAtConfigs: 0, + lastSyncedAtNotes: 0, +}; + export const DEFAULT_READSETTINGS: ReadSettings = { sideBarWidth: '15%', isSideBarPinned: true, @@ -67,7 +77,6 @@ export const DEFAULT_BOOK_STYLE: BookStyle = { }; export const DEFAULT_MOBILE_VIEW_SETTINGS: Partial = { - defaultFontSize: 19, fullJustification: false, }; diff --git a/apps/readest-app/src/types/settings.ts b/apps/readest-app/src/types/settings.ts index 2ed3e3f0..41077f86 100644 --- a/apps/readest-app/src/types/settings.ts +++ b/apps/readest-app/src/types/settings.ts @@ -17,8 +17,10 @@ export interface ReadSettings { export interface SystemSettings { version: number; localBooksDir: string; + keepLogin: boolean; autoUpload: boolean; + autoCheckUpdates: boolean; lastSyncedAtBooks: number; lastSyncedAtConfigs: number; diff --git a/apps/readest-app/src/utils/style.ts b/apps/readest-app/src/utils/style.ts index 3f378d8b..4daa733e 100644 --- a/apps/readest-app/src/utils/style.ts +++ b/apps/readest-app/src/utils/style.ts @@ -8,6 +8,7 @@ import { ViewSettings } from '@/types/book'; import { Palette } from '@/styles/themes'; import fontfacesCSS from '!!raw-loader!../styles/fonts.css'; +import { getOSPlatform } from './misc'; const getFontStyles = ( serif: string, @@ -209,12 +210,15 @@ export const getStyles = (viewSettings: ViewSettings, themeCode: ThemeCode) => { themeCode.fg, themeCode.primary, ); + // scale the font size on-the-fly so that we can sync the same font size on different devices + const isMobile = ['ios', 'android'].includes(getOSPlatform()); + const fontScale = isMobile ? 1.25 : 1; const fontStyles = getFontStyles( viewSettings.serifFont!, viewSettings.sansSerifFont!, viewSettings.monospaceFont!, viewSettings.defaultFont!, - viewSettings.defaultFontSize!, + viewSettings.defaultFontSize! * fontScale, viewSettings.overrideFont!, ); const userStylesheet = viewSettings.userStylesheet!;