restore resetting offset when name filter changes

This commit is contained in:
Min RK
2024-03-06 10:30:36 +01:00
parent f5bfe6a773
commit a09862cb1b
3 changed files with 11 additions and 4 deletions

View File

@@ -9,7 +9,7 @@ const PaginationFooter = (props) => {
return (
<div className="pagination-footer">
<p>
Displaying {offset}-{offset + visible} {total ? `of ${total}` : ""}
Displaying {offset + 1}-{offset + visible} {total ? `of ${total}` : ""}
<br />
{offset >= 1 ? (
<button className="btn btn-sm btn-light spaced">

View File

@@ -86,10 +86,14 @@ const ServerDashboard = (props) => {
});
};
const setNameFilter = (name_filter) => {
const setNameFilter = (new_name_filter) => {
setSearchParams((params) => {
if (name_filter) {
params.set("name_filter", name_filter);
// clear offset when name filter changes
if (new_name_filter !== name_filter) {
params.delete("offset");
}
if (new_name_filter) {
params.set("name_filter", new_name_filter);
} else {
params.delete("name_filter");
}

View File

@@ -509,6 +509,7 @@ test("Search for user calls updateUsers with name filter", async () => {
});
});
await act(async () => {
searchParams.set("offset", "2");
render(serverDashboardJsx({ updateUsers: mockUpdateUsers }));
});
@@ -516,12 +517,14 @@ test("Search for user calls updateUsers with name filter", async () => {
expect(mockUpdateUsers.mock.calls).toHaveLength(1);
expect(searchParams.get("offset")).toEqual("2");
userEvent.type(search, "a");
expect(search.value).toEqual("a");
await act(async () => {
jest.runAllTimers();
});
expect(searchParams.get("name_filter")).toEqual("a");
expect(searchParams.get("offset")).toEqual(null);
// FIXME: useSelector mocks prevent updateUsers from being called
// expect(mockUpdateUsers.mock.calls).toHaveLength(2);
// expect(mockUpdateUsers).toBeCalledWith(0, 100, "a");