Skip to content

Commit 55365a0

Browse files
committed
[dashboard] add pagination to user search
1 parent 746638b commit 55365a0

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

components/dashboard/src/admin/UserSearch.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@ import moment from "moment";
99
import { useEffect, useState } from "react";
1010
import { useLocation } from "react-router";
1111
import { Link } from "react-router-dom";
12+
import Pagination from "../Pagination/Pagination";
1213
import { getGitpodService } from "../service/service";
1314
import { PageWithAdminSubMenu } from "./PageWithAdminSubMenu";
1415
import UserDetail from "./UserDetail";
1516

1617
export default function UserSearch() {
1718
const location = useLocation();
19+
const pageLength = 50;
1820
const [searchResult, setSearchResult] = useState<AdminGetListResult<User>>({ rows: [], total: 0 });
1921
const [searchTerm, setSearchTerm] = useState("");
22+
const [currentPage, setCurrentPage] = useState(0);
2023
const [searching, setSearching] = useState(false);
2124
const [currentUser, setCurrentUserState] = useState<User | undefined>(undefined);
2225

@@ -46,16 +49,21 @@ export default function UserSearch() {
4649
try {
4750
const result = await getGitpodService().server.adminGetUsers({
4851
searchTerm,
49-
limit: 50,
52+
limit: pageLength,
5053
orderBy: "creationDate",
51-
offset: 0,
54+
offset: currentPage * pageLength,
5255
orderDir: "desc",
5356
});
5457
setSearchResult(result);
5558
} finally {
5659
setSearching(false);
5760
}
5861
};
62+
63+
const updatePage = (page: number) => {
64+
setCurrentPage(page);
65+
search();
66+
};
5967
return (
6068
<PageWithAdminSubMenu title="Users" subtitle="Search and manage all users.">
6169
<div className="pt-8 flex">
@@ -103,6 +111,11 @@ export default function UserSearch() {
103111
<UserEntry user={u} />
104112
))}
105113
</div>
114+
<Pagination
115+
currentPage={currentPage}
116+
setPage={updatePage}
117+
totalNumberOfPages={searchResult.total / pageLength}
118+
/>
106119
</PageWithAdminSubMenu>
107120
);
108121
}

0 commit comments

Comments
 (0)