diff --git a/apps/web/src/reader/CbzReader.tsx b/apps/web/src/reader/CbzReader.tsx index b20a999..2c86cd8 100644 --- a/apps/web/src/reader/CbzReader.tsx +++ b/apps/web/src/reader/CbzReader.tsx @@ -216,7 +216,6 @@ export function CbzReader({ alt={item.name} loading="lazy" style={verticalImageStyle(item.page)} - hidden={!imageSizes[item.page]} onLoad={(event) => { setImageSizes((current) => ({ ...current, diff --git a/apps/web/src/reader/readerRuntime.test.ts b/apps/web/src/reader/readerRuntime.test.ts index 7e85138..dddefe8 100644 --- a/apps/web/src/reader/readerRuntime.test.ts +++ b/apps/web/src/reader/readerRuntime.test.ts @@ -1,3 +1,4 @@ +import { readFileSync } from "node:fs"; import { describe, expect, it } from "vitest"; import { epubFileName } from "./EpubReader"; import { pdfDocumentOptions } from "./pdfDocumentOptions"; @@ -204,6 +205,13 @@ describe("reader runtime helpers", () => { ).toBe(2); }); + it("keeps CBZ vertical page images loadable before their dimensions are known", () => { + const source = readFileSync(new URL("./CbzReader.tsx", import.meta.url), "utf8"); + const verticalBranch = source.slice(source.indexOf('mode === "vertical" ?'), source.indexOf(") : (", source.indexOf('mode === "vertical" ?'))); + + expect(verticalBranch).not.toContain('hidden={!imageSizes[item.page]}'); + }); + it("detects fullscreen support and active fullscreen element", () => { const fullscreenElement = { requestFullscreen: () => Promise.resolve() } as unknown as HTMLElement; const regularElement = {} as HTMLElement;