Skip to content

Commit 6b6d9e0

Browse files
committed
Fix PDF viewer total page loading issue
1 parent 602878f commit 6b6d9e0

1 file changed

Lines changed: 12 additions & 23 deletions

File tree

src/components/newPdfViewer.tsx

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,28 +64,17 @@ const Controls = memo(function Controls({documentId, toggleFullscreen, isFullscr
6464
const [pageNo, setPageNo] = useState("");
6565

6666
useEffect(() => {
67-
if (!scrollProv || !scrollState?.totalPages) return;
68-
const updatePage = () => {
69-
setPageNo(String(scrollProv.getCurrentPage()));
70-
};
71-
72-
updatePage();
73-
74-
const unsub = scrollProv.onPageChange(updatePage);
75-
return () => unsub();
76-
}, [scrollProv, scrollState?.totalPages]);
77-
78-
const pageChange = useCallback(
79-
(e: React.KeyboardEvent<HTMLInputElement>) => {
80-
if (e.key !== "Enter") return;
81-
const page = parseInt(pageNo, 10);
82-
if (!isNaN(page) && page >= 1 && page <= (scrollState?.totalPages ?? 1)) {
83-
scrollProv?.scrollToPage({ pageNumber: page, behavior: "smooth" });
84-
}
85-
},
86-
[pageNo, scrollState?.totalPages, scrollProv]
87-
);
88-
67+
if (!scrollProv) return;
68+
const timeout = setTimeout(() => {
69+
const current = scrollProv.getCurrentPage();
70+
setPageNo(String(current));
71+
}, 300);
72+
return () => {
73+
clearTimeout(timeout);
74+
unsub();
75+
};
76+
}, [scrollProv, scrollState?.totalPages]);
77+
8978
if (!zoomProv || !scrollProv) return null;
9079

9180
const zoomIn = () => zoomProv.zoomIn();
@@ -109,7 +98,7 @@ const Controls = memo(function Controls({documentId, toggleFullscreen, isFullscr
10998
onFocus={() => setPageNo("")}
11099
className="h-9 w-14 rounded border bg-[#e7e9ff] p-1 text-center text-sm [appearance:textfield] dark:bg-[#1f1f2a] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
111100
/>
112-
<span className="text-xs font-medium text-white">{totalPages ? `of ${totalPages}` : "Loading..."}</span>
101+
<span className="text-xs font-medium text-white">{totalPages > 0 ? `of ${totalPages}` : ""}</span>
113102
</div>
114103
)
115104

0 commit comments

Comments
 (0)