fix(web): plein écran lecteur — header overlay et masquage automatique après 2 s d'inactivité
This commit is contained in:
@ -15,7 +15,7 @@ import {
|
||||
zoomReaderSize
|
||||
} from "./readerLayout";
|
||||
import { classifyPdfCanvas, pdfCanvasHasVisibleContent, pdfCanvasVisible, pdfRenderScale } from "./pdfRender";
|
||||
import { isElementFullscreen, isReaderInteractiveTarget, readerArrowAction, shouldHandleReaderArrowKey, supportsElementFullscreen } from "./readerFullscreen";
|
||||
import { isElementFullscreen, isReaderHeaderActive, isReaderInteractiveTarget, readerArrowAction, shouldHandleReaderArrowKey, supportsElementFullscreen } from "./readerFullscreen";
|
||||
import { configurePdfWorker, pdfWorkerSrc } from "./pdfWorker";
|
||||
import { readerErrorMessage } from "./ReaderError";
|
||||
|
||||
@ -185,6 +185,35 @@ describe("reader runtime helpers", () => {
|
||||
expect(isElementFullscreen(regularElement, documentRef)).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps the fullscreen reader header visible while it is actively used", () => {
|
||||
const focusedControl = {};
|
||||
const focusedHeader = {
|
||||
contains: (target: unknown) => target === focusedControl,
|
||||
matches: () => false,
|
||||
querySelector: () => null
|
||||
} as unknown as HTMLElement;
|
||||
const hoveredHeader = {
|
||||
contains: () => false,
|
||||
matches: (selector: string) => selector === ":hover",
|
||||
querySelector: () => null
|
||||
} as unknown as HTMLElement;
|
||||
const menuOpenHeader = {
|
||||
contains: () => false,
|
||||
matches: () => false,
|
||||
querySelector: () => ({})
|
||||
} as unknown as HTMLElement;
|
||||
const idleHeader = {
|
||||
contains: () => false,
|
||||
matches: () => false,
|
||||
querySelector: () => null
|
||||
} as unknown as HTMLElement;
|
||||
|
||||
expect(isReaderHeaderActive(focusedHeader, { activeElement: focusedControl } as unknown as Document)).toBe(true);
|
||||
expect(isReaderHeaderActive(hoveredHeader, { activeElement: null } as unknown as Document)).toBe(true);
|
||||
expect(isReaderHeaderActive(menuOpenHeader, { activeElement: null } as unknown as Document)).toBe(true);
|
||||
expect(isReaderHeaderActive(idleHeader, { activeElement: null } as unknown as Document)).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps reader arrow shortcuts away from interactive or external targets", () => {
|
||||
const originalElement = globalThis.Element;
|
||||
const originalNode = globalThis.Node;
|
||||
|
||||
Reference in New Issue
Block a user