From b15920c441907ea9590c0af76c29ecf3894c734c Mon Sep 17 00:00:00 2001 From: Git Agent Date: Mon, 24 Aug 2026 16:58:25 +0200 Subject: [PATCH] =?UTF-8?q?fix(web):=20lecteur=20mode=20vertical=20?= =?UTF-8?q?=E2=80=94=20r=C3=A9initialiser=20la=20page=20=C3=A0=20l'ouvertu?= =?UTF-8?q?re=20d'un=20autre=20livre=20pour=20d=C3=A9marrer=20en=20haut=20?= =?UTF-8?q?du=20document=20(bug=20#38)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/pages/ReaderPage.tsx | 1 + apps/web/src/pages/ReaderPageVerticalRestore.test.ts | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 apps/web/src/pages/ReaderPageVerticalRestore.test.ts diff --git a/apps/web/src/pages/ReaderPage.tsx b/apps/web/src/pages/ReaderPage.tsx index 93e0b51..f4b46e3 100644 --- a/apps/web/src/pages/ReaderPage.tsx +++ b/apps/web/src/pages/ReaderPage.tsx @@ -89,6 +89,7 @@ export function ReaderPage({ bookId }: { bookId: number }) { useEffect(() => { setReaderControls(idleControls); + setPage(1); setZoom(READER_ZOOM_DEFAULT); setMode("horizontal"); }, [bookId]); diff --git a/apps/web/src/pages/ReaderPageVerticalRestore.test.ts b/apps/web/src/pages/ReaderPageVerticalRestore.test.ts new file mode 100644 index 0000000..39bb1ea --- /dev/null +++ b/apps/web/src/pages/ReaderPageVerticalRestore.test.ts @@ -0,0 +1,11 @@ +import { readFileSync } from "node:fs"; +import { describe, expect, it } from "vitest"; + +describe("ReaderPage vertical restore", () => { + it("resets the reader page when opening another book so an invalid progression starts at the top", () => { + const source = readFileSync(new URL("./ReaderPage.tsx", import.meta.url), "utf8"); + const bookResetEffect = source.slice(source.indexOf("useEffect(() => {\n setReaderControls"), source.indexOf(" useEffect(() => {\n if (book?.format", source.indexOf("useEffect(() => {\n setReaderControls"))); + + expect(bookResetEffect).toContain("setPage(1)"); + }); +});