merge: fix/39-reader-vertical-scroll-reentry dans develop (sync initiale verticale réévaluée à chaque frame — 6e correctif #39)
This commit is contained in:
@ -115,13 +115,12 @@ export function CbzReader({
|
|||||||
const scheduleInitialVisibleSync = useCallback(
|
const scheduleInitialVisibleSync = useCallback(
|
||||||
(stage: HTMLElement) => {
|
(stage: HTMLElement) => {
|
||||||
clearVerticalInitialSync();
|
clearVerticalInitialSync();
|
||||||
if (!(stage.scrollHeight > stage.clientHeight)) return;
|
|
||||||
verticalInitialSyncAttemptRef.current = 0;
|
verticalInitialSyncAttemptRef.current = 0;
|
||||||
|
|
||||||
const sync = () => {
|
const sync = () => {
|
||||||
verticalInitialSyncFrameRef.current = null;
|
verticalInitialSyncFrameRef.current = null;
|
||||||
if (verticalUserScrollRef.current || verticalInitialSyncDoneRef.current) return;
|
if (verticalUserScrollRef.current || verticalInitialSyncDoneRef.current) return;
|
||||||
if (verticalTrackingReadyRef.current && stage.scrollTop > Math.max(32, stage.clientHeight * 0.5)) {
|
if (verticalTrackingReadyRef.current && stage.scrollHeight > stage.clientHeight && stage.scrollTop > Math.max(32, stage.clientHeight * 0.5)) {
|
||||||
commitVisiblePage(stage, true);
|
commitVisiblePage(stage, true);
|
||||||
}
|
}
|
||||||
verticalInitialSyncAttemptRef.current += 1;
|
verticalInitialSyncAttemptRef.current += 1;
|
||||||
|
|||||||
@ -211,13 +211,12 @@ export function PdfReader({ url, page, backHref, zoom, mode, onPageCommit, onCon
|
|||||||
const scheduleInitialVisibleSync = useCallback(
|
const scheduleInitialVisibleSync = useCallback(
|
||||||
(stage: HTMLElement) => {
|
(stage: HTMLElement) => {
|
||||||
clearVerticalInitialSync();
|
clearVerticalInitialSync();
|
||||||
if (!(stage.scrollHeight > stage.clientHeight)) return;
|
|
||||||
verticalInitialSyncAttemptRef.current = 0;
|
verticalInitialSyncAttemptRef.current = 0;
|
||||||
|
|
||||||
const sync = () => {
|
const sync = () => {
|
||||||
verticalInitialSyncFrameRef.current = null;
|
verticalInitialSyncFrameRef.current = null;
|
||||||
if (verticalUserScrollRef.current || verticalInitialSyncDoneRef.current) return;
|
if (verticalUserScrollRef.current || verticalInitialSyncDoneRef.current) return;
|
||||||
if (verticalTrackingReadyRef.current && stage.scrollTop > Math.max(32, stage.clientHeight * 0.5)) {
|
if (verticalTrackingReadyRef.current && stage.scrollHeight > stage.clientHeight && stage.scrollTop > Math.max(32, stage.clientHeight * 0.5)) {
|
||||||
commitVisiblePage(stage, true);
|
commitVisiblePage(stage, true);
|
||||||
}
|
}
|
||||||
verticalInitialSyncAttemptRef.current += 1;
|
verticalInitialSyncAttemptRef.current += 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user