From 718ccff6456079dcf932dbfd74fcc350857b91bb Mon Sep 17 00:00:00 2001 From: qinghon Date: Fri, 3 Jul 2026 13:11:51 +0800 Subject: [PATCH] support replace history when view --- .../src/components/readers/imageBased/ImageBasedReader.tsx | 2 +- .../readers/imageBased/container/ReaderSettings.tsx | 2 +- .../imageBased/continuous/ContinuousScrollReader.tsx | 2 +- .../browser/src/scenes/book/reader/BookReaderScene.tsx | 7 ++++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/browser/src/components/readers/imageBased/ImageBasedReader.tsx b/packages/browser/src/components/readers/imageBased/ImageBasedReader.tsx index 59ea27854e..fd92a2ceab 100644 --- a/packages/browser/src/components/readers/imageBased/ImageBasedReader.tsx +++ b/packages/browser/src/components/readers/imageBased/ImageBasedReader.tsx @@ -112,7 +112,7 @@ export default function ImageBasedReader({ media, isIncognito, initialPage, onPr setCurrentPage(newPage) } else { setCurrentPage(newPage) - navigate(paths.bookReader(media.id, { isIncognito, page: newPage })) + navigate(paths.bookReader(media.id, { isIncognito, page: newPage }), { replace: true }) } if (!isIncognito) { diff --git a/packages/browser/src/components/readers/imageBased/container/ReaderSettings.tsx b/packages/browser/src/components/readers/imageBased/container/ReaderSettings.tsx index 02488b449b..0300084279 100644 --- a/packages/browser/src/components/readers/imageBased/container/ReaderSettings.tsx +++ b/packages/browser/src/components/readers/imageBased/container/ReaderSettings.tsx @@ -75,7 +75,7 @@ export default function ReaderSettings({ forBook, currentPage }: Props) { } else { search.delete('page') } - setSearch(search) + setSearch(search, { replace: true }) } setBookPreferences({ readingMode: value }) }, diff --git a/packages/browser/src/components/readers/imageBased/continuous/ContinuousScrollReader.tsx b/packages/browser/src/components/readers/imageBased/continuous/ContinuousScrollReader.tsx index 4b4d9247d5..f7d699fc21 100644 --- a/packages/browser/src/components/readers/imageBased/continuous/ContinuousScrollReader.tsx +++ b/packages/browser/src/components/readers/imageBased/continuous/ContinuousScrollReader.tsx @@ -89,7 +89,7 @@ export default function ContinuousScrollReader({ const hasPageURL = !!search.get('page') if (hasPageURL) { search.delete('page') - setSearch(search) + setSearch(search, { replace: true }) } }, [search, setSearch]) diff --git a/packages/browser/src/scenes/book/reader/BookReaderScene.tsx b/packages/browser/src/scenes/book/reader/BookReaderScene.tsx index 16abf93a3e..11cfff55fd 100644 --- a/packages/browser/src/scenes/book/reader/BookReaderScene.tsx +++ b/packages/browser/src/scenes/book/reader/BookReaderScene.tsx @@ -157,14 +157,15 @@ function BookReaderScene({ book }: Props) { paths.bookReader(book.id, { isEpub: true, }), + { replace: true }, ) } else if (book.extension.match(PDF_EXTENSION) && !isStreaming) { - navigate(paths.bookReader(book.id, { isPdf: true, isStreaming: false })) + navigate(paths.bookReader(book.id, { isPdf: true, isStreaming: false }), { replace: true }) } else if (book.extension.match(ARCHIVE_EXTENSION) || book.extension.match(PDF_EXTENSION)) { if (!initialPage && readingMode === ReadingMode.Paged && !animatedReader) { - navigate(paths.bookReader(book.id, { page: 1 })) + navigate(paths.bookReader(book.id, { page: 1 }), { replace: true }) } else if (!!initialPage && initialPage > book.pages) { - navigate(paths.bookReader(book.id, { page: book.pages })) + navigate(paths.bookReader(book.id, { page: book.pages }), { replace: true }) } } }, [book, initialPage, readingMode, navigate, isStreaming, animatedReader])