Skip to content

Commit bde1da4

Browse files
authored
Merge 7abd839 into 3abd1c3
2 parents 3abd1c3 + 7abd839 commit bde1da4

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/pages/academy/grading/subcomponents/GradingSubmissionsTable.tsx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)