thirdweb 5.111.9 → 5.111.11-nightly-eb1a9c3c3e670290e28ad86e14ddae4c7cf7455d-20251112000353
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bridge/Webhook.js +62 -1
- package/dist/cjs/bridge/Webhook.js.map +1 -1
- package/dist/cjs/cli/commands/stylus/create.js +48 -0
- package/dist/cjs/cli/commands/stylus/create.js.map +1 -1
- package/dist/cjs/extensions/modules/common/installPublishedModule.js +26 -9
- package/dist/cjs/extensions/modules/common/installPublishedModule.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-published.js +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js +1 -1
- package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js +1 -1
- package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js +2 -2
- package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/common/selected-token-button.js +7 -2
- package/dist/cjs/react/web/ui/Bridge/common/selected-token-button.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js +5 -5
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js +1 -1
- package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js +20 -44
- package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js +3 -3
- package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/swap-widget/select-chain.js +10 -2
- package/dist/cjs/react/web/ui/Bridge/swap-widget/select-chain.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js +94 -48
- package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +2 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
- package/dist/cjs/react/web/ui/components/CopyIcon.js +6 -8
- package/dist/cjs/react/web/ui/components/CopyIcon.js.map +1 -1
- package/dist/cjs/react/web/ui/components/Spacer.js +1 -0
- package/dist/cjs/react/web/ui/components/Spacer.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bridge/Webhook.js +62 -1
- package/dist/esm/bridge/Webhook.js.map +1 -1
- package/dist/esm/cli/commands/stylus/create.js +48 -0
- package/dist/esm/cli/commands/stylus/create.js.map +1 -1
- package/dist/esm/extensions/modules/common/installPublishedModule.js +26 -9
- package/dist/esm/extensions/modules/common/installPublishedModule.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-published.js +1 -1
- package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +1 -1
- package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js +1 -1
- package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js +2 -2
- package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/common/selected-token-button.js +7 -2
- package/dist/esm/react/web/ui/Bridge/common/selected-token-button.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js +5 -5
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js +1 -1
- package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js +23 -47
- package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +4 -4
- package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/swap-widget/select-chain.js +10 -2
- package/dist/esm/react/web/ui/Bridge/swap-widget/select-chain.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js +95 -49
- package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +2 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
- package/dist/esm/react/web/ui/components/CopyIcon.js +6 -8
- package/dist/esm/react/web/ui/components/CopyIcon.js.map +1 -1
- package/dist/esm/react/web/ui/components/Spacer.js +1 -0
- package/dist/esm/react/web/ui/components/Spacer.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/scripts/bridge-widget.js +100 -100
- package/dist/types/bridge/Webhook.d.ts +22 -1
- package/dist/types/bridge/Webhook.d.ts.map +1 -1
- package/dist/types/cli/commands/stylus/create.d.ts.map +1 -1
- package/dist/types/extensions/modules/common/installPublishedModule.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/common/selected-token-button.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/swap-widget/select-chain.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/CopyIcon.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/Spacer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/bridge/Webhook.test.ts +157 -0
- package/src/bridge/Webhook.ts +107 -0
- package/src/cli/commands/stylus/create.ts +49 -0
- package/src/contract/deployment/deploy-dynamic.test.ts +35 -39
- package/src/extensions/dynamic-contracts/write/installPublishedExtension.test.ts +40 -44
- package/src/extensions/dynamic-contracts/write/uninstallExtension.test.ts +1 -2
- package/src/extensions/modules/common/installPublishedModule.ts +28 -9
- package/src/extensions/prebuilts/deploy-published.ts +1 -1
- package/src/react/web/ui/Bridge/TransactionPayment.tsx +1 -1
- package/src/react/web/ui/Bridge/common/TokenAndChain.tsx +1 -1
- package/src/react/web/ui/Bridge/common/TokenBalanceRow.tsx +11 -10
- package/src/react/web/ui/Bridge/common/selected-token-button.tsx +11 -1
- package/src/react/web/ui/Bridge/payment-details/PaymentOverview.tsx +9 -7
- package/src/react/web/ui/Bridge/payment-selection/TokenSelection.tsx +1 -1
- package/src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx +92 -115
- package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +4 -6
- package/src/react/web/ui/Bridge/swap-widget/select-chain.tsx +18 -3
- package/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx +186 -118
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +5 -3
- package/src/react/web/ui/components/CopyIcon.tsx +8 -9
- package/src/react/web/ui/components/Spacer.tsx +1 -0
- package/src/version.ts +1 -1
|
@@ -23,7 +23,7 @@ function PaymentMethodTokenRow({ paymentMethod, client, onPaymentMethodSelected,
|
|
|
23
23
|
textAlign: "left",
|
|
24
24
|
}, variant: "secondary", children: _jsxs(Container, { flex: "row", gap: "md", style: { alignItems: "center", width: "100%" }, children: [_jsx(TokenAndChain, { client: client, size: "lg", style: {
|
|
25
25
|
maxWidth: "50%",
|
|
26
|
-
}, token: paymentMethod.originToken }), _jsxs(Container, { flex: "column", gap: "3xs", style: { alignItems: "flex-end", flex: 1 }, children: [currencyPrice && (_jsx(Text, { color: "primaryText", size: "sm", style: { fontWeight:
|
|
26
|
+
}, token: paymentMethod.originToken }), _jsxs(Container, { flex: "column", gap: "3xs", style: { alignItems: "flex-end", flex: 1 }, children: [currencyPrice && (_jsx(Text, { color: "primaryText", size: "sm", style: { fontWeight: 500, textWrap: "nowrap" }, children: formatCurrencyAmount(currency || "USD", Number(formatTokenAmount(paymentMethod.balance, paymentMethod.originToken.decimals)) * currencyPrice) })), _jsx(Container, { flex: "row", gap: "3xs", children: _jsxs(Text, { color: hasEnoughBalance ? "success" : "danger", size: "xs", children: [formatTokenAmount(paymentMethod.balance, paymentMethod.originToken.decimals), " ", paymentMethod.originToken.symbol] }) })] })] }) }, `${paymentMethod.originToken.address}-${paymentMethod.originToken.chainId}`));
|
|
27
27
|
}
|
|
28
28
|
export function TokenSelection({ paymentMethods, paymentMethodsLoading, client, onPaymentMethodSelected, onBack, destinationToken, destinationAmount, feePayer, currency, }) {
|
|
29
29
|
const theme = useCustomTheme();
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { CopyIcon } from "@radix-ui/react-icons";
|
|
4
3
|
import { useQuery } from "@tanstack/react-query";
|
|
5
|
-
import { useCallback } from "react";
|
|
6
4
|
import { defineChain, getCachedChain, getChainMetadata, } from "../../../../../chains/utils.js";
|
|
7
5
|
import { shortenHex } from "../../../../../utils/address.js";
|
|
8
|
-
import { formatExplorerTxUrl } from "../../../../../utils/url.js";
|
|
9
6
|
import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
|
|
10
|
-
import {
|
|
7
|
+
import { radius, spacing } from "../../../../core/design-system/index.js";
|
|
11
8
|
import { formatTokenAmount } from "../../ConnectWallet/screens/formatTokenBalance.js";
|
|
12
|
-
import { Container, ModalHeader } from "../../components/basic.js";
|
|
9
|
+
import { Container, Line, ModalHeader } from "../../components/basic.js";
|
|
13
10
|
import { shorterChainName } from "../../components/ChainName.js";
|
|
11
|
+
import { CopyIcon } from "../../components/CopyIcon.js";
|
|
14
12
|
import { Skeleton } from "../../components/Skeleton.js";
|
|
15
13
|
import { Spacer } from "../../components/Spacer.js";
|
|
16
|
-
import { Text } from "../../components/text.js";
|
|
14
|
+
import { Link, Text } from "../../components/text.js";
|
|
17
15
|
function getPaymentId(preparedQuote, status) {
|
|
18
16
|
if (preparedQuote.type === "onramp") {
|
|
19
17
|
return preparedQuote.id;
|
|
@@ -79,16 +77,11 @@ function useTransactionInfo(status, preparedQuote) {
|
|
|
79
77
|
/**
|
|
80
78
|
* Component to display details for a completed transaction step
|
|
81
79
|
*/
|
|
82
|
-
function CompletedStepDetailCard({ status, preparedQuote,
|
|
80
|
+
function CompletedStepDetailCard({ status, preparedQuote, }) {
|
|
83
81
|
const theme = useCustomTheme();
|
|
84
|
-
const { data: txInfo,
|
|
85
|
-
if (
|
|
86
|
-
return (
|
|
87
|
-
backgroundColor: theme.colors.tertiaryBg,
|
|
88
|
-
border: `1px solid ${theme.colors.borderColor}`,
|
|
89
|
-
borderRadius: radius.sm,
|
|
90
|
-
padding: spacing.md,
|
|
91
|
-
}, children: [_jsx(Skeleton, { height: "30px" }), _jsx(Skeleton, { height: "30px" }), _jsx(Skeleton, { height: "30px" })] }));
|
|
82
|
+
const { data: txInfo, isPending } = useTransactionInfo(status, preparedQuote);
|
|
83
|
+
if (isPending) {
|
|
84
|
+
return _jsx(Skeleton, { height: "200px", style: { borderRadius: radius.lg } });
|
|
92
85
|
}
|
|
93
86
|
if (!txInfo) {
|
|
94
87
|
return null;
|
|
@@ -96,43 +89,26 @@ function CompletedStepDetailCard({ status, preparedQuote, windowAdapter, onCopyT
|
|
|
96
89
|
return (_jsxs(Container, { flex: "column", gap: "sm", style: {
|
|
97
90
|
backgroundColor: theme.colors.tertiaryBg,
|
|
98
91
|
border: `1px solid ${theme.colors.borderColor}`,
|
|
99
|
-
borderRadius: radius.
|
|
92
|
+
borderRadius: radius.lg,
|
|
100
93
|
padding: spacing.md,
|
|
101
|
-
}, children: [_jsxs(Container, { flex: "row", gap: "sm", style: {
|
|
94
|
+
}, children: [_jsxs(Container, { flex: "row", gap: "sm", py: "4xs", style: {
|
|
102
95
|
alignItems: "center",
|
|
103
96
|
justifyContent: "space-between",
|
|
104
|
-
}, children: [_jsx(Text, { color: "primaryText", size: "sm", children: txInfo.label }), _jsx(Container, { style: {
|
|
105
|
-
backgroundColor: theme.colors.
|
|
106
|
-
borderRadius: radius.
|
|
97
|
+
}, children: [_jsx(Text, { color: "primaryText", size: "sm", weight: 500, children: txInfo.label }), _jsx(Container, { style: {
|
|
98
|
+
backgroundColor: theme.colors.modalBg,
|
|
99
|
+
borderRadius: radius.full,
|
|
100
|
+
border: `1px solid ${theme.colors.borderColor}`,
|
|
107
101
|
padding: `${spacing["3xs"]} ${spacing.xs}`,
|
|
108
|
-
}, children: _jsx(Text, {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
cursor: "pointer",
|
|
117
|
-
fontFamily: "monospace",
|
|
118
|
-
}, children: shortenHex(txInfo.id) }), txInfo.type === "paymentId" ? (_jsx("button", { onClick: () => onCopyToClipboard(txInfo.id), style: {
|
|
119
|
-
background: "none",
|
|
120
|
-
border: "none",
|
|
121
|
-
cursor: "pointer",
|
|
122
|
-
padding: 0,
|
|
123
|
-
}, type: "button", children: _jsx(CopyIcon, { color: theme.colors.primaryText, height: iconSize.sm, width: iconSize.sm }) })) : null] })] })] }, txInfo.id));
|
|
102
|
+
}, children: _jsx(Text, { style: {
|
|
103
|
+
color: theme.colors.success,
|
|
104
|
+
fontSize: 10,
|
|
105
|
+
letterSpacing: "0.025em",
|
|
106
|
+
}, children: "COMPLETED" }) })] }), _jsx(Line, {}), txInfo.amountPaid && (_jsxs(Container, { center: "y", flex: "row", style: { justifyContent: "space-between" }, children: [_jsx(Text, { color: "secondaryText", size: "sm", children: "Amount Paid" }), _jsx(Text, { color: "primaryText", size: "sm", children: txInfo.amountPaid })] })), txInfo.amountReceived && (_jsxs(Container, { center: "y", flex: "row", style: { justifyContent: "space-between" }, children: [_jsx(Text, { color: "secondaryText", size: "sm", children: "Amount Received" }), _jsx(Text, { color: "primaryText", size: "sm", children: txInfo.amountReceived })] })), txInfo.originChain && (_jsxs(Container, { center: "y", flex: "row", style: { justifyContent: "space-between" }, children: [_jsx(Text, { color: "secondaryText", size: "sm", children: "Origin Chain" }), _jsx(Text, { color: "primaryText", size: "sm", children: shorterChainName(txInfo.originChain.name) })] })), _jsxs(Container, { center: "y", flex: "row", style: { justifyContent: "space-between" }, children: [_jsx(Text, { color: "secondaryText", size: "sm", children: "Destination Chain" }), _jsx(Text, { color: "primaryText", size: "sm", children: shorterChainName(txInfo.chain.name) })] }), txInfo.type === "paymentId" && (_jsxs(Container, { center: "y", flex: "row", style: { justifyContent: "space-between" }, children: [_jsx(Text, { color: "secondaryText", size: "sm", children: "Payment ID" }), _jsxs(Container, { flex: "row", gap: "3xs", center: "y", children: [_jsx(CopyIcon, { text: txInfo.id, iconSize: 12, tip: "Copy Payment ID" }), _jsx(Text, { color: "primaryText", weight: 400, size: "sm", children: shortenHex(txInfo.id) })] })] })), status.transactions.map((tx) => {
|
|
107
|
+
const explorerLink = `https://thirdweb.com/${tx.chainId}/tx/${tx.transactionHash}`;
|
|
108
|
+
return (_jsxs(Container, { center: "y", flex: "row", style: { justifyContent: "space-between" }, children: [_jsx(Text, { color: "secondaryText", size: "sm", children: "Transaction Hash" }), _jsxs(Container, { flex: "row", gap: "3xs", center: "y", children: [_jsx(CopyIcon, { text: tx.transactionHash, iconSize: 12, tip: "Copy Transaction Hash" }), _jsx(Link, { href: explorerLink, target: "_blank", rel: "noreferrer", color: "primaryText", hoverColor: "accentText", weight: 400, size: "sm", children: shortenHex(tx.transactionHash) })] })] }, tx.transactionHash));
|
|
109
|
+
})] }, txInfo.id));
|
|
124
110
|
}
|
|
125
111
|
export function PaymentReceipt({ preparedQuote, completedStatuses, onBack, windowAdapter, }) {
|
|
126
|
-
|
|
127
|
-
const copyToClipboard = useCallback(async (text) => {
|
|
128
|
-
try {
|
|
129
|
-
await navigator.clipboard.writeText(text);
|
|
130
|
-
// Could add a toast notification here
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
console.warn("Failed to copy to clipboard:", error);
|
|
134
|
-
}
|
|
135
|
-
}, []);
|
|
136
|
-
return (_jsxs(Container, { flex: "column", fullHeight: true, p: "md", style: { maxHeight: "500px", minHeight: "250px", overflowY: "auto" }, children: [_jsx(ModalHeader, { onBack: onBack, title: "Payment Receipt" }), _jsx(Spacer, { y: "lg" }), _jsx(Container, { flex: "column", gap: "lg", children: _jsx(Container, { flex: "column", gap: "md", children: completedStatuses.map((status, index) => (_jsx(CompletedStepDetailCard, { onCopyToClipboard: copyToClipboard, preparedQuote: preparedQuote, status: status, windowAdapter: windowAdapter }, `${status.type}-${index}`))) }) })] }));
|
|
112
|
+
return (_jsxs(Container, { flex: "column", fullHeight: true, px: "md", children: [_jsx(Spacer, { y: "md+" }), _jsx(ModalHeader, { onBack: onBack, title: "Payment Receipt" }), _jsx(Spacer, { y: "md+" }), _jsx(Container, { flex: "column", gap: "lg", scrollY: true, style: { maxHeight: "500px", minHeight: "400px" }, children: _jsx(Container, { flex: "column", gap: "sm", children: completedStatuses.map((status, index) => (_jsx(CompletedStepDetailCard, { preparedQuote: preparedQuote, status: status, windowAdapter: windowAdapter }, `${status.type}-${index}`))) }) }), _jsx(Spacer, { y: "md+" })] }));
|
|
137
113
|
}
|
|
138
114
|
//# sourceMappingURL=PaymentReceipt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentReceipt.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"PaymentReceipt.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EACL,WAAW,EACX,cAAc,EACd,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAetD,SAAS,YAAY,CACnB,aAAkC,EAClC,MAA6B;IAE7B,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,aAAa,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAA6B,EAC7B,aAAkC;IAElC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK,IAAqC,EAAE;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;YAE1C,IAAI,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChD,4EAA4E;gBAC5E,OAAO;oBACL,UAAU,EAAE,GAAG,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,QAAQ,EAAE;oBACvE,cAAc,EAAE,GAAG,iBAAiB,CAClC,aAAa,CAAC,iBAAiB,EAC/B,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CACxC,IAAI,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM,gBAAgB,CAC3B,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACpD;oBACD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;oBAChD,EAAE,EAAE,aAAa,CAAC,EAAE;oBACpB,KAAK,EAAE,gBAAgB;oBACvB,IAAI,EAAE,WAAoB;iBAC3B,CAAC;YACJ,CAAC;iBAAM,IACL,MAAM,CAAC,IAAI,KAAK,KAAK;gBACrB,MAAM,CAAC,IAAI,KAAK,MAAM;gBACtB,MAAM,CAAC,IAAI,KAAK,UAAU,EAC1B,CAAC;gBACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,gCAAgC;oBAChC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC/D,IAAI,EAAE,EAAE,CAAC;wBACP,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;4BACxD,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;4BACjE,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;yBAC7D,CAAC,CAAC;wBACH,OAAO;4BACL,UAAU,EAAE,GAAG,iBAAiB,CAC9B,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAC5B,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;4BAChC,cAAc,EAAE,GAAG,iBAAiB,CAClC,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CACjC,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;4BACrC,KAAK,EAAE,gBAAgB;4BACvB,gBAAgB;4BAChB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;4BACzC,EAAE,EAAE,EAAE,CAAC,eAAe;4BACtB,KAAK,EAAE,aAAa;4BACpB,WAAW;4BACX,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,IAAI,EAAE,iBAA0B;yBACjC,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,EAAE;YACR,kBAAkB;YAClB,MAAM,CAAC,IAAI;YACX,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;SACpC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;KACvC,CAAC,CAAC;AACL,CAAC;AAQD;;GAEG;AACH,SAAS,uBAAuB,CAAC,EAC/B,MAAM,EACN,aAAa,GACgB;IAC7B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE9E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,KAAC,QAAQ,IAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,GAAI,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAAC,SAAS,IACR,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,IAAI,EAER,KAAK,EAAE;YACL,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACxC,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;YAC/C,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,OAAO,EAAE,OAAO,CAAC,EAAE;SACpB,aAGD,MAAC,SAAS,IACR,IAAI,EAAC,KAAK,EACV,GAAG,EAAC,IAAI,EACR,EAAE,EAAC,KAAK,EACR,KAAK,EAAE;oBACL,UAAU,EAAE,QAAQ;oBACpB,cAAc,EAAE,eAAe;iBAChC,aAED,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAE,GAAG,YAC5C,MAAM,CAAC,KAAK,GACR,EACP,KAAC,SAAS,IACR,KAAK,EAAE;4BACL,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;4BACrC,YAAY,EAAE,MAAM,CAAC,IAAI;4BACzB,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;4BAC/C,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE;yBAC3C,YAED,KAAC,IAAI,IACH,KAAK,EAAE;gCACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;gCAC3B,QAAQ,EAAE,EAAE;gCACZ,aAAa,EAAE,SAAS;6BACzB,0BAGI,GACG,IACF,EAEZ,KAAC,IAAI,KAAG,EAGP,MAAM,CAAC,UAAU,IAAI,CACpB,MAAC,SAAS,IACR,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAE1C,KAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,4BAE9B,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,YAChC,MAAM,CAAC,UAAU,GACb,IACG,CACb,EAGA,MAAM,CAAC,cAAc,IAAI,CACxB,MAAC,SAAS,IACR,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAE1C,KAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,gCAE9B,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,YAChC,MAAM,CAAC,cAAc,GACjB,IACG,CACb,EAGA,MAAM,CAAC,WAAW,IAAI,CACrB,MAAC,SAAS,IACR,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAE1C,KAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,6BAE9B,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,YAChC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GACrC,IACG,CACb,EAGD,MAAC,SAAS,IACR,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAE1C,KAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,kCAE9B,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,YAChC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAC/B,IACG,EAGX,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,CAC9B,MAAC,SAAS,IACR,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAE1C,KAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,2BAE9B,EACP,MAAC,SAAS,IAAC,IAAI,EAAC,KAAK,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,aACxC,KAAC,QAAQ,IAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAC,iBAAiB,GAAG,EAEjE,KAAC,IAAI,IAAC,KAAK,EAAC,aAAa,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAC,IAAI,YAC7C,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GACjB,IACG,IACF,CACb,EAEA,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC9B,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC;gBACnF,OAAO,CACL,MAAC,SAAS,IAER,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAE1C,KAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,iCAE9B,EACP,MAAC,SAAS,IAAC,IAAI,EAAC,KAAK,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,aACxC,KAAC,QAAQ,IACP,IAAI,EAAE,EAAE,CAAC,eAAe,EACxB,QAAQ,EAAE,EAAE,EACZ,GAAG,EAAC,uBAAuB,GAC3B,EAEF,KAAC,IAAI,IACH,IAAI,EAAE,YAAY,EAClB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,YAAY,EAChB,KAAK,EAAC,aAAa,EACnB,UAAU,EAAC,YAAY,EACvB,MAAM,EAAE,GAAG,EACX,IAAI,EAAC,IAAI,YAER,UAAU,CAAC,EAAE,CAAC,eAAe,CAAC,GAC1B,IACG,KA1BP,EAAE,CAAC,eAAe,CA2Bb,CACb,CAAC;YACJ,CAAC,CAAC,KA9JG,MAAM,CAAC,EAAE,CA+JJ,CACb,CAAC;AACJ,CAAC;AAwBD,MAAM,UAAU,cAAc,CAAC,EAC7B,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,aAAa,GACM;IACnB,OAAO,CACL,MAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,UAAU,QAAC,EAAE,EAAC,IAAI,aACzC,KAAC,MAAM,IAAC,CAAC,EAAC,KAAK,GAAG,EAClB,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,iBAAiB,GAAG,EACvD,KAAC,MAAM,IAAC,CAAC,EAAC,KAAK,GAAG,EAElB,KAAC,SAAS,IACR,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,IAAI,EACR,OAAO,QACP,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAGjD,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,YAC9B,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,KAAC,uBAAuB,IAEtB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,IAHvB,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAI9B,CACH,CAAC,GACQ,GACF,EACZ,KAAC,MAAM,IAAC,CAAC,EAAC,KAAK,GAAG,IACR,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { useState } from "react";
|
|
|
6
6
|
import { trackPayEvent } from "../../../../../analytics/track/pay.js";
|
|
7
7
|
import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
|
|
8
8
|
import { iconSize, spacing } from "../../../../core/design-system/index.js";
|
|
9
|
-
import { Container
|
|
9
|
+
import { Container } from "../../components/basic.js";
|
|
10
10
|
import { Button } from "../../components/buttons.js";
|
|
11
11
|
import { Spacer } from "../../components/Spacer.js";
|
|
12
12
|
import { Text } from "../../components/text.js";
|
|
@@ -32,7 +32,7 @@ export function SuccessScreen({ preparedQuote, completedStatuses, onDone, window
|
|
|
32
32
|
if (viewState === "detail") {
|
|
33
33
|
return (_jsx(PaymentReceipt, { completedStatuses: completedStatuses, onBack: () => setViewState("success"), preparedQuote: preparedQuote, windowAdapter: windowAdapter }));
|
|
34
34
|
}
|
|
35
|
-
return (_jsxs(Container, { flex: "column", fullHeight: true, px: "md", pb: "md", pt: "md+", children: [_jsx(
|
|
35
|
+
return (_jsxs(Container, { flex: "column", fullHeight: true, px: "md", pb: "md", pt: "md+", children: [_jsx(Spacer, { y: "3xl" }), _jsxs(Container, { center: "x", flex: "column", gap: "md", children: [_jsx(Container, { center: "both", flex: "row", style: {
|
|
36
36
|
animation: "successBounce 0.6s ease-out",
|
|
37
37
|
border: `2px solid ${theme.colors.success}`,
|
|
38
38
|
borderRadius: "50%",
|
|
@@ -43,11 +43,11 @@ export function SuccessScreen({ preparedQuote, completedStatuses, onDone, window
|
|
|
43
43
|
animation: "checkAppear 0.3s ease-out 0.3s both",
|
|
44
44
|
}, width: iconSize.xl }) }), _jsxs("div", { children: [_jsx(Text, { center: true, color: "primaryText", size: "xl", weight: 600, trackingTight: true, style: {
|
|
45
45
|
marginBottom: spacing.xxs,
|
|
46
|
-
}, children: "Payment Successful
|
|
46
|
+
}, children: "Payment Successful" }), _jsx(Text, { center: true, color: "secondaryText", size: "sm", children: hasPaymentId
|
|
47
47
|
? "You can now close this page and return to the application."
|
|
48
48
|
: showContinueWithTx
|
|
49
49
|
? "Click continue to execute your transaction."
|
|
50
|
-
: "Your payment has been completed successfully." })] })] }), _jsx(Spacer, { y: "
|
|
50
|
+
: "Your payment has been completed successfully." })] })] }), _jsx(Spacer, { y: "3xl" }), _jsxs(Container, { flex: "column", gap: "sm", style: { width: "100%" }, children: [_jsx(Button, { fullWidth: true, onClick: () => setViewState("detail"), variant: "secondary", children: "View Payment Receipt" }), !hasPaymentId && (_jsx(Button, { fullWidth: true, onClick: onDone, variant: "accent", children: showContinueWithTx ? "Continue" : "Done" }))] }), _jsx("style", { children: `
|
|
51
51
|
@keyframes successBounce {
|
|
52
52
|
0% {
|
|
53
53
|
transform: scale(0.3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuccessScreen.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"SuccessScreen.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState } from "react";
|
|
3
|
+
import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
|
|
3
4
|
import { fontSize, iconSize, radius, spacing, } from "../../../../core/design-system/index.js";
|
|
4
5
|
import { Container, Line, ModalHeader } from "../../components/basic.js";
|
|
5
6
|
import { Button } from "../../components/buttons.js";
|
|
@@ -62,14 +63,21 @@ function ChainButtonSkeleton() {
|
|
|
62
63
|
}, children: [_jsx(Skeleton, { height: `${iconSize.lg}px`, width: `${iconSize.lg}px` }), _jsx(Skeleton, { height: fontSize.md, width: "160px" })] }));
|
|
63
64
|
}
|
|
64
65
|
function ChainButton(props) {
|
|
66
|
+
const theme = useCustomTheme();
|
|
67
|
+
const iconSizeValue = props.isMobile ? iconSize.lg : iconSize.md;
|
|
65
68
|
return (_jsxs(Button, { variant: props.isSelected ? "secondary" : "ghost-solid", fullWidth: true, style: {
|
|
66
69
|
justifyContent: "flex-start",
|
|
67
70
|
fontWeight: 500,
|
|
68
71
|
fontSize: props.isMobile ? fontSize.md : fontSize.sm,
|
|
69
72
|
border: "1px solid transparent",
|
|
70
73
|
padding: !props.isMobile ? `${spacing.xs} ${spacing.xs}` : undefined,
|
|
71
|
-
}, onClick: props.onClick, gap: "sm", children: [_jsx(Img, { src: props.chain.icon, client: props.client, width:
|
|
74
|
+
}, onClick: props.onClick, gap: "sm", children: [_jsx(Img, { src: props.chain.icon || "", client: props.client, width: iconSizeValue, height: iconSizeValue, style: {
|
|
72
75
|
borderRadius: radius.full,
|
|
73
|
-
}
|
|
76
|
+
}, fallback: _jsx(Container, { color: "secondaryText", children: _jsx(Container, { style: {
|
|
77
|
+
background: `linear-gradient(45deg, white, ${theme.colors.accentText})`,
|
|
78
|
+
borderRadius: radius.full,
|
|
79
|
+
width: `${iconSizeValue}px`,
|
|
80
|
+
height: `${iconSizeValue}px`,
|
|
81
|
+
} }) }) }), cleanedChainName(props.chain.name)] }));
|
|
74
82
|
}
|
|
75
83
|
//# sourceMappingURL=select-chain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-chain.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/swap-widget/select-chain.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"select-chain.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/swap-widget/select-chain.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo, useState } from "react";
|
|
2
|
+
import { useCallback, useMemo, useState } from "react";
|
|
3
3
|
import { toTokens } from "../../../../../utils/units.js";
|
|
4
4
|
import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
|
|
5
5
|
import { fontSize, iconSize, radius, spacing, } from "../../../../core/design-system/index.js";
|
|
6
|
-
import { CoinsIcon } from "../../ConnectWallet/icons/CoinsIcon.js";
|
|
7
|
-
import { WalletDotIcon } from "../../ConnectWallet/icons/WalletDotIcon.js";
|
|
8
6
|
import { Container, noScrollBar } from "../../components/basic.js";
|
|
9
7
|
import { Button } from "../../components/buttons.js";
|
|
10
8
|
import { Img } from "../../components/Img.js";
|
|
@@ -27,14 +25,17 @@ function findChain(chains, activeChainId) {
|
|
|
27
25
|
}
|
|
28
26
|
return chains.find((chain) => chain.chainId === activeChainId);
|
|
29
27
|
}
|
|
28
|
+
const ALL_TOKENS_LIMIT = 100;
|
|
29
|
+
const OWNED_TOKENS_LIMIT = 50;
|
|
30
30
|
/**
|
|
31
31
|
* @internal
|
|
32
32
|
*/
|
|
33
33
|
export function SelectToken(props) {
|
|
34
34
|
const chainQuery = useBridgeChains(props.client);
|
|
35
|
-
const [search,
|
|
35
|
+
const [search, _setSearch] = useState("");
|
|
36
36
|
const debouncedSearch = useDebouncedValue(search, 500);
|
|
37
|
-
const [
|
|
37
|
+
const [allTokensLimit, setAllTokensLimit] = useState(ALL_TOKENS_LIMIT);
|
|
38
|
+
const [ownedTokensLimit, setOwnedTokensLimit] = useState(OWNED_TOKENS_LIMIT);
|
|
38
39
|
const [_selectedChain, setSelectedChain] = useState(undefined);
|
|
39
40
|
const selectedChain = _selectedChain ||
|
|
40
41
|
(chainQuery.data
|
|
@@ -47,14 +48,14 @@ export function SelectToken(props) {
|
|
|
47
48
|
client: props.client,
|
|
48
49
|
chainId: selectedChain?.chainId,
|
|
49
50
|
search: debouncedSearch,
|
|
50
|
-
limit,
|
|
51
|
+
limit: allTokensLimit,
|
|
51
52
|
offset: 0,
|
|
52
53
|
});
|
|
53
54
|
// owned tokens
|
|
54
55
|
const ownedTokensQuery = useTokenBalances({
|
|
55
56
|
clientId: props.client.clientId,
|
|
56
57
|
chainId: selectedChain?.chainId,
|
|
57
|
-
limit,
|
|
58
|
+
limit: ownedTokensLimit,
|
|
58
59
|
page: 1,
|
|
59
60
|
walletAddress: props.activeWalletInfo?.activeAccount.address,
|
|
60
61
|
});
|
|
@@ -67,19 +68,35 @@ export function SelectToken(props) {
|
|
|
67
68
|
.includes(debouncedSearch.toLowerCase()));
|
|
68
69
|
});
|
|
69
70
|
}, [ownedTokensQuery.data?.tokens, debouncedSearch]);
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
const setSearch = useCallback((search) => {
|
|
72
|
+
_setSearch(search);
|
|
73
|
+
setAllTokensLimit(ALL_TOKENS_LIMIT);
|
|
74
|
+
setOwnedTokensLimit(OWNED_TOKENS_LIMIT);
|
|
75
|
+
}, []);
|
|
76
|
+
return (_jsx(SelectTokenUI, { ...props, ownedTokens: {
|
|
77
|
+
data: filteredOwnedTokens || [],
|
|
78
|
+
isFetching: ownedTokensQuery.isFetching,
|
|
79
|
+
showMore: ownedTokensQuery.data?.pagination.hasMore
|
|
80
|
+
? () => {
|
|
81
|
+
setOwnedTokensLimit(ownedTokensLimit + OWNED_TOKENS_LIMIT);
|
|
82
|
+
}
|
|
83
|
+
: undefined,
|
|
84
|
+
}, allTokens: {
|
|
85
|
+
data: tokensQuery.data || [],
|
|
86
|
+
isFetching: tokensQuery.isFetching,
|
|
87
|
+
showMore: tokensQuery.data?.length === allTokensLimit
|
|
88
|
+
? () => {
|
|
89
|
+
setAllTokensLimit(allTokensLimit + ALL_TOKENS_LIMIT);
|
|
90
|
+
}
|
|
91
|
+
: undefined,
|
|
92
|
+
}, selectedChain: selectedChain, setSelectedChain: setSelectedChain, search: search, setSearch: setSearch, selectedToken: props.selectedToken, setSelectedToken: props.setSelectedToken }));
|
|
76
93
|
}
|
|
77
94
|
function SelectTokenUI(props) {
|
|
78
95
|
const isMobile = useIsMobile();
|
|
79
96
|
const [screen, setScreen] = useState("select-token");
|
|
80
97
|
// show tokens with icons first
|
|
81
98
|
const sortedOwnedTokens = useMemo(() => {
|
|
82
|
-
return props.ownedTokens.sort((a, b) => {
|
|
99
|
+
return props.ownedTokens.data.sort((a, b) => {
|
|
83
100
|
if (a.icon_uri && !b.icon_uri) {
|
|
84
101
|
return -1;
|
|
85
102
|
}
|
|
@@ -88,14 +105,10 @@ function SelectTokenUI(props) {
|
|
|
88
105
|
}
|
|
89
106
|
return 0;
|
|
90
107
|
});
|
|
91
|
-
}, [props.ownedTokens]);
|
|
92
|
-
const otherTokens = useMemo(() => {
|
|
93
|
-
const ownedTokenSet = new Set(sortedOwnedTokens.map((t) => `${t.token_address}-${t.chain_id}`.toLowerCase()));
|
|
94
|
-
return props.allTokens.filter((token) => !ownedTokenSet.has(`${token.address}-${token.chainId}`.toLowerCase()));
|
|
95
|
-
}, [props.allTokens, sortedOwnedTokens]);
|
|
108
|
+
}, [props.ownedTokens.data]);
|
|
96
109
|
// show tokens with icons first
|
|
97
|
-
const
|
|
98
|
-
return
|
|
110
|
+
const sortedAllTokens = useMemo(() => {
|
|
111
|
+
return props.allTokens.data.sort((a, b) => {
|
|
99
112
|
if (a.iconUri && !b.iconUri) {
|
|
100
113
|
return -1;
|
|
101
114
|
}
|
|
@@ -104,7 +117,7 @@ function SelectTokenUI(props) {
|
|
|
104
117
|
}
|
|
105
118
|
return 0;
|
|
106
119
|
});
|
|
107
|
-
}, [
|
|
120
|
+
}, [props.allTokens.data]);
|
|
108
121
|
// desktop
|
|
109
122
|
if (!isMobile) {
|
|
110
123
|
return (_jsxs(Container, { style: {
|
|
@@ -117,13 +130,25 @@ function SelectTokenUI(props) {
|
|
|
117
130
|
}, selectedChain: props.selectedChain }) }), _jsx(Container, { flex: "column", relative: true, scrollY: true, children: _jsx(TokenSelectionScreen, { onSelectToken: (token) => {
|
|
118
131
|
props.setSelectedToken(token);
|
|
119
132
|
props.onClose();
|
|
120
|
-
}, isMobile: false, selectedToken: props.selectedToken,
|
|
133
|
+
}, isMobile: false, selectedToken: props.selectedToken, ownedTokens: {
|
|
134
|
+
...props.ownedTokens,
|
|
135
|
+
data: sortedOwnedTokens,
|
|
136
|
+
}, allTokens: {
|
|
137
|
+
...props.allTokens,
|
|
138
|
+
data: sortedAllTokens,
|
|
139
|
+
}, selectedChain: props.selectedChain, onSelectChain: () => setScreen("select-chain"), client: props.client, search: props.search, setSearch: props.setSearch, isWalletConnected: props.activeWalletInfo !== undefined }) })] }));
|
|
121
140
|
}
|
|
122
141
|
if (screen === "select-token") {
|
|
123
|
-
return (_jsx(TokenSelectionScreen, { onSelectToken: (token) => {
|
|
142
|
+
return (_jsx(TokenSelectionScreen, { isWalletConnected: props.activeWalletInfo !== undefined, onSelectToken: (token) => {
|
|
124
143
|
props.setSelectedToken(token);
|
|
125
144
|
props.onClose();
|
|
126
|
-
}, selectedToken: props.selectedToken,
|
|
145
|
+
}, selectedToken: props.selectedToken, ownedTokens: {
|
|
146
|
+
...props.ownedTokens,
|
|
147
|
+
data: sortedOwnedTokens,
|
|
148
|
+
}, allTokens: {
|
|
149
|
+
...props.allTokens,
|
|
150
|
+
data: sortedAllTokens,
|
|
151
|
+
}, selectedChain: props.selectedChain, isMobile: true, onSelectChain: () => setScreen("select-chain"), client: props.client, search: props.search, setSearch: props.setSearch }));
|
|
127
152
|
}
|
|
128
153
|
if (screen === "select-chain") {
|
|
129
154
|
return (_jsx(SelectBridgeChain, { isMobile: true, onBack: () => setScreen("select-token"), client: props.client, onSelectChain: (chain) => {
|
|
@@ -201,48 +226,50 @@ function TokenButton(props) {
|
|
|
201
226
|
}, children: props.token.name }), usdValue && (_jsx(Container, { flex: "row", children: _jsxs(Text, { size: "xs", color: "secondaryText", weight: 400, children: ["$", usdValue.toFixed(2)] }) }))] })] })] }));
|
|
202
227
|
}
|
|
203
228
|
function TokenSelectionScreen(props) {
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
229
|
+
const noAllTokensFound = !props.allTokens.isFetching && props.allTokens.data.length === 0;
|
|
230
|
+
const noOwnedTokensFound = !props.ownedTokens.isFetching && props.ownedTokens.data.length === 0;
|
|
231
|
+
const [activeTab, setActiveTab] = useState("all");
|
|
232
|
+
const showSkeletons = (props.allTokens.isFetching && activeTab === "all") ||
|
|
233
|
+
(props.ownedTokens.isFetching && activeTab === "owned");
|
|
234
|
+
const showNoTokensFound = (activeTab === "all" && noAllTokensFound) ||
|
|
235
|
+
(activeTab === "owned" && noOwnedTokensFound);
|
|
236
|
+
const theme = useCustomTheme();
|
|
237
|
+
return (_jsxs(Container, { fullHeight: true, flex: "column", children: [_jsxs(Container, { px: "md", pt: "md+", children: [_jsx(Text, { size: "lg", weight: 600, color: "primaryText", trackingTight: true, children: "Select Token" }), _jsx(Spacer, { y: "3xs" }), _jsx(Text, { size: "sm", color: "secondaryText", multiline: true, style: {
|
|
208
238
|
textWrap: "pretty",
|
|
209
|
-
|
|
210
|
-
}, children: "Select a token from the list or search for a token by symbol or address" })] }), !props.selectedChain && (_jsx("div", { style: {
|
|
239
|
+
}, children: "Select a token from the list or use the search" })] }), !props.selectedChain && (_jsx("div", { style: {
|
|
211
240
|
display: "flex",
|
|
212
241
|
alignItems: "center",
|
|
213
242
|
justifyContent: "center",
|
|
214
|
-
minHeight: "
|
|
215
|
-
}, children: _jsx(Spinner, { color: "secondaryText", size: "xl" }) })), props.selectedChain && (_jsxs(_Fragment, { children: [props.isMobile ? (_jsx(Container, { p: "md", children: _jsx(SelectChainButton, { onClick: props.onSelectChain, selectedChain: props.selectedChain, client: props.client }) })) : (_jsx(Spacer, { y: "md" })), _jsx(Container, { px: "md", children: _jsx(SearchInput, { value: props.search, onChange: props.setSearch, placeholder: "Search by token or address", autoFocus: !props.isMobile }) }), _jsx(Spacer, { y: "xs" }), _jsxs(Container, { pb: "md", px: "md", expand: true, gap: "xxs", flex: "column", style: {
|
|
216
|
-
minHeight: "
|
|
243
|
+
minHeight: "300px",
|
|
244
|
+
}, children: _jsx(Spinner, { color: "secondaryText", size: "xl" }) })), props.selectedChain && (_jsxs(_Fragment, { children: [props.isMobile ? (_jsx(Container, { p: "md", children: _jsx(SelectChainButton, { onClick: props.onSelectChain, selectedChain: props.selectedChain, client: props.client }) })) : (_jsx(Spacer, { y: "md" })), _jsx(Container, { px: "md", children: _jsx(SearchInput, { value: props.search, onChange: props.setSearch, placeholder: "Search by token or address", autoFocus: !props.isMobile }) }), _jsx(Spacer, { y: "sm" }), props.isWalletConnected && (_jsxs(Container, { flex: "row", gap: "xs", px: "md", style: { borderBottom: `1px solid ${theme.colors.borderColor}` }, children: [_jsx(TabButton, { isSelected: activeTab === "all", onSelect: () => setActiveTab("all"), label: "All Tokens" }), _jsx(TabButton, { isSelected: activeTab === "owned", onSelect: () => setActiveTab("owned"), label: "Your Tokens" })] })), _jsxs(Container, { pb: "md", px: "md", expand: true, gap: "xxs", flex: "column", style: {
|
|
245
|
+
minHeight: "300px",
|
|
217
246
|
maxHeight: props.isMobile ? "450px" : "none",
|
|
218
247
|
overflowY: "auto",
|
|
219
248
|
scrollbarWidth: "none",
|
|
220
249
|
paddingBottom: spacing.md,
|
|
221
|
-
}, children: [props.
|
|
250
|
+
}, children: [props.isWalletConnected && _jsx(Spacer, { y: "xxs" }), showSkeletons &&
|
|
222
251
|
new Array(20).fill(0).map((_, i) => (
|
|
223
252
|
// biome-ignore lint/suspicious/noArrayIndexKey: ok
|
|
224
|
-
_jsx(TokenButtonSkeleton, {}, i))),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
props.ownedTokens.map((token) => (_jsx(TokenButton, { token: token, client: props.client, onSelect: props.onSelectToken, isSelected: !!props.selectedToken &&
|
|
253
|
+
_jsx(TokenButtonSkeleton, {}, i))), activeTab === "owned" &&
|
|
254
|
+
!props.ownedTokens.isFetching &&
|
|
255
|
+
props.ownedTokens.data.map((token) => (_jsx(TokenButton, { token: token, client: props.client, onSelect: props.onSelectToken, isSelected: !!props.selectedToken &&
|
|
228
256
|
props.selectedToken.tokenAddress.toLowerCase() ===
|
|
229
257
|
token.token_address.toLowerCase() &&
|
|
230
|
-
token.chain_id === props.selectedToken.chainId }, token.token_address))),
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
overflow: "unset",
|
|
234
|
-
}, children: "Other Tokens" })] })), !props.isFetching &&
|
|
235
|
-
props.otherTokens.map((token) => (_jsx(TokenButton, { token: token, client: props.client, onSelect: props.onSelectToken, isSelected: !!props.selectedToken &&
|
|
258
|
+
token.chain_id === props.selectedToken.chainId }, token.token_address))), activeTab === "all" &&
|
|
259
|
+
!props.allTokens.isFetching &&
|
|
260
|
+
props.allTokens.data.map((token) => (_jsx(TokenButton, { token: token, client: props.client, onSelect: props.onSelectToken, isSelected: !!props.selectedToken &&
|
|
236
261
|
props.selectedToken.tokenAddress.toLowerCase() ===
|
|
237
262
|
token.address.toLowerCase() &&
|
|
238
|
-
token.chainId === props.selectedToken.chainId }, token.address))), props.showMore && (_jsx(Button, { variant: "secondary", fullWidth: true, onClick: () => {
|
|
239
|
-
props.showMore?.();
|
|
240
|
-
}, children: "Load More" })),
|
|
263
|
+
token.chainId === props.selectedToken.chainId }, token.address))), activeTab === "all" && props.allTokens.showMore && (_jsx(Button, { variant: "secondary", fullWidth: true, onClick: () => {
|
|
264
|
+
props.allTokens.showMore?.();
|
|
265
|
+
}, children: "Load More" })), activeTab === "owned" && props.ownedTokens.showMore && (_jsx(Button, { variant: "secondary", fullWidth: true, onClick: () => {
|
|
266
|
+
props.ownedTokens.showMore?.();
|
|
267
|
+
}, children: "Load More" })), showNoTokensFound && (_jsx("div", { style: {
|
|
241
268
|
flex: 1,
|
|
242
269
|
display: "flex",
|
|
243
270
|
alignItems: "center",
|
|
244
271
|
justifyContent: "center",
|
|
245
|
-
}, children: _jsx(Text, { size: "
|
|
272
|
+
}, children: _jsx(Text, { size: "sm", color: "secondaryText", children: "No Tokens Found" }) }))] })] }))] }));
|
|
246
273
|
}
|
|
247
274
|
const LeftContainer = /* @__PURE__ */ StyledDiv((_) => {
|
|
248
275
|
const theme = useCustomTheme();
|
|
@@ -255,4 +282,23 @@ const LeftContainer = /* @__PURE__ */ StyledDiv((_) => {
|
|
|
255
282
|
position: "relative",
|
|
256
283
|
};
|
|
257
284
|
});
|
|
285
|
+
function TabButton(props) {
|
|
286
|
+
const theme = useCustomTheme();
|
|
287
|
+
return (_jsxs("div", { style: {
|
|
288
|
+
paddingBottom: "4px",
|
|
289
|
+
position: "relative",
|
|
290
|
+
}, children: [_jsx(Button, { variant: "ghost-solid", onClick: props.onSelect, style: {
|
|
291
|
+
fontSize: fontSize.sm,
|
|
292
|
+
padding: `10px ${spacing.xs}`,
|
|
293
|
+
color: props.isSelected
|
|
294
|
+
? theme.colors.primaryText
|
|
295
|
+
: theme.colors.secondaryText,
|
|
296
|
+
}, children: props.label }), props.isSelected && (_jsx("div", { style: {
|
|
297
|
+
position: "absolute",
|
|
298
|
+
left: 0,
|
|
299
|
+
right: 0,
|
|
300
|
+
bottom: "-1.5px",
|
|
301
|
+
borderBottom: `2px solid ${theme.colors.primaryText}`,
|
|
302
|
+
} }))] }));
|
|
303
|
+
}
|
|
258
304
|
//# sourceMappingURL=select-token-ui.js.map
|