0xtrails 0.12.2 → 0.13.0
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/abis/trailsHydrate.d.ts.map +1 -1
- package/dist/analytics.d.ts +41 -0
- package/dist/analytics.d.ts.map +1 -1
- package/dist/{ccip-62W6LwH2.js → ccip-Cg9-lJ6K.js} +16 -16
- package/dist/chainSwitch.d.ts.map +1 -1
- package/dist/chains.d.ts +9 -3
- package/dist/chains.d.ts.map +1 -1
- package/dist/error.d.ts +1 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/{index-C0QTNYIA.js → index-DEojZg7b.js} +50431 -50424
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +377 -421
- package/dist/intentReceiptPoller.d.ts.map +1 -1
- package/dist/intents.d.ts +1 -3
- package/dist/intents.d.ts.map +1 -1
- package/dist/mutations.d.ts +1 -4
- package/dist/mutations.d.ts.map +1 -1
- package/dist/prepareSend.d.ts.map +1 -1
- package/dist/query/balance.hooks.d.ts.map +1 -1
- package/dist/query/chains.hooks.d.ts.map +1 -1
- package/dist/query/chains.queries.d.ts +4 -1
- package/dist/query/chains.queries.d.ts.map +1 -1
- package/dist/queryParams.d.ts.map +1 -1
- package/dist/recover.d.ts.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -1
- package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -1
- package/dist/transactionIntent/deposits/standardDeposit.d.ts +1 -7
- package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -1
- package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
- package/dist/transactionIntent/helpers/transactionStateHelpers.d.ts +10 -1
- package/dist/transactionIntent/helpers/transactionStateHelpers.d.ts.map +1 -1
- package/dist/transactionIntent/types.d.ts +3 -6
- package/dist/transactionIntent/types.d.ts.map +1 -1
- package/dist/transactionIntent/utils/resilientDepositTracker.d.ts +3 -3
- package/dist/transactionIntent/utils/resilientDepositTracker.d.ts.map +1 -1
- package/dist/transactions.d.ts +2 -0
- package/dist/transactions.d.ts.map +1 -1
- package/dist/umd/trails.min.js +200 -200
- package/dist/walletUtils.d.ts +4 -0
- package/dist/walletUtils.d.ts.map +1 -1
- package/dist/wallets.d.ts +2 -1
- package/dist/wallets.d.ts.map +1 -1
- package/dist/widget/components/AccountActionsDropdown.d.ts.map +1 -1
- package/dist/widget/components/AccountIntentTransactionHistoryButton.d.ts.map +1 -1
- package/dist/widget/components/AccountSettings.d.ts.map +1 -1
- package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
- package/dist/widget/components/ConnectWallet.d.ts.map +1 -1
- package/dist/widget/components/ConnectedWallets.d.ts +5 -1
- package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
- package/dist/widget/components/DepositTracker.d.ts +1 -1
- package/dist/widget/components/DepositTracker.d.ts.map +1 -1
- package/dist/widget/components/DirectTransfer.d.ts +0 -8
- package/dist/widget/components/DirectTransfer.d.ts.map +1 -1
- package/dist/widget/components/Fund.d.ts +1 -1
- package/dist/widget/components/Fund.d.ts.map +1 -1
- package/dist/widget/components/FundMethods.d.ts.map +1 -1
- package/dist/widget/components/FundWalletSelection.d.ts +0 -8
- package/dist/widget/components/FundWalletSelection.d.ts.map +1 -1
- package/dist/widget/components/FundingMethodSelectorButton.d.ts +1 -1
- package/dist/widget/components/FundingMethodSelectorButton.d.ts.map +1 -1
- package/dist/widget/components/MeldStepsFlow.d.ts.map +1 -1
- package/dist/widget/components/OnrampErrorScreen.d.ts.map +1 -1
- package/dist/widget/components/OnrampPaymentMethods.d.ts.map +1 -1
- package/dist/widget/components/OnrampProviderConfirmation.d.ts +0 -6
- package/dist/widget/components/OnrampProviderConfirmation.d.ts.map +1 -1
- package/dist/widget/components/Pay.d.ts.map +1 -1
- package/dist/widget/components/QrCode.d.ts.map +1 -1
- package/dist/widget/components/QuoteDetails.d.ts.map +1 -1
- package/dist/widget/components/Receipt.d.ts.map +1 -1
- package/dist/widget/components/ReceiptRecoverableFunds.d.ts +25 -0
- package/dist/widget/components/ReceiptRecoverableFunds.d.ts.map +1 -0
- package/dist/widget/components/RecipientSelectorButton.d.ts +3 -1
- package/dist/widget/components/RecipientSelectorButton.d.ts.map +1 -1
- package/dist/widget/components/Recipients.d.ts.map +1 -1
- package/dist/widget/components/Swap.d.ts +2 -16
- package/dist/widget/components/Swap.d.ts.map +1 -1
- package/dist/widget/components/TokenSelector.d.ts.map +1 -1
- package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
- package/dist/widget/components/TransactionHistoryItem.d.ts.map +1 -1
- package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
- package/dist/widget/components/TruncatedTransactionHash.d.ts.map +1 -1
- package/dist/widget/components/WalletConfirmation.d.ts.map +1 -1
- package/dist/widget/components/WalletConnect.d.ts.map +1 -1
- package/dist/widget/components/WidgetProviders.d.ts.map +1 -1
- package/dist/widget/components/Withdraw.d.ts.map +1 -1
- package/dist/widget/css/compiled.css +1 -1
- package/dist/widget/hooks/useClickTracking.d.ts.map +1 -1
- package/dist/widget/hooks/useDebugScreens.d.ts +1 -10
- package/dist/widget/hooks/useDebugScreens.d.ts.map +1 -1
- package/dist/widget/hooks/useDepositMonitor.d.ts +2 -4
- package/dist/widget/hooks/useDepositMonitor.d.ts.map +1 -1
- package/dist/widget/hooks/useExternalFundingReceiptSync.d.ts +11 -0
- package/dist/widget/hooks/useExternalFundingReceiptSync.d.ts.map +1 -0
- package/dist/widget/hooks/useIntentReceiptBalances.d.ts +16 -0
- package/dist/widget/hooks/useIntentReceiptBalances.d.ts.map +1 -0
- package/dist/widget/hooks/useQuote.d.ts +0 -4
- package/dist/widget/hooks/useQuote.d.ts.map +1 -1
- package/dist/widget/hooks/useScreenTracking.d.ts +2 -0
- package/dist/widget/hooks/useScreenTracking.d.ts.map +1 -0
- package/dist/widget/hooks/useSelectedFundMethod.d.ts +0 -2
- package/dist/widget/hooks/useSelectedFundMethod.d.ts.map +1 -1
- package/dist/widget/hooks/useSendForm.d.ts +0 -4
- package/dist/widget/hooks/useSendForm.d.ts.map +1 -1
- package/dist/widget/hooks/useTokenList.d.ts.map +1 -1
- package/dist/widget/hooks/useTrailsSendTransaction.d.ts.map +1 -1
- package/dist/widget/hooks/useViewManager.d.ts +89 -0
- package/dist/widget/hooks/useViewManager.d.ts.map +1 -0
- package/dist/widget/hooks/useWalletConnectUri.d.ts.map +1 -1
- package/dist/widget/hooks/useWalletConnectionContext.d.ts +1 -1
- package/dist/widget/hooks/useWalletConnectionContext.d.ts.map +1 -1
- package/dist/widget/index.d.ts +1 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +7 -6
- package/dist/widget/providers/TrailsProvider.d.ts.map +1 -1
- package/dist/widget/types/commonProps.d.ts +1 -6
- package/dist/widget/types/commonProps.d.ts.map +1 -1
- package/dist/widget/utils/forexRateStore.d.ts.map +1 -1
- package/dist/widget/utils/fundMethodSwitchState.d.ts +10 -0
- package/dist/widget/utils/fundMethodSwitchState.d.ts.map +1 -0
- package/dist/widget/utils/localeStore.d.ts.map +1 -1
- package/dist/widget/utils/viewManagerGuards.d.ts +5 -0
- package/dist/widget/utils/viewManagerGuards.d.ts.map +1 -0
- package/dist/widget/widget.d.ts +23 -2
- package/dist/widget/widget.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/abis/trailsHydrate.ts +2 -1
- package/src/analytics.ts +60 -0
- package/src/chainSwitch.ts +11 -8
- package/src/chains.ts +82 -37
- package/src/constants.ts +2 -2
- package/src/error.ts +8 -0
- package/src/index.ts +1 -12
- package/src/intentReceiptPoller.ts +27 -0
- package/src/intents.ts +36 -87
- package/src/mutations.ts +11 -102
- package/src/onramp-client/index.ts +3 -3
- package/src/prepareSend.ts +6 -2
- package/src/query/balance.hooks.ts +31 -10
- package/src/query/chains.hooks.ts +7 -1
- package/src/query/chains.queries.ts +8 -5
- package/src/queryParams.ts +8 -6
- package/src/recover.ts +9 -9
- package/src/tokens.ts +4 -2
- package/src/transactionIntent/deposits/depositOrchestrator.ts +0 -2
- package/src/transactionIntent/deposits/gaslessDeposit.ts +8 -0
- package/src/transactionIntent/deposits/standardDeposit.ts +25 -35
- package/src/transactionIntent/handlers/intentHandler.ts +234 -138
- package/src/transactionIntent/helpers/transactionStateHelpers.ts +108 -1
- package/src/transactionIntent/types.ts +14 -8
- package/src/transactionIntent/utils/resilientDepositTracker.ts +72 -183
- package/src/transactions.ts +16 -0
- package/src/walletUtils.ts +188 -1
- package/src/wallets.ts +50 -15
- package/src/widget/compiled.css +1 -1
- package/src/widget/components/AccountActionsDropdown.tsx +4 -6
- package/src/widget/components/AccountIntentTransactionHistoryButton.tsx +4 -6
- package/src/widget/components/AccountSettings.tsx +36 -22
- package/src/widget/components/ClassicSwap.tsx +67 -9
- package/src/widget/components/ConnectWallet.tsx +5 -7
- package/src/widget/components/ConnectedWallets.tsx +143 -82
- package/src/widget/components/DepositTracker.tsx +4 -5
- package/src/widget/components/DirectTransfer.tsx +85 -84
- package/src/widget/components/Earn.tsx +3 -3
- package/src/widget/components/Fund.tsx +90 -17
- package/src/widget/components/FundMethods.tsx +77 -43
- package/src/widget/components/FundWalletSelection.tsx +13 -397
- package/src/widget/components/FundingMethodSelectorButton.tsx +11 -10
- package/src/widget/components/MeldStepsFlow.tsx +64 -30
- package/src/widget/components/OnrampErrorScreen.tsx +2 -18
- package/src/widget/components/OnrampPaymentMethods.tsx +4 -6
- package/src/widget/components/OnrampProviderConfirmation.tsx +91 -110
- package/src/widget/components/OriginTransferInformation.tsx +2 -2
- package/src/widget/components/Pay.tsx +27 -7
- package/src/widget/components/PaymentMethods.tsx +10 -10
- package/src/widget/components/PoolDeposit.tsx +2 -2
- package/src/widget/components/QrCode.tsx +13 -11
- package/src/widget/components/QuoteDetails.tsx +16 -6
- package/src/widget/components/Receipt.tsx +66 -6
- package/src/widget/components/ReceiptRecoverableFunds.tsx +135 -0
- package/src/widget/components/RecipientSelectorButton.tsx +6 -17
- package/src/widget/components/Recipients.tsx +38 -29
- package/src/widget/components/Swap.tsx +2 -25
- package/src/widget/components/TokenList.tsx +2 -2
- package/src/widget/components/TokenSelector.tsx +11 -11
- package/src/widget/components/TokenSelectorButton.tsx +3 -3
- package/src/widget/components/TrailsHookModal.tsx +1 -1
- package/src/widget/components/TransactionDetails.tsx +43 -37
- package/src/widget/components/TransactionHistoryItem.tsx +1 -42
- package/src/widget/components/TransferPendingVertical.tsx +11 -4
- package/src/widget/components/TruncatedTransactionHash.tsx +5 -0
- package/src/widget/components/WalletConfirmation.tsx +5 -8
- package/src/widget/components/WalletConnect.tsx +6 -2
- package/src/widget/components/WidgetProviders.tsx +34 -43
- package/src/widget/components/Withdraw.tsx +25 -11
- package/src/widget/hooks/useClickTracking.ts +5 -0
- package/src/widget/hooks/useDebugScreens.ts +40 -86
- package/src/widget/hooks/useDepositMonitor.ts +14 -149
- package/src/widget/hooks/useExternalFundingReceiptSync.ts +79 -0
- package/src/widget/hooks/useIntentReceiptBalances.ts +141 -0
- package/src/widget/hooks/useQuote.ts +7 -16
- package/src/widget/hooks/useScreenTracking.ts +14 -0
- package/src/widget/hooks/useSelectedFundMethod.tsx +0 -5
- package/src/widget/hooks/useSendForm.ts +5 -14
- package/src/widget/hooks/useTokenList.ts +3 -16
- package/src/widget/hooks/useTrailsSendTransaction.ts +1 -5
- package/src/widget/hooks/useViewManager.tsx +505 -0
- package/src/widget/hooks/useWalletConnectUri.tsx +77 -18
- package/src/widget/hooks/useWalletConnectionContext.tsx +1 -1
- package/src/widget/index.tsx +1 -0
- package/src/widget/providers/TrailsProvider.tsx +0 -41
- package/src/widget/styles.ts +1 -1
- package/src/widget/types/commonProps.ts +0 -8
- package/src/widget/utils/forexRateStore.ts +0 -2
- package/src/widget/utils/fundMethodSwitchState.ts +25 -0
- package/src/widget/utils/localeStore.ts +0 -1
- package/src/widget/utils/viewManagerGuards.ts +49 -0
- package/src/widget/widget.tsx +405 -316
- package/dist/intentStorage.d.ts +0 -24
- package/dist/intentStorage.d.ts.map +0 -1
- package/dist/mode.d.ts +0 -2
- package/dist/mode.d.ts.map +0 -1
- package/dist/widget/hooks/useBack.d.ts +0 -22
- package/dist/widget/hooks/useBack.d.ts.map +0 -1
- package/dist/widget/hooks/useCurrentScreen.d.ts +0 -13
- package/dist/widget/hooks/useCurrentScreen.d.ts.map +0 -1
- package/dist/widget/hooks/useInitialRedirect.d.ts +0 -7
- package/dist/widget/hooks/useInitialRedirect.d.ts.map +0 -1
- package/dist/widget/hooks/useMode.d.ts +0 -20
- package/dist/widget/hooks/useMode.d.ts.map +0 -1
- package/dist/widget/hooks/usePreviousScreen.d.ts +0 -12
- package/dist/widget/hooks/usePreviousScreen.d.ts.map +0 -1
- package/dist/widget/workers/intentExecutionWorker.d.ts +0 -73
- package/dist/widget/workers/intentExecutionWorker.d.ts.map +0 -1
- package/src/intentStorage.ts +0 -106
- package/src/mode.ts +0 -1
- package/src/widget/hooks/useBack.tsx +0 -210
- package/src/widget/hooks/useCurrentScreen.tsx +0 -73
- package/src/widget/hooks/useInitialRedirect.tsx +0 -70
- package/src/widget/hooks/useMode.tsx +0 -51
- package/src/widget/hooks/usePreviousScreen.ts +0 -36
- package/src/widget/workers/intentExecutionWorker.ts +0 -502
|
@@ -2,8 +2,6 @@ import type { ReactNode } from "react"
|
|
|
2
2
|
import type { TrailsWidgetProps } from "../widget.js"
|
|
3
3
|
import { WidgetPropsProvider } from "../hooks/useWidgetProps.js"
|
|
4
4
|
import { ToastProvider } from "./Toast.js"
|
|
5
|
-
import { CurrentScreenProvider } from "../hooks/useCurrentScreen.js"
|
|
6
|
-
import { BackProvider } from "../hooks/useBack.js"
|
|
7
5
|
import { WalletConnectionProvider } from "../hooks/useWalletConnectionContext.js"
|
|
8
6
|
import { OriginSelectedTokenProvider } from "../hooks/useOriginSelectedToken.js"
|
|
9
7
|
import { DestinationSelectedTokenProvider } from "../hooks/useDestinationSelectedToken.js"
|
|
@@ -19,9 +17,8 @@ import { DisplayCurrencyPreferenceProvider } from "../hooks/useDisplayCurrencyPr
|
|
|
19
17
|
import { SelectedFundMethodProvider } from "../hooks/useSelectedFundMethod.js"
|
|
20
18
|
import { EarnPoolProvider } from "../hooks/useEarnPool.js"
|
|
21
19
|
import { SwapStateProvider } from "../hooks/useSwapState.js"
|
|
22
|
-
import { PreviousScreenProvider } from "../hooks/usePreviousScreen.js"
|
|
23
|
-
import { ModeProvider } from "../hooks/useMode.js"
|
|
24
20
|
import { DEFAULT_MODE } from "../../constants.js"
|
|
21
|
+
import { ViewManagerProvider } from "../hooks/useViewManager.js"
|
|
25
22
|
|
|
26
23
|
// Default props for hook modal (minimal required config)
|
|
27
24
|
const DEFAULT_HOOK_MODAL_PROPS: TrailsWidgetProps = {
|
|
@@ -45,47 +42,41 @@ export function WidgetProviders({
|
|
|
45
42
|
}: WidgetProvidersProps) {
|
|
46
43
|
return (
|
|
47
44
|
<WidgetPropsProvider props={props}>
|
|
48
|
-
<
|
|
45
|
+
<ViewManagerProvider configuredMode={props?.mode ?? DEFAULT_MODE}>
|
|
49
46
|
<ToastProvider>
|
|
50
|
-
<
|
|
51
|
-
<
|
|
52
|
-
<
|
|
53
|
-
<
|
|
54
|
-
<
|
|
55
|
-
<
|
|
56
|
-
<
|
|
57
|
-
<
|
|
58
|
-
<
|
|
59
|
-
<
|
|
60
|
-
<
|
|
61
|
-
<
|
|
62
|
-
<
|
|
63
|
-
<
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
</DestinationSelectedTokenProvider>
|
|
82
|
-
</OriginSelectedTokenProvider>
|
|
83
|
-
</WalletConnectionProvider>
|
|
84
|
-
</BackProvider>
|
|
85
|
-
</PreviousScreenProvider>
|
|
86
|
-
</CurrentScreenProvider>
|
|
47
|
+
<WalletConnectionProvider>
|
|
48
|
+
<OriginSelectedTokenProvider>
|
|
49
|
+
<DestinationSelectedTokenProvider>
|
|
50
|
+
<FiatSelectedCurrencyProvider>
|
|
51
|
+
<SelectedFeeOptionProvider>
|
|
52
|
+
<SelectedRecipientProvider>
|
|
53
|
+
<SwapAmountProvider>
|
|
54
|
+
<SwapStateProvider>
|
|
55
|
+
<ChainFilterProvider>
|
|
56
|
+
<BalanceVisibleProvider>
|
|
57
|
+
<ThemePreferenceProvider>
|
|
58
|
+
<LocalePreferenceProvider>
|
|
59
|
+
<DisplayCurrencyPreferenceProvider>
|
|
60
|
+
<SelectedFundMethodProvider>
|
|
61
|
+
<EarnPoolProvider>
|
|
62
|
+
{children}
|
|
63
|
+
</EarnPoolProvider>
|
|
64
|
+
</SelectedFundMethodProvider>
|
|
65
|
+
</DisplayCurrencyPreferenceProvider>
|
|
66
|
+
</LocalePreferenceProvider>
|
|
67
|
+
</ThemePreferenceProvider>
|
|
68
|
+
</BalanceVisibleProvider>
|
|
69
|
+
</ChainFilterProvider>
|
|
70
|
+
</SwapStateProvider>
|
|
71
|
+
</SwapAmountProvider>
|
|
72
|
+
</SelectedRecipientProvider>
|
|
73
|
+
</SelectedFeeOptionProvider>
|
|
74
|
+
</FiatSelectedCurrencyProvider>
|
|
75
|
+
</DestinationSelectedTokenProvider>
|
|
76
|
+
</OriginSelectedTokenProvider>
|
|
77
|
+
</WalletConnectionProvider>
|
|
87
78
|
</ToastProvider>
|
|
88
|
-
</
|
|
79
|
+
</ViewManagerProvider>
|
|
89
80
|
</WidgetPropsProvider>
|
|
90
81
|
)
|
|
91
82
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ArrowLeftRight } from "lucide-react"
|
|
1
2
|
import type React from "react"
|
|
2
3
|
import { useCallback, useEffect, useRef, useState } from "react"
|
|
3
4
|
import { getChainInfo } from "../../chains.js"
|
|
@@ -10,12 +11,11 @@ import {
|
|
|
10
11
|
formatUsdAmountLocaleDisplay,
|
|
11
12
|
} from "../../utils/format.js"
|
|
12
13
|
import { useSupportedTokens, type Token } from "../../tokens.js"
|
|
13
|
-
import {
|
|
14
|
+
import { useViewManager, useScreenGuard } from "../hooks/useViewManager.js"
|
|
14
15
|
import { useBalanceVisible } from "../hooks/useBalanceVisible.js"
|
|
15
16
|
import { useDefaultDestinationToken } from "../hooks/useDefaultDestinationToken.js"
|
|
16
17
|
import { useDefaultOriginToken } from "../hooks/useDefaultOriginToken.js"
|
|
17
18
|
import { useDestinationSelectedToken } from "../hooks/useDestinationSelectedToken.js"
|
|
18
|
-
import { useMode } from "../hooks/useMode.js"
|
|
19
19
|
import { useOriginSelectedToken } from "../hooks/useOriginSelectedToken.js"
|
|
20
20
|
import type { ProcessedFeeOption } from "../hooks/useSelectedFeeOption.js"
|
|
21
21
|
import { useSelectedRecipient } from "../hooks/useSelectedRecipient.js"
|
|
@@ -77,9 +77,8 @@ const Withdraw: React.FC<WithdrawProps> = ({
|
|
|
77
77
|
fromChainId: fromChainIdProp,
|
|
78
78
|
defaultInputMode,
|
|
79
79
|
}) => {
|
|
80
|
-
const { mode } =
|
|
80
|
+
const { mode, navigate } = useViewManager()
|
|
81
81
|
const isGenericLayout = !fromToken
|
|
82
|
-
const { setCurrentScreenWithBack } = useBack()
|
|
83
82
|
const { isBalanceVisible } = useBalanceVisible()
|
|
84
83
|
const {
|
|
85
84
|
selectedToken: originToken,
|
|
@@ -136,11 +135,11 @@ const Withdraw: React.FC<WithdrawProps> = ({
|
|
|
136
135
|
enterFormMode("withdraw")
|
|
137
136
|
}, [])
|
|
138
137
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
|
|
138
|
+
useScreenGuard(
|
|
139
|
+
(toRecipient == null || toRecipient === "") && !selectedRecipient,
|
|
140
|
+
"recipients",
|
|
141
|
+
{ backTarget: "withdraw" },
|
|
142
|
+
)
|
|
144
143
|
|
|
145
144
|
// Initialize and update selected recipient from toRecipient prop
|
|
146
145
|
useEffect(() => {
|
|
@@ -672,6 +671,17 @@ const Withdraw: React.FC<WithdrawProps> = ({
|
|
|
672
671
|
headerContent="Withdraw"
|
|
673
672
|
headerContentAlign="left"
|
|
674
673
|
showAccountActions={true}
|
|
674
|
+
customActions={
|
|
675
|
+
<button
|
|
676
|
+
type="button"
|
|
677
|
+
onClick={() => navigate("swap", { backTarget: "withdraw" })}
|
|
678
|
+
className="flex h-8 px-3 justify-center items-center gap-1.5 rounded-full bg-gray-50 dark:bg-gray-700 cursor-pointer transition-colors text-gray-900 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600"
|
|
679
|
+
title="Swap"
|
|
680
|
+
>
|
|
681
|
+
<ArrowLeftRight className="h-4 w-4" />
|
|
682
|
+
<span className="text-sm font-medium">Swap</span>
|
|
683
|
+
</button>
|
|
684
|
+
}
|
|
675
685
|
/>
|
|
676
686
|
|
|
677
687
|
<form
|
|
@@ -767,7 +777,9 @@ const Withdraw: React.FC<WithdrawProps> = ({
|
|
|
767
777
|
<div className="mt-3 flex justify-center">
|
|
768
778
|
<div className="flex items-center space-x-1 text-sm">
|
|
769
779
|
<span className="text-gray-500 dark:text-gray-400">To:</span>
|
|
770
|
-
<RecipientSelectorButton
|
|
780
|
+
<RecipientSelectorButton
|
|
781
|
+
selectedRecipient={selectedRecipient}
|
|
782
|
+
/>
|
|
771
783
|
</div>
|
|
772
784
|
</div>
|
|
773
785
|
)}
|
|
@@ -928,7 +940,9 @@ const Withdraw: React.FC<WithdrawProps> = ({
|
|
|
928
940
|
</span>
|
|
929
941
|
{isGenericLayout && (
|
|
930
942
|
<div className="mt-1">
|
|
931
|
-
<RecipientSelectorButton
|
|
943
|
+
<RecipientSelectorButton
|
|
944
|
+
selectedRecipient={selectedRecipient}
|
|
945
|
+
/>
|
|
932
946
|
</div>
|
|
933
947
|
)}
|
|
934
948
|
</div>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useCallback, useRef } from "react"
|
|
2
2
|
import { trackWidgetClick } from "../../analytics.js"
|
|
3
3
|
import { logger } from "../../logger.js"
|
|
4
|
+
import { useViewManager } from "./useViewManager.js"
|
|
4
5
|
|
|
5
6
|
export interface ClickTrackingOptions {
|
|
6
7
|
component?: string
|
|
@@ -12,6 +13,9 @@ export interface ClickTrackingOptions {
|
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export function useClickTracking() {
|
|
16
|
+
const { screen } = useViewManager()
|
|
17
|
+
const screenRef = useRef(screen)
|
|
18
|
+
screenRef.current = screen
|
|
15
19
|
const lastClickRef = useRef<{ [key: string]: number }>({})
|
|
16
20
|
|
|
17
21
|
const trackClick = useCallback((options: ClickTrackingOptions = {}) => {
|
|
@@ -46,6 +50,7 @@ export function useClickTracking() {
|
|
|
46
50
|
|
|
47
51
|
// Track the click event - ensure all values are strings
|
|
48
52
|
trackWidgetClick({
|
|
53
|
+
screen: screenRef.current,
|
|
49
54
|
component: component?.toString() || "unknown",
|
|
50
55
|
action: action?.toString() || "click",
|
|
51
56
|
label: label?.toString(),
|
|
@@ -4,41 +4,9 @@ import { getNormalizedQuoteObject } from "../../prepareSend.js"
|
|
|
4
4
|
import type { PrepareSendQuote } from "../../prepareSend.js"
|
|
5
5
|
import type { TransactionState } from "../../transactions.js"
|
|
6
6
|
import { useTrails } from "../providers/TrailsProvider.js"
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
type Screen =
|
|
10
|
-
| "connect"
|
|
11
|
-
| "tokens"
|
|
12
|
-
| "select-origin-token"
|
|
13
|
-
| "select-origin-amount"
|
|
14
|
-
| "send-form"
|
|
15
|
-
| "fund-form"
|
|
16
|
-
| "fund-methods"
|
|
17
|
-
| "payment-methods"
|
|
18
|
-
| "onramp-payment-methods"
|
|
19
|
-
| "recipients"
|
|
20
|
-
| "earn"
|
|
21
|
-
| "earn-pools"
|
|
22
|
-
| "swap"
|
|
23
|
-
| "wallet-confirmation"
|
|
24
|
-
| "qr-code-wallet-select"
|
|
25
|
-
| "direct-transfer-screen"
|
|
26
|
-
| "pending"
|
|
27
|
-
| "receipt"
|
|
28
|
-
| "onramp-meld"
|
|
29
|
-
| "meld-onramp"
|
|
30
|
-
| "onramp-mesh"
|
|
31
|
-
| "wallet-connect"
|
|
32
|
-
| "wallet-list"
|
|
33
|
-
| "wallet-connection-pending"
|
|
34
|
-
| "account-history"
|
|
35
|
-
| "account-settings"
|
|
36
|
-
| "user-preferences"
|
|
37
|
-
| "chain-list"
|
|
38
|
-
| "qrcode-options"
|
|
7
|
+
import { useViewManager } from "./useViewManager.js"
|
|
39
8
|
|
|
40
9
|
interface UseDebugScreensProps {
|
|
41
|
-
setCurrentScreen: (screen: Screen) => void
|
|
42
10
|
setSelectedToken: (token: any) => void
|
|
43
11
|
setTransactionStates: (states: TransactionState[]) => void
|
|
44
12
|
setPrepareSendQuote: (quote: PrepareSendQuote | null) => void
|
|
@@ -46,20 +14,10 @@ interface UseDebugScreensProps {
|
|
|
46
14
|
setSelectedWalletId: (id: string | null) => void
|
|
47
15
|
setShowWalletConnectionRetry: (show: boolean) => void
|
|
48
16
|
setError: (error: string | null) => void
|
|
49
|
-
setIsConnecting: (connecting: boolean) => void
|
|
50
|
-
setOnrampProps: (
|
|
51
|
-
props: {
|
|
52
|
-
toTokenSymbol?: string
|
|
53
|
-
toTokenAmount?: string
|
|
54
|
-
toChainId?: number
|
|
55
|
-
toRecipientAddress?: string
|
|
56
|
-
} | null,
|
|
57
|
-
) => void
|
|
58
17
|
isConnected: boolean
|
|
59
18
|
}
|
|
60
19
|
|
|
61
20
|
export const useDebugScreens = ({
|
|
62
|
-
setCurrentScreen,
|
|
63
21
|
setSelectedToken,
|
|
64
22
|
setTransactionStates,
|
|
65
23
|
setPrepareSendQuote,
|
|
@@ -70,7 +28,7 @@ export const useDebugScreens = ({
|
|
|
70
28
|
isConnected,
|
|
71
29
|
}: UseDebugScreensProps) => {
|
|
72
30
|
const trailsConfig = useTrails()
|
|
73
|
-
const {
|
|
31
|
+
const { navigate, overrideMode: setCurrentMode } = useViewManager()
|
|
74
32
|
const handleDebugScreenSelect = useCallback(
|
|
75
33
|
async (screen: string) => {
|
|
76
34
|
// Reset necessary state based on the target screen
|
|
@@ -112,42 +70,42 @@ export const useDebugScreens = ({
|
|
|
112
70
|
case "connect":
|
|
113
71
|
setSelectedToken(null)
|
|
114
72
|
setTransactionStates([])
|
|
115
|
-
|
|
73
|
+
navigate("connect")
|
|
116
74
|
break
|
|
117
75
|
case "tokens":
|
|
118
76
|
if (isConnected) {
|
|
119
77
|
setSelectedToken(null)
|
|
120
78
|
setTransactionStates([])
|
|
121
|
-
|
|
79
|
+
navigate("tokens")
|
|
122
80
|
}
|
|
123
81
|
break
|
|
124
82
|
case "select-origin-token":
|
|
125
|
-
|
|
83
|
+
navigate("select-origin-token")
|
|
126
84
|
break
|
|
127
85
|
case "select-origin-amount":
|
|
128
|
-
|
|
86
|
+
navigate("select-origin-amount")
|
|
129
87
|
break
|
|
130
88
|
case "chain-list":
|
|
131
89
|
setSelectedToken(null)
|
|
132
90
|
setTransactionStates([])
|
|
133
|
-
|
|
91
|
+
navigate("chain-list")
|
|
134
92
|
break
|
|
135
93
|
case "send-form":
|
|
136
94
|
// Set dummy USDC token for debug mode and set mode to pay
|
|
137
95
|
setCurrentMode("pay")
|
|
138
96
|
setSelectedToken(dummySelectedToken)
|
|
139
97
|
setTransactionStates([])
|
|
140
|
-
|
|
98
|
+
navigate("send-form")
|
|
141
99
|
break
|
|
142
100
|
case "fund-form":
|
|
143
101
|
// Set dummy USDC token for debug mode and set mode to fund
|
|
144
102
|
setCurrentMode("fund")
|
|
145
103
|
setSelectedToken(dummySelectedToken)
|
|
146
104
|
setTransactionStates([])
|
|
147
|
-
|
|
105
|
+
navigate("fund-form")
|
|
148
106
|
break
|
|
149
107
|
case "recipients":
|
|
150
|
-
|
|
108
|
+
navigate("recipients")
|
|
151
109
|
break
|
|
152
110
|
case "wallet-confirmation":
|
|
153
111
|
// Set dummy USDC token for debug mode
|
|
@@ -155,11 +113,11 @@ export const useDebugScreens = ({
|
|
|
155
113
|
setPrepareSendQuote(dummyQuote)
|
|
156
114
|
setTransactionStates([])
|
|
157
115
|
setShowWalletConfirmRetry(false)
|
|
158
|
-
|
|
116
|
+
navigate("wallet-confirmation")
|
|
159
117
|
break
|
|
160
118
|
case "qr-code-wallet-select":
|
|
161
119
|
setPrepareSendQuote(dummyQuote)
|
|
162
|
-
|
|
120
|
+
navigate("qr-code-wallet-select")
|
|
163
121
|
break
|
|
164
122
|
case "wallet-confirmation-retry":
|
|
165
123
|
// Set dummy USDC token for debug mode
|
|
@@ -167,7 +125,7 @@ export const useDebugScreens = ({
|
|
|
167
125
|
setPrepareSendQuote(dummyQuote)
|
|
168
126
|
setTransactionStates([])
|
|
169
127
|
setShowWalletConfirmRetry(true)
|
|
170
|
-
|
|
128
|
+
navigate("wallet-confirmation")
|
|
171
129
|
break
|
|
172
130
|
case "pending-1-item-0-confirmed":
|
|
173
131
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -183,7 +141,7 @@ export const useDebugScreens = ({
|
|
|
183
141
|
},
|
|
184
142
|
])
|
|
185
143
|
setPrepareSendQuote(dummyQuote)
|
|
186
|
-
|
|
144
|
+
navigate("pending")
|
|
187
145
|
break
|
|
188
146
|
case "pending-1-item-1-confirmed":
|
|
189
147
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -199,7 +157,7 @@ export const useDebugScreens = ({
|
|
|
199
157
|
},
|
|
200
158
|
])
|
|
201
159
|
setPrepareSendQuote(dummyQuote)
|
|
202
|
-
|
|
160
|
+
navigate("pending")
|
|
203
161
|
break
|
|
204
162
|
case "pending-2-item-0-confirmed":
|
|
205
163
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -224,7 +182,7 @@ export const useDebugScreens = ({
|
|
|
224
182
|
},
|
|
225
183
|
])
|
|
226
184
|
setPrepareSendQuote(dummyQuote)
|
|
227
|
-
|
|
185
|
+
navigate("pending")
|
|
228
186
|
break
|
|
229
187
|
case "pending-2-item-1-confirmed":
|
|
230
188
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -249,7 +207,7 @@ export const useDebugScreens = ({
|
|
|
249
207
|
},
|
|
250
208
|
])
|
|
251
209
|
setPrepareSendQuote(dummyQuote)
|
|
252
|
-
|
|
210
|
+
navigate("pending")
|
|
253
211
|
break
|
|
254
212
|
case "pending-2-item-2-confirmed":
|
|
255
213
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -274,7 +232,7 @@ export const useDebugScreens = ({
|
|
|
274
232
|
},
|
|
275
233
|
])
|
|
276
234
|
setPrepareSendQuote(dummyQuote)
|
|
277
|
-
|
|
235
|
+
navigate("pending")
|
|
278
236
|
break
|
|
279
237
|
case "pending-3-item-0-confirmed":
|
|
280
238
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -308,7 +266,7 @@ export const useDebugScreens = ({
|
|
|
308
266
|
},
|
|
309
267
|
])
|
|
310
268
|
setPrepareSendQuote(dummyQuote)
|
|
311
|
-
|
|
269
|
+
navigate("pending")
|
|
312
270
|
break
|
|
313
271
|
case "pending-3-item-1-confirmed":
|
|
314
272
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -342,7 +300,7 @@ export const useDebugScreens = ({
|
|
|
342
300
|
},
|
|
343
301
|
])
|
|
344
302
|
setPrepareSendQuote(dummyQuote)
|
|
345
|
-
|
|
303
|
+
navigate("pending")
|
|
346
304
|
break
|
|
347
305
|
case "pending-3-item-2-confirmed":
|
|
348
306
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -376,7 +334,7 @@ export const useDebugScreens = ({
|
|
|
376
334
|
},
|
|
377
335
|
])
|
|
378
336
|
setPrepareSendQuote(dummyQuote)
|
|
379
|
-
|
|
337
|
+
navigate("pending")
|
|
380
338
|
break
|
|
381
339
|
case "pending-3-item-3-confirmed":
|
|
382
340
|
// Set dummy transaction states for debug mode - showing all steps
|
|
@@ -410,7 +368,7 @@ export const useDebugScreens = ({
|
|
|
410
368
|
},
|
|
411
369
|
])
|
|
412
370
|
setPrepareSendQuote(dummyQuote)
|
|
413
|
-
|
|
371
|
+
navigate("pending")
|
|
414
372
|
break
|
|
415
373
|
case "pending-3-item-2-confirmed-with-error":
|
|
416
374
|
// Set dummy transaction states for debug mode - second item has CallFailed event
|
|
@@ -453,7 +411,7 @@ export const useDebugScreens = ({
|
|
|
453
411
|
},
|
|
454
412
|
])
|
|
455
413
|
setPrepareSendQuote(dummyQuote)
|
|
456
|
-
|
|
414
|
+
navigate("pending")
|
|
457
415
|
break
|
|
458
416
|
case "receipt":
|
|
459
417
|
// Set dummy transaction states data for debug mode
|
|
@@ -487,7 +445,7 @@ export const useDebugScreens = ({
|
|
|
487
445
|
},
|
|
488
446
|
])
|
|
489
447
|
|
|
490
|
-
|
|
448
|
+
navigate("receipt")
|
|
491
449
|
break
|
|
492
450
|
case "receipt-failed":
|
|
493
451
|
// Set dummy transaction states data for debug mode
|
|
@@ -519,7 +477,7 @@ export const useDebugScreens = ({
|
|
|
519
477
|
},
|
|
520
478
|
])
|
|
521
479
|
|
|
522
|
-
|
|
480
|
+
navigate("receipt")
|
|
523
481
|
break
|
|
524
482
|
case "receipt-refunded":
|
|
525
483
|
// Set dummy transaction states data for debug mode
|
|
@@ -571,62 +529,58 @@ export const useDebugScreens = ({
|
|
|
571
529
|
},
|
|
572
530
|
])
|
|
573
531
|
|
|
574
|
-
|
|
532
|
+
navigate("receipt")
|
|
575
533
|
break
|
|
576
534
|
case "onramp":
|
|
577
|
-
|
|
578
|
-
break
|
|
579
|
-
case "meld-onramp":
|
|
580
|
-
// Direct access to MeldForm within MeldStepsFlow
|
|
581
|
-
setCurrentScreen("meld-onramp")
|
|
535
|
+
navigate("onramp-meld")
|
|
582
536
|
break
|
|
583
537
|
case "wallet-connect":
|
|
584
|
-
|
|
538
|
+
navigate("wallet-connect")
|
|
585
539
|
break
|
|
586
540
|
case "wallet-list":
|
|
587
|
-
|
|
541
|
+
navigate("wallet-list")
|
|
588
542
|
break
|
|
589
543
|
case "wallet-connection-pending":
|
|
590
544
|
setSelectedWalletId("metamask")
|
|
591
|
-
|
|
545
|
+
navigate("wallet-connection-pending")
|
|
592
546
|
break
|
|
593
547
|
case "wallet-connection-pending-retry":
|
|
594
548
|
setSelectedWalletId("metamask")
|
|
595
549
|
setShowWalletConnectionRetry(true)
|
|
596
|
-
|
|
550
|
+
navigate("wallet-connection-pending")
|
|
597
551
|
break
|
|
598
552
|
case "fund-methods":
|
|
599
|
-
|
|
553
|
+
navigate("fund-methods")
|
|
600
554
|
break
|
|
601
555
|
case "payment-methods":
|
|
602
|
-
|
|
556
|
+
navigate("payment-methods")
|
|
603
557
|
break
|
|
604
558
|
case "earn":
|
|
605
559
|
setCurrentMode("earn")
|
|
606
|
-
|
|
560
|
+
navigate("earn")
|
|
607
561
|
break
|
|
608
562
|
case "earn-pools":
|
|
609
|
-
|
|
563
|
+
navigate("earn-pools")
|
|
610
564
|
break
|
|
611
565
|
case "swap":
|
|
612
566
|
setCurrentMode("swap")
|
|
613
567
|
setSelectedToken(null)
|
|
614
568
|
setTransactionStates([])
|
|
615
|
-
|
|
569
|
+
navigate("swap")
|
|
616
570
|
break
|
|
617
571
|
case "account-history":
|
|
618
|
-
|
|
572
|
+
navigate("account-history")
|
|
619
573
|
break
|
|
620
574
|
case "account-settings":
|
|
621
|
-
|
|
575
|
+
navigate("account-settings")
|
|
622
576
|
break
|
|
623
577
|
case "user-preferences":
|
|
624
|
-
|
|
578
|
+
navigate("user-preferences")
|
|
625
579
|
break
|
|
626
580
|
}
|
|
627
581
|
},
|
|
628
582
|
[
|
|
629
|
-
|
|
583
|
+
navigate,
|
|
630
584
|
setSelectedToken,
|
|
631
585
|
setTransactionStates,
|
|
632
586
|
setPrepareSendQuote,
|