File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -73,6 +73,17 @@ export default function Problems() {
7373 const [ userStats , setUserStats ] = useState < { accepted : number } | null > ( null ) ;
7474 const totalProblems = stats ?. total ?? 0 ;
7575
76+ // Keyboard pagination
77+ useEffect ( ( ) => {
78+ const handler = ( e : KeyboardEvent ) => {
79+ if ( [ 'INPUT' , 'TEXTAREA' ] . includes ( ( e . target as HTMLElement ) . tagName ) ) return ;
80+ if ( e . key === 'ArrowLeft' ) { updateParams ( { page : String ( page - 1 ) } ) ; }
81+ if ( e . key === 'ArrowRight' ) { updateParams ( { page : String ( page + 1 ) } ) ; }
82+ } ;
83+ window . addEventListener ( 'keydown' , handler ) ;
84+ return ( ) => window . removeEventListener ( 'keydown' , handler ) ;
85+ } , [ page , totalProblems , totalPages ] ) ;
86+
7687 const fetchStats = useCallback ( async ( ) => {
7788 try {
7889 const res = await api . problems . stats ( ) ;
You can’t perform that action at this time.
0 commit comments