Skip to content

Commit 31f1d81

Browse files
committed
Improve wallet overview error handling and prop usage
Adds error display when Vault connection fails and refactors test transaction wallet parameter extraction for clarity. Also ensures wallet arrays default to empty and updates prop passing to child components for consistency.
1 parent 60b6b28 commit 31f1d81

File tree

1 file changed

+46
-35
lines changed
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/server-wallets/overview

1 file changed

+46
-35
lines changed

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/server-wallets/overview/page.tsx

Lines changed: 46 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ export default async function Page(props: {
5151
redirect(`/team/${params.team_slug}`);
5252
}
5353

54+
if (!vaultClient) {
55+
return <div>Error: Failed to connect to Vault</div>;
56+
}
57+
5458
const projectEngineCloudService = project.services.find(
5559
(service) => service.name === "engineCloud",
5660
);
@@ -63,24 +67,23 @@ export default async function Page(props: {
6367
const currentPage = Number.parseInt(searchParams.page ?? "1");
6468
const solanaCurrentPage = Number.parseInt(searchParams.solana_page ?? "1");
6569

66-
const eoas =
67-
managementAccessToken && vaultClient
68-
? await listEoas({
69-
client: vaultClient,
70-
request: {
71-
auth: {
72-
accessToken: managementAccessToken,
73-
},
74-
options: {
75-
page: currentPage - 1,
76-
// @ts-expect-error - TODO: fix this
77-
page_size: pageSize,
78-
},
70+
const eoas = managementAccessToken
71+
? await listEoas({
72+
client: vaultClient,
73+
request: {
74+
auth: {
75+
accessToken: managementAccessToken,
76+
},
77+
options: {
78+
page: currentPage - 1,
79+
// @ts-expect-error - TODO: fix this
80+
page_size: pageSize,
7981
},
80-
})
81-
: { data: { items: [], totalRecords: 0 }, error: null, success: true };
82+
},
83+
})
84+
: { data: { items: [], totalRecords: 0 }, error: null, success: true };
8285

83-
const wallets = eoas.data?.items as Wallet[] | undefined;
86+
const wallets = (eoas.data?.items as Wallet[] | undefined) ?? [];
8487

8588
let solanaAccounts: {
8689
data: { items: SolanaWallet[]; totalRecords: number };
@@ -106,6 +109,15 @@ export default async function Page(props: {
106109
const isSolanaPermissionError =
107110
solanaAccounts.error?.message.includes("AUTH_INSUFFICIENT_SCOPE") ?? false;
108111

112+
const testTxWithWallet =
113+
typeof searchParams.testTxWithWallet === "string"
114+
? searchParams.testTxWithWallet
115+
: undefined;
116+
const testSolanaTxWithWallet =
117+
typeof searchParams.testSolanaTxWithWallet === "string"
118+
? searchParams.testSolanaTxWithWallet
119+
: undefined;
120+
109121
const initialData = await getTransactionAnalyticsSummary({
110122
clientId: project.publishableKey,
111123
teamId: project.teamId,
@@ -125,33 +137,32 @@ export default async function Page(props: {
125137
hasTransactions={hasTransactions}
126138
project={project}
127139
teamSlug={params.team_slug}
128-
testTxWithWallet={searchParams.testTxWithWallet as string | undefined}
129-
testSolanaTxWithWallet={
130-
searchParams.testSolanaTxWithWallet as string | undefined
131-
}
132-
wallets={wallets ?? []}
140+
testTxWithWallet={testTxWithWallet}
141+
testSolanaTxWithWallet={testSolanaTxWithWallet}
142+
wallets={wallets}
133143
solanaWallets={solanaAccounts.data.items}
134144
/>
135-
{hasTransactions &&
136-
!searchParams.testTxWithWallet &&
137-
!searchParams.testSolanaTxWithWallet && (
138-
<TransactionAnalyticsSummary
139-
clientId={project.publishableKey}
140-
initialData={initialData}
141-
teamId={project.teamId}
142-
/>
143-
)}
145+
{hasTransactions && !testTxWithWallet && !testSolanaTxWithWallet && (
146+
<TransactionAnalyticsSummary
147+
clientId={project.publishableKey}
148+
initialData={initialData}
149+
teamId={project.teamId}
150+
/>
151+
)}
144152

145153
<TransactionsAnalyticsPageContent
154+
authToken={authToken}
146155
client={client}
156+
isManagedVault={isManagedVault}
147157
project={project}
148-
searchParams={searchParams}
149158
showAnalytics={
150-
hasTransactions &&
151-
!searchParams.testTxWithWallet &&
152-
!searchParams.testSolanaTxWithWallet
159+
hasTransactions && !testTxWithWallet && !testSolanaTxWithWallet
153160
}
161+
solanaWallets={solanaAccounts.data.items}
162+
teamId={project.teamId}
154163
teamSlug={params.team_slug}
164+
testSolanaTxWithWallet={testSolanaTxWithWallet}
165+
testTxWithWallet={testTxWithWallet}
155166
wallets={wallets}
156167
/>
157168

@@ -168,7 +179,7 @@ export default async function Page(props: {
168179
evmCurrentPage={currentPage}
169180
evmTotalPages={Math.ceil(eoas.data.totalRecords / pageSize)}
170181
evmTotalRecords={eoas.data.totalRecords}
171-
evmWallets={eoas.data.items as Wallet[]}
182+
evmWallets={wallets}
172183
pageSize={pageSize}
173184
project={project}
174185
solanaCurrentPage={solanaCurrentPage}

0 commit comments

Comments
 (0)