@@ -61,24 +61,21 @@ const Controls = memo(function Controls({documentId, toggleFullscreen, isFullscr
6161
6262 const { provides : zoomProv , state : zoomState } = useZoom ( documentId ) ;
6363 const { provides : scrollProv , state : scrollState } = useScroll ( documentId ) ;
64- const [ pageNo , setPageNo ] = useState ( "" ) ;
64+ const [ pageNo , setPageNo ] = useState ( "1 " ) ;
6565
6666 useEffect ( ( ) => {
6767 if ( ! scrollProv ) return ;
68- const unsub = scrollProv . onPageChange ( ( ) => {
69- const current = scrollProv . getCurrentPage ( ) ;
70- setPageNo ( String ( current ) ) ;
71- } ) ;
72- const current = scrollProv . getCurrentPage ( ) ;
73- setPageNo ( String ( current ) ) ;
68+ const unsub = scrollProv . onPageChange ( ( ) =>
69+ setPageNo ( String ( scrollProv . getCurrentPage ( ) ) )
70+ ) ;
7471 return ( ) => unsub ( ) ;
7572 } , [ scrollProv ] ) ;
7673
7774 const pageChange = useCallback (
7875 ( e : React . KeyboardEvent < HTMLInputElement > ) => {
7976 if ( e . key !== "Enter" ) return ;
8077 const page = parseInt ( pageNo , 10 ) ;
81- if ( ! isNaN ( page ) && scrollState ?. totalPages && page >= 1 && page <= scrollState . totalPages ) {
78+ if ( ! isNaN ( page ) && page >= 1 && page <= ( scrollState ? .totalPages ?? 1 ) ) {
8279 scrollProv ?. scrollToPage ( { pageNumber : page , behavior : "smooth" } ) ;
8380 }
8481 } ,
@@ -102,20 +99,13 @@ const Controls = memo(function Controls({documentId, toggleFullscreen, isFullscr
10299 < div className = { ( ! isFullscreen && ! isMobile ) ? "flex flex-col items-center gap-2" : "flex flex-row items-center gap-2" } >
103100 < input
104101 type = "text"
105- value = { totalPages ? pageNo : "" }
102+ value = { pageNo }
106103 onChange = { ( e ) => setPageNo ( e . target . value ) }
107104 onKeyDown = { pageChange }
108- onFocus = { ( ) => {
109- if ( totalPages ) setPageNo ( "" ) ;
110- } }
111- onBlur = { ( ) => {
112- if ( ! pageNo && scrollProv ) {
113- setPageNo ( String ( scrollProv . getCurrentPage ( ) ) ) ;
114- }
115- } }
105+ onFocus = { ( ) => setPageNo ( "" ) }
116106 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"
117107 />
118- < span className = "text-xs font-medium text-white" > of { totalPages ?? "..." } </ span >
108+ < span className = "text-xs font-medium text-white" > of { totalPages ?? 1 } </ span >
119109 </ div >
120110 )
121111
0 commit comments