@@ -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