Skip to content

Commit e9a7773

Browse files
committed
feat: cleanup step preview ui
1 parent 920c7e0 commit e9a7773

File tree

1 file changed

+51
-4
lines changed

1 file changed

+51
-4
lines changed

packages/thirdweb/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
"use client";
22
import { useQuery } from "@tanstack/react-query";
3+
import { useMemo } from "react";
34
import { trackPayEvent } from "../../../../../analytics/track/pay.js";
45
import type { ThirdwebClient } from "../../../../../client/client.js";
56
import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
67
import { radius, spacing } from "../../../../core/design-system/index.js";
8+
import { useChainsQuery } from "../../../../core/hooks/others/useChainQuery.js";
79
import type { BridgePrepareResult } from "../../../../core/hooks/useBridgePrepare.js";
810
import type { PaymentMethod } from "../../../../core/machines/paymentMachine.js";
911
import {
@@ -102,6 +104,15 @@ export function PaymentDetails({
102104
queryKey: ["payment_details", preparedQuote.type],
103105
});
104106

107+
const chainsQuery = useChainsQuery(
108+
preparedQuote.steps.flatMap((s) => s.transactions.map((t) => t.chain)),
109+
10,
110+
);
111+
const chainsMetadata = useMemo(
112+
() => chainsQuery.map((c) => c.data),
113+
[chainsQuery],
114+
).filter((c) => !!c);
115+
105116
// Extract common data based on quote type
106117
const getDisplayData = () => {
107118
switch (preparedQuote.type) {
@@ -321,12 +332,48 @@ export function PaymentDetails({
321332
>
322333
<Container flex="column" gap="3xs" style={{ flex: 1 }}>
323334
<Text color="primaryText" size="sm">
324-
{step.originToken.symbol}{" "}
325-
{step.destinationToken.symbol}
335+
{step.destinationToken.chainId !==
336+
step.originToken.chainId ? (
337+
<>
338+
Bridge{" "}
339+
{step.originToken.symbol ===
340+
step.destinationToken.symbol
341+
? step.originToken.symbol
342+
: `${step.originToken.symbol} to ${step.destinationToken.symbol}`}
343+
</>
344+
) : (
345+
<>
346+
Swap {step.originToken.symbol} to{" "}
347+
{step.destinationToken.symbol}
348+
</>
349+
)}
326350
</Text>
327351
<Text color="secondaryText" size="xs">
328-
{step.originToken.name} to{" "}
329-
{step.destinationToken.name}
352+
{step.originToken.chainId !==
353+
step.destinationToken.chainId ? (
354+
<>
355+
{
356+
chainsMetadata.find(
357+
(c) => c.chainId === step.originToken.chainId,
358+
)?.name
359+
}{" "}
360+
to{" "}
361+
{
362+
chainsMetadata.find(
363+
(c) =>
364+
c.chainId === step.destinationToken.chainId,
365+
)?.name
366+
}
367+
</>
368+
) : (
369+
<>
370+
{
371+
chainsMetadata.find(
372+
(c) => c.chainId === step.originToken.chainId,
373+
)?.name
374+
}
375+
</>
376+
)}
330377
</Text>
331378
</Container>
332379
</Container>

0 commit comments

Comments
 (0)