@@ -128,10 +128,15 @@ const GradingSubmissionTable: React.FC<GradingSubmissionTableProps> = ({
128128 const [ searchQuery , setSearchQuery ] = useState ( '' ) ;
129129 /** The actual value sent to the backend */
130130 const [ searchValue , setSearchValue ] = useState ( '' ) ;
131- const debouncedSetSearchValue = useMemo ( ( ) => debounce ( setSearchValue , 300 ) , [ ] ) ;
131+ // Placing searchValue as a dependency for triggering a page reset will result in double-querying.
132+ const updateSearch = ( newValue : string ) => {
133+ resetPage ( ) ;
134+ setSearchValue ( newValue ) ;
135+ } ;
136+ const debouncedUpdateSearchValue = useMemo ( ( ) => debounce ( updateSearch , 300 ) , [ ] ) ;
132137 const handleSearchQueryUpdate : React . ChangeEventHandler < HTMLInputElement > = e => {
133138 setSearchQuery ( e . target . value ) ;
134- debouncedSetSearchValue ( e . target . value ) ;
139+ debouncedUpdateSearchValue ( e . target . value ) ;
135140 } ;
136141
137142 const [ page , setPage ] = useState ( 0 ) ;
@@ -158,7 +163,13 @@ const GradingSubmissionTable: React.FC<GradingSubmissionTableProps> = ({
158163 const table = useReactTable ( {
159164 data : submissions ,
160165 columns,
161- state : { columnFilters } ,
166+ state : {
167+ columnFilters,
168+ pagination : {
169+ pageIndex : 0 ,
170+ pageSize : pageSize
171+ }
172+ } ,
162173 onColumnFiltersChange : setColumnFilters ,
163174 getCoreRowModel : getCoreRowModel ( ) ,
164175 getFilteredRowModel : getFilteredRowModel ( ) ,
@@ -168,6 +179,7 @@ const GradingSubmissionTable: React.FC<GradingSubmissionTableProps> = ({
168179 const handleFilterRemove = ( { id, value } : ColumnFilter ) => {
169180 const newFilters = columnFilters . filter ( filter => filter . id !== id && filter . value !== value ) ;
170181 setColumnFilters ( newFilters ) ;
182+ resetPage ( ) ;
171183 } ;
172184
173185 useEffect ( ( ) => {
@@ -176,7 +188,7 @@ const GradingSubmissionTable: React.FC<GradingSubmissionTableProps> = ({
176188
177189 useEffect ( ( ) => {
178190 resetPage ( ) ;
179- } , [ updateEntries , resetPage ] ) ;
191+ } , [ updateEntries , resetPage , searchValue ] ) ;
180192
181193 useEffect ( ( ) => {
182194 updateEntries ( page , backendFilterParams ) ;
0 commit comments