From a2244e28b884e73e264107f913e6d89095ec0960 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 21 Apr 2026 16:58:26 +0800 Subject: [PATCH] fix(pdf): don't apply theme colors where canvas filter is unsupported, closes #3912 (#3915) --- apps/readest-app/src/app/reader/components/ViewMenu.tsx | 2 +- apps/readest-app/src/services/appService.ts | 1 + apps/readest-app/src/services/nativeAppService.ts | 2 ++ apps/readest-app/src/services/webAppService.ts | 2 ++ apps/readest-app/src/types/system.ts | 1 + apps/readest-app/src/utils/ua.ts | 6 ++++++ 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/readest-app/src/app/reader/components/ViewMenu.tsx b/apps/readest-app/src/app/reader/components/ViewMenu.tsx index 26b54a36..16bac779 100644 --- a/apps/readest-app/src/app/reader/components/ViewMenu.tsx +++ b/apps/readest-app/src/app/reader/components/ViewMenu.tsx @@ -335,7 +335,7 @@ const ViewMenu: React.FC = ({ bookKey, setIsDropdownOpen }) => { Icon={themeMode === 'dark' ? BiMoon : themeMode === 'light' ? BiSun : TbSunMoon} onClick={cycleThemeMode} /> - {bookData.book?.format === 'PDF' && ( + {bookData.book?.format === 'PDF' && appService?.supportsCanvasContext2DFilter && ( { const versionMatch = webViewInfo.match(/([0-9]+)\./); return versionMatch ? parseFloat(versionMatch[1]!) : 0; }; + +export const isSafariBrowser = (): boolean => { + if (typeof navigator === 'undefined') return false; + const ua = navigator.userAgent; + return /Safari/.test(ua) && !/Chrome|Chromium|CriOS|FxiOS|EdgiOS|Edg\//.test(ua); +};