From ad9bb58cd400fc1d7bc9533cc8c0d464e4a8e598 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Wed, 18 Mar 2026 17:11:13 +0800 Subject: [PATCH] fix(ios): resolve stale closure crash preventing highlight popup on iOS (#3559) --- apps/readest-app/src/app/reader/hooks/useTextSelector.ts | 5 +++-- packages/foliate-js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/readest-app/src/app/reader/hooks/useTextSelector.ts b/apps/readest-app/src/app/reader/hooks/useTextSelector.ts index d26a2444..2c5e0443 100644 --- a/apps/readest-app/src/app/reader/hooks/useTextSelector.ts +++ b/apps/readest-app/src/app/reader/hooks/useTextSelector.ts @@ -18,7 +18,6 @@ export const useTextSelector = ( const { getView, getViewSettings, getProgress } = useReaderStore(); const view = getView(bookKey); const bookData = getBookData(bookKey); - const progress = getProgress(bookKey)!; const osPlatform = getOSPlatform(); const isPopuped = useRef(false); @@ -49,6 +48,7 @@ export const useTextSelector = ( sel.removeAllRanges(); sel.addRange(range); } + const progress = getProgress(bookKey); setSelection({ key: bookKey, text: await getAnnotationText(range), @@ -67,11 +67,12 @@ export const useTextSelector = ( setTimeout(async () => { if (!isTextSelected.current) return; sel.addRange(range); + const progress = getProgress(bookKey); setSelection({ key: bookKey, text: await getAnnotationText(range), cfi: view?.getCFI(index, range), - page: bookData?.isFixedLayout ? index + 1 : progress.page, + page: bookData?.isFixedLayout ? index + 1 : progress?.page || 0, range, index, }); diff --git a/packages/foliate-js b/packages/foliate-js index 1dd2d3d8..a1cec6f6 160000 --- a/packages/foliate-js +++ b/packages/foliate-js @@ -1 +1 @@ -Subproject commit 1dd2d3d87e7064c77babbbff9d4e3c2634a322ea +Subproject commit a1cec6f622321d2c56aa5c037cd1e25053b3d735