Skip to content

Commit 0532382

Browse files
committed
[TOOL-4819] Dashboard: Load all engine backend wallets, add pagination in table
1 parent 21802d6 commit 0532382

File tree

2 files changed

+29
-5
lines changed
  • apps/dashboard/src
    • @3rdweb-sdk/react/hooks
    • app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/overview/components

2 files changed

+29
-5
lines changed

apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,13 @@ export function useEngineBackendWallets(params: {
7575
return useQuery({
7676
queryKey: [...engineKeys.backendWallets(instanceUrl), authToken],
7777
queryFn: async () => {
78-
const res = await fetch(`${instanceUrl}backend-wallet/get-all?limit=50`, {
79-
method: "GET",
80-
headers: getEngineRequestHeaders(authToken),
81-
});
78+
const res = await fetch(
79+
`${instanceUrl}backend-wallet/get-all?limit=1000`,
80+
{
81+
method: "GET",
82+
headers: getEngineRequestHeaders(authToken),
83+
},
84+
);
8285

8386
const json = await res.json();
8487

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/overview/components/engine-overview.tsx

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"use client";
22
import { SingleNetworkSelector } from "@/components/blocks/NetworkSelectors";
3+
import { PaginationButtons } from "@/components/pagination-buttons";
34
import { UnderlineLink } from "@/components/ui/UnderlineLink";
45
import { TrackedUnderlineLink } from "@/components/ui/tracked-link";
56
import {
@@ -62,6 +63,8 @@ function BackendWalletsSection(props: {
6263
const activeWalletChain = useActiveWalletChain();
6364
const [_chainId, setChainId] = useState<number>();
6465
const chainId = _chainId || activeWalletChain?.id || 1;
66+
const pageSize = 10;
67+
const [page, setPage] = useState(1);
6568

6669
const backendWallets = useEngineBackendWallets({
6770
instanceUrl: instance.url,
@@ -72,6 +75,13 @@ function BackendWalletsSection(props: {
7275
authToken,
7376
});
7477

78+
const totalPages = Math.ceil((backendWallets.data?.length ?? 0) / pageSize);
79+
80+
const walletsToShow = backendWallets.data?.slice(
81+
(page - 1) * pageSize,
82+
page * pageSize,
83+
);
84+
7585
return (
7686
<section className="rounded-lg border border-border bg-card">
7787
<div className="flex flex-col gap-5 p-6 lg:flex-row lg:items-center lg:justify-between">
@@ -144,13 +154,24 @@ function BackendWalletsSection(props: {
144154

145155
<BackendWalletsTable
146156
instanceUrl={instance.url}
147-
wallets={backendWallets.data ?? []}
157+
wallets={walletsToShow ?? []}
148158
isPending={backendWallets.isPending}
149159
isFetched={backendWallets.isFetched}
150160
authToken={authToken}
151161
chainId={chainId}
152162
client={props.client}
153163
/>
164+
165+
{totalPages > 1 && (
166+
<div className="border-t p-4">
167+
<PaginationButtons
168+
activePage={page}
169+
totalPages={totalPages}
170+
onPageClick={setPage}
171+
className="mx-0 w-auto"
172+
/>
173+
</div>
174+
)}
154175
</section>
155176
);
156177
}

0 commit comments

Comments
 (0)