@aurora-is-near/intents-swap-widget 3.21.0 → 3.22.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.
Files changed (136) hide show
  1. package/dist/components/WidgetContainer.js +23 -14
  2. package/dist/components/WidgetContainer.js.map +1 -1
  3. package/dist/components/WidgetTabs.d.ts +8 -0
  4. package/dist/components/WidgetTabs.js +20 -0
  5. package/dist/components/WidgetTabs.js.map +1 -0
  6. package/dist/{config-CyBNYvb1.js → config-Opy5ppbU.js} +2 -2
  7. package/dist/{config-CyBNYvb1.js.map → config-Opy5ppbU.js.map} +1 -1
  8. package/dist/config.d.ts +1 -0
  9. package/dist/config.js +1 -1
  10. package/dist/errors.js +1 -1
  11. package/dist/ext/alchemy/index.js +1 -1
  12. package/dist/ext/index.js +1 -1
  13. package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
  14. package/dist/features/BalanceRpcLoader/index.js +1 -1
  15. package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
  16. package/dist/features/ChainsDropdown/index.js +1 -1
  17. package/dist/features/ChainsSelector/index.js +1 -1
  18. package/dist/features/DepositMethodSwitcher.js +1 -1
  19. package/dist/features/ErrorBoundary.js +1 -1
  20. package/dist/features/ExternalDeposit.js +1 -1
  21. package/dist/features/SendAddress/index.js +1 -1
  22. package/dist/features/SendAddress/useNotification.js +1 -1
  23. package/dist/features/SubmitButton/index.js +1 -1
  24. package/dist/features/SuccessScreen/index.js +1 -1
  25. package/dist/features/SuccessScreen/useSummaryItemsCount.js +1 -1
  26. package/dist/features/SwapDirectionSwitcher.d.ts +1 -5
  27. package/dist/features/SwapDirectionSwitcher.js +10 -10
  28. package/dist/features/SwapDirectionSwitcher.js.map +1 -1
  29. package/dist/features/SwapQuote/SwapQuote.js +1 -1
  30. package/dist/features/SwapQuote/index.js +1 -1
  31. package/dist/features/TokenInput/TokenInput.js +1 -1
  32. package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
  33. package/dist/features/TokenInput/TokenInputSource.js +1 -1
  34. package/dist/features/TokenInput/TokenInputTarget.js +1 -1
  35. package/dist/features/TokenInput/WalletBalance.js +1 -1
  36. package/dist/features/TokenInput/hooks/index.js +1 -1
  37. package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
  38. package/dist/features/TokenInput/index.js +1 -1
  39. package/dist/features/TokensList/TokenItem.js +1 -1
  40. package/dist/features/TokensList/TokensList.js +1 -1
  41. package/dist/features/TokensList/index.js +1 -1
  42. package/dist/features/TokensModal.js +1 -1
  43. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +1 -1
  44. package/dist/features/WalletCompatibilityCheck/index.js +1 -1
  45. package/dist/features/index.js +1 -1
  46. package/dist/hooks/index.js +1 -1
  47. package/dist/hooks/useAllTokens.js +1 -1
  48. package/dist/hooks/useChains.js +1 -1
  49. package/dist/hooks/useCompatibilityCheck.js +1 -1
  50. package/dist/hooks/useDefaultToken.js +1 -1
  51. package/dist/hooks/useExternalDepositStatus/index.js +1 -1
  52. package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
  53. package/dist/hooks/useIntentsBalance.js +1 -1
  54. package/dist/hooks/useIsCompatibilityCheckRequired.js +1 -1
  55. package/dist/hooks/useMakeDepositAddress.js +1 -1
  56. package/dist/hooks/useMakeIntentsTransfer.js +1 -1
  57. package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
  58. package/dist/hooks/useMakeQuote.js +1 -1
  59. package/dist/hooks/useMakeQuoteTransfer.js +1 -1
  60. package/dist/hooks/useMakeTransfer.js +1 -1
  61. package/dist/hooks/useMergedBalance.js +1 -1
  62. package/dist/hooks/useSwitchChain.js +1 -1
  63. package/dist/hooks/useTheme.js +1 -1
  64. package/dist/hooks/useTokenInputPair.js +1 -1
  65. package/dist/hooks/useTokens.js +1 -1
  66. package/dist/hooks/useTokensFiltered.js +1 -1
  67. package/dist/hooks/useTokensIntentsUnique.js +1 -1
  68. package/dist/index.js +21 -19
  69. package/dist/index.js.map +1 -1
  70. package/dist/machine/effects/index.js +1 -1
  71. package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
  72. package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
  73. package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
  74. package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
  75. package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
  76. package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
  77. package/dist/machine/effects/useWalletConnEffect.js +1 -1
  78. package/dist/machine/events/index.js +1 -1
  79. package/dist/machine/events/tokenSelect.js +1 -1
  80. package/dist/machine/events/validateInputAndMoveTo.js +1 -1
  81. package/dist/machine/events/validateInputs.js +1 -1
  82. package/dist/machine/index.js +1 -1
  83. package/dist/machine/snap.js +1 -1
  84. package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
  85. package/dist/machine/subscriptions/index.js +1 -1
  86. package/dist/styles.css +1 -1
  87. package/dist/theme/ThemeProvider.js +1 -1
  88. package/dist/types/config.d.ts +1 -0
  89. package/dist/utils/intents/signers/near.js +1 -1
  90. package/dist/utils/intents/signers/privy.js +1 -1
  91. package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
  92. package/dist/widgets/Widget/WidgetContent.d.ts +10 -0
  93. package/dist/widgets/Widget/WidgetContent.js +56 -0
  94. package/dist/widgets/Widget/WidgetContent.js.map +1 -0
  95. package/dist/widgets/Widget/index.d.ts +4 -0
  96. package/dist/widgets/Widget/index.js +23 -0
  97. package/dist/widgets/Widget/index.js.map +1 -0
  98. package/dist/widgets/WidgetDeposit/WidgetDepositContent.d.ts +1 -2
  99. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +1 -1
  100. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js.map +1 -1
  101. package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
  102. package/dist/widgets/WidgetDeposit/index.js +14 -15
  103. package/dist/widgets/WidgetDeposit/index.js.map +1 -1
  104. package/dist/widgets/WidgetSwap/WidgetSwapContent.d.ts +3 -6
  105. package/dist/widgets/WidgetSwap/WidgetSwapContent.js +43 -44
  106. package/dist/widgets/WidgetSwap/WidgetSwapContent.js.map +1 -1
  107. package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
  108. package/dist/widgets/WidgetSwap/index.js +14 -15
  109. package/dist/widgets/WidgetSwap/index.js.map +1 -1
  110. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.d.ts +1 -2
  111. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +1 -1
  112. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js.map +1 -1
  113. package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
  114. package/dist/widgets/WidgetWithdraw/index.js +12 -13
  115. package/dist/widgets/WidgetWithdraw/index.js.map +1 -1
  116. package/dist/widgets/index.d.ts +1 -0
  117. package/dist/widgets/index.js +8 -6
  118. package/dist/widgets/index.js.map +1 -1
  119. package/package.json +1 -1
  120. package/src/components/WidgetContainer.tsx +11 -1
  121. package/src/components/WidgetTabs.tsx +33 -0
  122. package/src/features/SwapDirectionSwitcher.tsx +4 -6
  123. package/src/types/config.ts +1 -0
  124. package/src/widgets/Widget/WidgetContent.tsx +99 -0
  125. package/src/widgets/Widget/index.tsx +23 -0
  126. package/src/widgets/WidgetDeposit/WidgetDepositContent.tsx +1 -1
  127. package/src/widgets/WidgetDeposit/index.tsx +7 -10
  128. package/src/widgets/WidgetSwap/WidgetSwapContent.tsx +3 -6
  129. package/src/widgets/WidgetSwap/index.tsx +7 -10
  130. package/src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx +1 -1
  131. package/src/widgets/WidgetWithdraw/index.tsx +7 -10
  132. package/src/widgets/index.ts +1 -0
  133. package/dist/components/BaseContainer.d.ts +0 -2
  134. package/dist/components/BaseContainer.js +0 -23
  135. package/dist/components/BaseContainer.js.map +0 -1
  136. package/src/components/BaseContainer.tsx +0 -19
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetDepositContent.js","sources":["../../../src/widgets/WidgetDeposit/WidgetDepositContent.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { useTypedTranslation } from '../../localisation';\nimport { WidgetDepositSkeleton } from './WidgetDepositSkeleton';\nimport {\n DepositMethodSwitcher,\n ExternalDeposit,\n SubmitButton,\n SuccessScreen,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { Banner, BlockingError } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\ntype Msg =\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_change_deposit_type'; isExternal: boolean }\n | { type: 'on_transfer_success' }\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetDepositContent = ({\n providers,\n onMsg,\n makeTransfer,\n isLoading,\n}: Props) => {\n const { ctx } = useUnsafeSnapshot();\n const { t } = useTypedTranslation();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { onChangeAmount, onChangeToken } = useTokenInputPair();\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(true);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n const handleExternalDepositMsg = useCallback(\n (\n msg:\n | { type: 'on_transaction_received' }\n | { type: 'on_successful_transfer'; transferResult: TransferResult },\n ) => {\n switch (msg.type) {\n case 'on_successful_transfer':\n setTransferResult(msg.transferResult);\n break;\n case 'on_transaction_received':\n // Transaction received, no action needed\n break;\n default:\n notReachable(msg);\n }\n },\n [],\n );\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n\n return () => {\n fireEvent('depositTypeSet', { isExternal: false });\n };\n }, []);\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n 'setSourceTokenIntentsTarget',\n ['setDefaultSelectedTokens', { skipIntents: true }],\n ['makeQuote', { message: undefined, refetchQuoteInterval }],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n useEffect(() => {\n onMsg?.({\n type: 'on_change_deposit_type',\n isExternal: ctx.isDepositFromExternalWallet,\n });\n }, [ctx.isDepositFromExternalWallet]);\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetDepositSkeleton />;\n }\n\n if (isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n {...transferResult}\n title={t('transfer.success.deposit.title', 'Deposit successful')}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n showChainsSelector\n variant={tokenModalOpen}\n groupTokens={tokenModalOpen === 'source'}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl flex flex-col\">\n <TokenInput.Source\n showBalance={!ctx.isDepositFromExternalWallet}\n heading={t('tokenInput.heading.source.deposit', 'Sell')}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n\n <DepositMethodSwitcher>\n {({ isExternal }) =>\n isExternal ? (\n <div className=\"gap-sw-2xl flex flex-col justify-between\">\n <ExternalDeposit onMsg={handleExternalDepositMsg} />\n {(ctx.state === 'quote_success_internal' ||\n ctx.state === 'quote_success_external') && (\n <Banner\n multiline\n variant=\"warn\"\n message=\"Match the token, amount and network entered above in your wallet. Incorrect values will cause the deposit to fail and be refunded.\"\n />\n )}\n </div>\n ) : null\n }\n </DepositMethodSwitcher>\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={t('submit.active.deposit', 'Deposit now')}\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetDepositSkeleton />;\n }\n};\n"],"names":["WidgetDepositContent","providers","onMsg","makeTransfer","isLoading","ctx","useUnsafeSnapshot","t","useTypedTranslation","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","onChangeAmount","onChangeToken","useTokenInputPair","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","handleExternalDepositMsg","useCallback","msg","notReachable","fireEvent","useStoreSideEffects","isDebug","onBackToSwap","WidgetDepositSkeleton","jsx","WalletCompatibilityCheck","SuccessScreen","BlockingError","TokensModal","jsxs","TokenInput","DepositMethodSwitcher","isExternal","ExternalDeposit","Banner","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetDepositContent.js","sources":["../../../src/widgets/WidgetDeposit/WidgetDepositContent.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { useTypedTranslation } from '../../localisation';\nimport { WidgetDepositSkeleton } from './WidgetDepositSkeleton';\nimport {\n DepositMethodSwitcher,\n ExternalDeposit,\n SubmitButton,\n SuccessScreen,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { Banner, BlockingError } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\nexport type Msg =\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_change_deposit_type'; isExternal: boolean }\n | { type: 'on_transfer_success' }\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetDepositContent = ({\n providers,\n onMsg,\n makeTransfer,\n isLoading,\n}: Props) => {\n const { ctx } = useUnsafeSnapshot();\n const { t } = useTypedTranslation();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { onChangeAmount, onChangeToken } = useTokenInputPair();\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(true);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n const handleExternalDepositMsg = useCallback(\n (\n msg:\n | { type: 'on_transaction_received' }\n | { type: 'on_successful_transfer'; transferResult: TransferResult },\n ) => {\n switch (msg.type) {\n case 'on_successful_transfer':\n setTransferResult(msg.transferResult);\n break;\n case 'on_transaction_received':\n // Transaction received, no action needed\n break;\n default:\n notReachable(msg);\n }\n },\n [],\n );\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n\n return () => {\n fireEvent('depositTypeSet', { isExternal: false });\n };\n }, []);\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n 'setSourceTokenIntentsTarget',\n ['setDefaultSelectedTokens', { skipIntents: true }],\n ['makeQuote', { message: undefined, refetchQuoteInterval }],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n useEffect(() => {\n onMsg?.({\n type: 'on_change_deposit_type',\n isExternal: ctx.isDepositFromExternalWallet,\n });\n }, [ctx.isDepositFromExternalWallet]);\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetDepositSkeleton />;\n }\n\n if (isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n {...transferResult}\n title={t('transfer.success.deposit.title', 'Deposit successful')}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n showChainsSelector\n variant={tokenModalOpen}\n groupTokens={tokenModalOpen === 'source'}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl flex flex-col\">\n <TokenInput.Source\n showBalance={!ctx.isDepositFromExternalWallet}\n heading={t('tokenInput.heading.source.deposit', 'Sell')}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n\n <DepositMethodSwitcher>\n {({ isExternal }) =>\n isExternal ? (\n <div className=\"gap-sw-2xl flex flex-col justify-between\">\n <ExternalDeposit onMsg={handleExternalDepositMsg} />\n {(ctx.state === 'quote_success_internal' ||\n ctx.state === 'quote_success_external') && (\n <Banner\n multiline\n variant=\"warn\"\n message=\"Match the token, amount and network entered above in your wallet. Incorrect values will cause the deposit to fail and be refunded.\"\n />\n )}\n </div>\n ) : null\n }\n </DepositMethodSwitcher>\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={t('submit.active.deposit', 'Deposit now')}\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetDepositSkeleton />;\n }\n};\n"],"names":["WidgetDepositContent","providers","onMsg","makeTransfer","isLoading","ctx","useUnsafeSnapshot","t","useTypedTranslation","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","onChangeAmount","onChangeToken","useTokenInputPair","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","handleExternalDepositMsg","useCallback","msg","notReachable","fireEvent","useStoreSideEffects","isDebug","onBackToSwap","WidgetDepositSkeleton","jsx","WalletCompatibilityCheck","SuccessScreen","BlockingError","TokensModal","jsxs","TokenInput","DepositMethodSwitcher","isExternal","ExternalDeposit","Banner","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
2
  import a from "clsx";
3
3
  import { SkeletonBox as s } from "../../components/SkeletonBox.js";
4
- import { y as i } from "../../config-CyBNYvb1.js";
4
+ import { y as i } from "../../config-Opy5ppbU.js";
5
5
  const p = () => {
6
6
  const { hideTokenInputHeadings: l } = i();
7
7
  return /* @__PURE__ */ o("div", { className: "w-full gap-sw-xl relative flex flex-col", children: [
@@ -1,23 +1,22 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { BaseContainer as m } from "../../components/BaseContainer.js";
3
- import { WidgetContainer as p } from "../../components/WidgetContainer.js";
4
- import { WidgetDepositContent as d } from "./WidgetDepositContent.js";
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { WidgetContainer as n } from "../../components/WidgetContainer.js";
3
+ import { WidgetDepositContent as p } from "./WidgetDepositContent.js";
5
4
  const g = ({
6
- HeaderComponent: t,
5
+ HeaderComponent: o,
7
6
  FooterComponent: i,
8
- isFullPage: r,
9
- className: e,
10
- ...n
11
- }) => /* @__PURE__ */ o(m, { children: /* @__PURE__ */ o(
12
- p,
7
+ isFullPage: e,
8
+ className: r,
9
+ ...m
10
+ }) => /* @__PURE__ */ t(
11
+ n,
13
12
  {
14
- className: e,
15
- isFullPage: r,
16
- HeaderComponent: t,
13
+ className: r,
14
+ isFullPage: e,
15
+ HeaderComponent: o,
17
16
  FooterComponent: i,
18
- children: /* @__PURE__ */ o(d, { ...n })
17
+ children: /* @__PURE__ */ t(p, { ...m })
19
18
  }
20
- ) });
19
+ );
21
20
  export {
22
21
  g as WidgetDeposit
23
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/widgets/WidgetDeposit/index.tsx"],"sourcesContent":["import { BaseContainer } from '../../components/BaseContainer';\nimport {\n WidgetContainer,\n WidgetContainerProps,\n} from '../../components/WidgetContainer';\nimport { Props, WidgetDepositContent } from './WidgetDepositContent';\n\nexport type WidgetDepositProps = Props & Omit<WidgetContainerProps, 'children'>;\n\nexport const WidgetDeposit = ({\n HeaderComponent,\n FooterComponent,\n isFullPage,\n className,\n ...widgetProps\n}: WidgetDepositProps) => (\n <BaseContainer>\n <WidgetContainer\n className={className}\n isFullPage={isFullPage}\n HeaderComponent={HeaderComponent}\n FooterComponent={FooterComponent}>\n <WidgetDepositContent {...widgetProps} />\n </WidgetContainer>\n </BaseContainer>\n);\n"],"names":["WidgetDeposit","HeaderComponent","FooterComponent","isFullPage","className","widgetProps","BaseContainer","jsx","WidgetContainer","WidgetDepositContent"],"mappings":";;;;AASO,MAAMA,IAAgB,CAAC;AAAA,EAC5B,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,wBACGC,GAAA,EACC,UAAA,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAAJ;AAAA,IACA,YAAAD;AAAA,IACA,iBAAAF;AAAA,IACA,iBAAAC;AAAA,IACA,UAAA,gBAAAK,EAACE,GAAA,EAAsB,GAAGJ,EAAA,CAAa;AAAA,EAAA;AACzC,EAAA,CACF;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/widgets/WidgetDeposit/index.tsx"],"sourcesContent":["import {\n WidgetContainer,\n WidgetContainerProps,\n} from '../../components/WidgetContainer';\nimport { Props, WidgetDepositContent } from './WidgetDepositContent';\n\nexport type WidgetDepositProps = Props & Omit<WidgetContainerProps, 'children'>;\n\nexport const WidgetDeposit = ({\n HeaderComponent,\n FooterComponent,\n isFullPage,\n className,\n ...widgetProps\n}: WidgetDepositProps) => (\n <WidgetContainer\n className={className}\n isFullPage={isFullPage}\n HeaderComponent={HeaderComponent}\n FooterComponent={FooterComponent}>\n <WidgetDepositContent {...widgetProps} />\n </WidgetContainer>\n);\n"],"names":["WidgetDeposit","HeaderComponent","FooterComponent","isFullPage","className","widgetProps","jsx","WidgetContainer","WidgetDepositContent"],"mappings":";;;AAQO,MAAMA,IAAgB,CAAC;AAAA,EAC5B,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAAH;AAAA,IACA,YAAAD;AAAA,IACA,iBAAAF;AAAA,IACA,iBAAAC;AAAA,IACA,UAAA,gBAAAI,EAACE,GAAA,EAAsB,GAAGH,EAAA,CAAa;AAAA,EAAA;AACzC;"}
@@ -1,6 +1,6 @@
1
1
  import { CommonWidgetProps, TokenInputType } from '../types';
2
2
  import { Token } from '../../types';
3
- type Msg = {
3
+ export type Msg = {
4
4
  type: 'on_tokens_modal_toggled';
5
5
  isOpen: boolean;
6
6
  } | {
@@ -10,8 +10,5 @@ type Msg = {
10
10
  } | {
11
11
  type: 'on_transfer_success';
12
12
  };
13
- export type Props = CommonWidgetProps<Msg> & {
14
- isOneWay?: boolean;
15
- };
16
- export declare const WidgetSwapContent: ({ providers, makeTransfer, onMsg, isLoading, isOneWay, }: Props) => import("react/jsx-runtime").JSX.Element;
17
- export {};
13
+ export type Props = CommonWidgetProps<Msg>;
14
+ export declare const WidgetSwapContent: ({ providers, makeTransfer, onMsg, isLoading, }: Props) => import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,9 @@
1
1
  import { jsx as t, jsxs as _ } from "react/jsx-runtime";
2
2
  import { useState as S, useEffect as w } from "react";
3
- import { useTokenModal as N } from "../../hooks/useTokenModal.js";
3
+ import { useTokenModal as D } from "../../hooks/useTokenModal.js";
4
4
  import { WidgetSwapSkeleton as T } from "./WidgetSwapSkeleton.js";
5
- import { useTypedTranslation as O } from "../../localisation.js";
6
- import { b as Q, u as j, y as q, n as F, c as U, p as b, o as K, S as P } from "../../config-CyBNYvb1.js";
5
+ import { useTypedTranslation as N } from "../../localisation.js";
6
+ import { b as O, u as Q, y as j, n as q, c as F, p as y, o as U, S as K } from "../../config-Opy5ppbU.js";
7
7
  import "@tanstack/react-query";
8
8
  import "@headlessui/react";
9
9
  import "@material-symbols-svg/react-rounded/icons/chevron-left";
@@ -12,18 +12,18 @@ import "../../features/ChainsDropdown/ChainItem.js";
12
12
  import "../../utils/cn.js";
13
13
  import "../../constants/chains.js";
14
14
  import { notReachable as s } from "../../utils/notReachable.js";
15
- import { SendAddress as z } from "../../features/SendAddress/index.js";
16
- import { SuccessScreen as G } from "../../features/SuccessScreen/index.js";
17
- import { TokensModal as H } from "../../features/TokensModal.js";
18
- import { SwapDirectionSwitcher as J } from "../../features/SwapDirectionSwitcher.js";
15
+ import { SendAddress as P } from "../../features/SendAddress/index.js";
16
+ import { SuccessScreen as z } from "../../features/SuccessScreen/index.js";
17
+ import { TokensModal as G } from "../../features/TokensModal.js";
18
+ import { SwapDirectionSwitcher as H } from "../../features/SwapDirectionSwitcher.js";
19
19
  import "qrcode.react";
20
20
  import "@defuse-protocol/one-click-sdk-typescript";
21
21
  import "@material-symbols-svg/react-rounded/icons/progress-activity";
22
- import { isDebug as L } from "../../utils/checkers/isDebug.js";
22
+ import { isDebug as J } from "../../utils/checkers/isDebug.js";
23
23
  import "viem";
24
24
  import "ethers";
25
25
  import "../../machine/machine.js";
26
- import { fireEvent as y } from "../../machine/events/utils/fireEvent.js";
26
+ import { fireEvent as b } from "../../machine/events/utils/fireEvent.js";
27
27
  import "zod";
28
28
  import "../../utils/near/rpc.js";
29
29
  import "../../index-DEq3oXQF.js";
@@ -35,14 +35,14 @@ import "../../index-xuotMAFm.js";
35
35
  import "axios";
36
36
  import "../../network.js";
37
37
  import "viem/chains";
38
- import { useTokenInputPair as V } from "../../hooks/useTokenInputPair.js";
39
- import { useIsCompatibilityCheckRequired as X } from "../../hooks/useIsCompatibilityCheckRequired.js";
38
+ import { useTokenInputPair as L } from "../../hooks/useTokenInputPair.js";
39
+ import { useIsCompatibilityCheckRequired as V } from "../../hooks/useIsCompatibilityCheckRequired.js";
40
40
  import "browser-or-node";
41
41
  import "@material-symbols-svg/react-rounded/icons/close";
42
42
  import "@material-symbols-svg/react-rounded/icons/emergency";
43
43
  import "@material-symbols-svg/react-rounded/icons/error";
44
44
  import "@material-symbols-svg/react-rounded/icons/verified";
45
- import { BlockingError as Y } from "../../components/BlockingError.js";
45
+ import { BlockingError as X } from "../../components/BlockingError.js";
46
46
  import "copy-text-to-clipboard";
47
47
  import "@material-symbols-svg/react-rounded/icons/content-copy";
48
48
  import "@material-symbols-svg/react-rounded/icons/arrow-downward";
@@ -53,21 +53,20 @@ import "@material-symbols-svg/react-rounded/icons/check-circle";
53
53
  import "../../components/ChainShortcut.js";
54
54
  import "@material-symbols-svg/react-rounded/icons/qr-code";
55
55
  import "@material-symbols-svg/react-rounded/icons/wallet";
56
- import { WalletCompatibilityCheck as Z } from "../../features/WalletCompatibilityCheck/index.js";
57
- const tt = ({
56
+ import { WalletCompatibilityCheck as Y } from "../../features/WalletCompatibilityCheck/index.js";
57
+ const et = ({
58
58
  providers: m,
59
59
  makeTransfer: C,
60
60
  onMsg: c,
61
- isLoading: x,
62
- isOneWay: I
61
+ isLoading: x
63
62
  }) => {
64
- const { ctx: o } = Q(), { isDirectNearTokenWithdrawal: v } = j(), {
63
+ const { ctx: o } = O(), { isDirectNearTokenWithdrawal: I } = Q(), {
65
64
  chainsFilter: k,
66
- alchemyApiKey: A,
67
- refetchQuoteInterval: M,
68
- intentsAccountType: W,
69
- onWalletSignout: B
70
- } = q(), { t: n } = O(), { status: f, refetch: E } = F(), { tokenModalOpen: r, updateTokenModalState: i } = N({ onMsg: c }), { onChangeAmount: d, onChangeToken: p, lastChangedInput: l } = V(), a = X(), [R, u] = S(
65
+ alchemyApiKey: v,
66
+ refetchQuoteInterval: A,
67
+ intentsAccountType: M,
68
+ onWalletSignout: W
69
+ } = j(), { t: n } = N(), { status: f, refetch: B } = q(), { tokenModalOpen: r, updateTokenModalState: i } = D({ onMsg: c }), { onChangeAmount: d, onChangeToken: p, lastChangedInput: l } = L(), a = V(), [E, u] = S(
71
70
  a
72
71
  );
73
72
  w(() => {
@@ -75,13 +74,13 @@ const tt = ({
75
74
  }, [a]);
76
75
  const [h, g] = S();
77
76
  w(() => {
78
- y("reset", { clearWalletAddress: !0 });
77
+ b("reset", { clearWalletAddress: !0 });
79
78
  }, []);
80
- const D = () => {
81
- y("reset", { clearWalletAddress: !1, keepSelectedTokens: !0 });
79
+ const R = () => {
80
+ b("reset", { clearWalletAddress: !1, keepSelectedTokens: !0 });
82
81
  };
83
- if (U({
84
- debug: L(),
82
+ if (F({
83
+ debug: J(),
85
84
  listenTo: [
86
85
  "checkWalletConnection",
87
86
  "setSourceTokenBalance",
@@ -91,22 +90,22 @@ const tt = ({
91
90
  {
92
91
  message: void 0,
93
92
  type: l === "target" ? "exact_out" : "exact_in",
94
- refetchQuoteInterval: M
93
+ refetchQuoteInterval: A
95
94
  }
96
95
  ],
97
- ["setBalancesUsingAlchemyExt", { alchemyApiKey: A }]
96
+ ["setBalancesUsingAlchemyExt", { alchemyApiKey: v }]
98
97
  ]
99
98
  }), x || f !== "error" && !o.sourceToken)
100
99
  return /* @__PURE__ */ t(T, {});
101
- if (a && R)
100
+ if (a && E)
102
101
  return /* @__PURE__ */ t(
103
- Z,
102
+ Y,
104
103
  {
105
104
  providers: m,
106
105
  onMsg: (e) => {
107
106
  switch (e.type) {
108
107
  case "on_sign_out":
109
- B?.(W), u(!1);
108
+ W?.(M), u(!1);
110
109
  break;
111
110
  case "on_close":
112
111
  u(!1);
@@ -119,7 +118,7 @@ const tt = ({
119
118
  );
120
119
  if (o.state === "transfer_success" && h)
121
120
  return /* @__PURE__ */ t(
122
- G,
121
+ z,
123
122
  {
124
123
  showTargetToken: !0,
125
124
  title: n("transfer.success.swap.title", "Swap successful"),
@@ -127,7 +126,7 @@ const tt = ({
127
126
  onMsg: (e) => {
128
127
  switch (e.type) {
129
128
  case "on_dismiss_success":
130
- g(void 0), D();
129
+ g(void 0), R();
131
130
  break;
132
131
  default:
133
132
  s(e.type);
@@ -138,15 +137,15 @@ const tt = ({
138
137
  switch (f) {
139
138
  case "error":
140
139
  return /* @__PURE__ */ t(
141
- Y,
140
+ X,
142
141
  {
143
142
  message: "Couldn't load tokens list.",
144
- onClickRetry: E
143
+ onClickRetry: B
145
144
  }
146
145
  );
147
146
  case "success":
148
147
  return r !== "none" ? /* @__PURE__ */ t(
149
- H,
148
+ G,
150
149
  {
151
150
  showBalances: !0,
152
151
  showChainsSelector: !0,
@@ -173,7 +172,7 @@ const tt = ({
173
172
  ) : /* @__PURE__ */ _("div", { className: "gap-sw-2xl flex flex-col", children: [
174
173
  /* @__PURE__ */ _("div", { className: "gap-[10px] relative flex flex-col", children: [
175
174
  /* @__PURE__ */ t(
176
- b.Source,
175
+ y.Source,
177
176
  {
178
177
  heading: n("tokenInput.heading.source.swap", "Sell"),
179
178
  isChanging: l === "source",
@@ -194,9 +193,9 @@ const tt = ({
194
193
  }
195
194
  }
196
195
  ),
197
- /* @__PURE__ */ t(J, { disabled: I }),
196
+ /* @__PURE__ */ t(H, {}),
198
197
  /* @__PURE__ */ t(
199
- b.Target,
198
+ y.Target,
200
199
  {
201
200
  heading: n("tokenInput.heading.target.swap", "Buy"),
202
201
  isChanging: l === "target",
@@ -219,7 +218,7 @@ const tt = ({
219
218
  )
220
219
  ] }),
221
220
  !!o.walletAddress && o.targetToken && !o.targetToken.isIntent && /* @__PURE__ */ t(
222
- z,
221
+ P,
223
222
  {
224
223
  onMsg: (e) => {
225
224
  switch (e.type) {
@@ -231,9 +230,9 @@ const tt = ({
231
230
  }
232
231
  }
233
232
  ),
234
- !v && /* @__PURE__ */ t(K, {}),
233
+ !I && /* @__PURE__ */ t(U, {}),
235
234
  /* @__PURE__ */ t(
236
- P,
235
+ K,
237
236
  {
238
237
  providers: m,
239
238
  makeTransfer: C,
@@ -250,6 +249,6 @@ const tt = ({
250
249
  }
251
250
  };
252
251
  export {
253
- tt as WidgetSwapContent
252
+ et as WidgetSwapContent
254
253
  };
255
254
  //# sourceMappingURL=WidgetSwapContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetSwapContent.js","sources":["../../../src/widgets/WidgetSwap/WidgetSwapContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetSwapSkeleton } from './WidgetSwapSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapDirectionSwitcher,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\ntype Msg =\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean }\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' };\n\nexport type Props = CommonWidgetProps<Msg> & {\n isOneWay?: boolean;\n};\n\nexport const WidgetSwapContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n isOneWay,\n}: Props) => {\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { t } = useTypedTranslation();\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(\n isCompatibilityCheckRequired,\n );\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(isCompatibilityCheckRequired);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n ['setDefaultSelectedTokens', { skipIntents: false }],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetSwapSkeleton />;\n }\n\n if (isCompatibilityCheckRequired && isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.swap.title', 'Swap successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n showChainsSelector\n variant={tokenModalOpen}\n groupTokens={tokenModalOpen === 'source'}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <TokenInput.Source\n heading={t('tokenInput.heading.source.swap', 'Sell')}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n\n <SwapDirectionSwitcher disabled={isOneWay} />\n\n <TokenInput.Target\n heading={t('tokenInput.heading.target.swap', 'Buy')}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={\n ctx.sourceToken?.isIntent && ctx.targetToken?.isIntent\n ? t('submit.active.swap', 'Swap')\n : t('submit.active.intentsSwap', 'Swap & send')\n }\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetSwapSkeleton />;\n }\n};\n"],"names":["WidgetSwapContent","providers","makeTransfer","onMsg","isLoading","isOneWay","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","t","useTypedTranslation","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","onBackToSwap","useStoreSideEffects","isDebug","WidgetSwapSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","TokenInput","SwapDirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetSwapContent.js","sources":["../../../src/widgets/WidgetSwap/WidgetSwapContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetSwapSkeleton } from './WidgetSwapSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapDirectionSwitcher,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\nexport type Msg =\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean }\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetSwapContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { t } = useTypedTranslation();\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(\n isCompatibilityCheckRequired,\n );\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(isCompatibilityCheckRequired);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n ['setDefaultSelectedTokens', { skipIntents: false }],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetSwapSkeleton />;\n }\n\n if (isCompatibilityCheckRequired && isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.swap.title', 'Swap successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n showChainsSelector\n variant={tokenModalOpen}\n groupTokens={tokenModalOpen === 'source'}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <TokenInput.Source\n heading={t('tokenInput.heading.source.swap', 'Sell')}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n\n <SwapDirectionSwitcher />\n\n <TokenInput.Target\n heading={t('tokenInput.heading.target.swap', 'Buy')}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={\n ctx.sourceToken?.isIntent && ctx.targetToken?.isIntent\n ? t('submit.active.swap', 'Swap')\n : t('submit.active.intentsSwap', 'Swap & send')\n }\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetSwapSkeleton />;\n }\n};\n"],"names":["WidgetSwapContent","providers","makeTransfer","onMsg","isLoading","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","t","useTypedTranslation","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","onBackToSwap","useStoreSideEffects","isDebug","WidgetSwapSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","TokenInput","SwapDirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as a, jsx as l } from "react/jsx-runtime";
2
2
  import o from "clsx";
3
3
  import { SkeletonBox as s } from "../../components/SkeletonBox.js";
4
- import { y as i } from "../../config-CyBNYvb1.js";
4
+ import { y as i } from "../../config-Opy5ppbU.js";
5
5
  const m = () => {
6
6
  const { hideTokenInputHeadings: e } = i();
7
7
  return /* @__PURE__ */ a("div", { className: "w-full gap-sw-lg relative flex flex-col", children: [
@@ -1,24 +1,23 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { BaseContainer as m } from "../../components/BaseContainer.js";
3
- import { WidgetContainer as p } from "../../components/WidgetContainer.js";
4
- import { WidgetSwapContent as a } from "./WidgetSwapContent.js";
5
- const s = ({
6
- HeaderComponent: r,
7
- FooterComponent: t,
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { WidgetContainer as n } from "../../components/WidgetContainer.js";
3
+ import { WidgetSwapContent as p } from "./WidgetSwapContent.js";
4
+ const g = ({
5
+ HeaderComponent: o,
6
+ FooterComponent: r,
8
7
  isFullPage: i,
9
8
  className: e,
10
- ...n
11
- }) => /* @__PURE__ */ o(m, { children: /* @__PURE__ */ o(
12
- p,
9
+ ...m
10
+ }) => /* @__PURE__ */ t(
11
+ n,
13
12
  {
14
13
  className: e,
15
14
  isFullPage: i,
16
- HeaderComponent: r,
17
- FooterComponent: t,
18
- children: /* @__PURE__ */ o(a, { ...n })
15
+ HeaderComponent: o,
16
+ FooterComponent: r,
17
+ children: /* @__PURE__ */ t(p, { ...m })
19
18
  }
20
- ) });
19
+ );
21
20
  export {
22
- s as WidgetSwap
21
+ g as WidgetSwap
23
22
  };
24
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/widgets/WidgetSwap/index.tsx"],"sourcesContent":["import { BaseContainer } from '../../components/BaseContainer';\nimport {\n WidgetContainer,\n WidgetContainerProps,\n} from '../../components/WidgetContainer';\nimport { Props, WidgetSwapContent } from './WidgetSwapContent';\n\nexport type WidgetSwapProps = Props & Omit<WidgetContainerProps, 'children'>;\n\nexport const WidgetSwap = ({\n HeaderComponent,\n FooterComponent,\n isFullPage,\n className,\n ...widgetProps\n}: WidgetSwapProps) => (\n <BaseContainer>\n <WidgetContainer\n className={className}\n isFullPage={isFullPage}\n HeaderComponent={HeaderComponent}\n FooterComponent={FooterComponent}>\n <WidgetSwapContent {...widgetProps} />\n </WidgetContainer>\n </BaseContainer>\n);\n"],"names":["WidgetSwap","HeaderComponent","FooterComponent","isFullPage","className","widgetProps","BaseContainer","jsx","WidgetContainer","WidgetSwapContent"],"mappings":";;;;AASO,MAAMA,IAAa,CAAC;AAAA,EACzB,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,wBACGC,GAAA,EACC,UAAA,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAAJ;AAAA,IACA,YAAAD;AAAA,IACA,iBAAAF;AAAA,IACA,iBAAAC;AAAA,IACA,UAAA,gBAAAK,EAACE,GAAA,EAAmB,GAAGJ,EAAA,CAAa;AAAA,EAAA;AACtC,EAAA,CACF;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/widgets/WidgetSwap/index.tsx"],"sourcesContent":["import {\n WidgetContainer,\n WidgetContainerProps,\n} from '../../components/WidgetContainer';\nimport { Props, WidgetSwapContent } from './WidgetSwapContent';\n\nexport type WidgetSwapProps = Props & Omit<WidgetContainerProps, 'children'>;\n\nexport const WidgetSwap = ({\n HeaderComponent,\n FooterComponent,\n isFullPage,\n className,\n ...widgetProps\n}: WidgetSwapProps) => (\n <WidgetContainer\n className={className}\n isFullPage={isFullPage}\n HeaderComponent={HeaderComponent}\n FooterComponent={FooterComponent}>\n <WidgetSwapContent {...widgetProps} />\n </WidgetContainer>\n);\n"],"names":["WidgetSwap","HeaderComponent","FooterComponent","isFullPage","className","widgetProps","jsx","WidgetContainer","WidgetSwapContent"],"mappings":";;;AAQO,MAAMA,IAAa,CAAC;AAAA,EACzB,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAAH;AAAA,IACA,YAAAD;AAAA,IACA,iBAAAF;AAAA,IACA,iBAAAC;AAAA,IACA,UAAA,gBAAAI,EAACE,GAAA,EAAmB,GAAGH,EAAA,CAAa;AAAA,EAAA;AACtC;"}
@@ -1,6 +1,6 @@
1
1
  import { CommonWidgetProps, TokenInputType } from '../types';
2
2
  import { Token } from '../../types';
3
- type Msg = {
3
+ export type Msg = {
4
4
  type: 'on_select_token';
5
5
  token: Token;
6
6
  variant: TokenInputType;
@@ -12,4 +12,3 @@ type Msg = {
12
12
  };
13
13
  export type Props = CommonWidgetProps<Msg>;
14
14
  export declare const WidgetWithdrawContent: ({ providers, makeTransfer, onMsg, isLoading, }: Props) => import("react/jsx-runtime").JSX.Element;
15
- export {};
@@ -3,7 +3,7 @@ import { useState as _, useEffect as b } from "react";
3
3
  import { useTokenModal as N } from "../../hooks/useTokenModal.js";
4
4
  import { WidgetWithdrawSkeleton as y } from "./WidgetWithdrawSkeleton.js";
5
5
  import { useTypedTranslation as O } from "../../localisation.js";
6
- import { b as Q, u as j, y as q, n as F, c as U, p as T, o as K, S as P } from "../../config-CyBNYvb1.js";
6
+ import { b as Q, u as j, y as q, n as F, c as U, p as T, o as K, S as P } from "../../config-Opy5ppbU.js";
7
7
  import "@tanstack/react-query";
8
8
  import "@headlessui/react";
9
9
  import "@material-symbols-svg/react-rounded/icons/chevron-left";
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetWithdrawContent.js","sources":["../../../src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetWithdrawSkeleton } from './WidgetWithdrawSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError, Card, DirectionSwitcher } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\ntype Msg =\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' }\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetWithdrawContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { t } = useTypedTranslation();\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(true);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n [\n 'setDefaultSelectedTokens',\n { skipIntents: false, target: 'same-asset' },\n ],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetWithdrawSkeleton />;\n }\n\n if (isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.withdrawal.title', 'Withdrawal successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n variant={tokenModalOpen}\n showChainsSelector={tokenModalOpen === 'target'}\n groupTokens={false}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl relative flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <Card padding=\"none\">\n <TokenInput.Source\n heading={t(\n 'tokenInput.heading.source.withdraw',\n 'Withdraw token',\n )}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n\n <DirectionSwitcher isEnabled={false} />\n\n <Card padding=\"none\">\n <TokenInput.Target\n heading={t(\n 'tokenInput.heading.target.withdraw',\n 'Receive token',\n )}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={t('submit.active.withdraw', 'Swap & withdraw')}\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetWithdrawSkeleton />;\n }\n};\n"],"names":["WidgetWithdrawContent","providers","makeTransfer","onMsg","isLoading","t","useTypedTranslation","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","useStoreSideEffects","isDebug","onBackToSwap","WidgetWithdrawSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","Card","TokenInput","DirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCO,MAAMA,KAAwB,CAAC;AAAA,EACpC,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AACF,MAAa;AACX,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACR,EAAE,KAAAC,EAAA,IAAQC,EAAA,GACV,EAAE,6BAAAC,EAAA,IAAgCC,EAAA,GAClC;AAAA,IACJ,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,IACEC,EAAA,GAEE,EAAE,QAAQC,GAAc,SAASC,EAAA,IAAkBC,EAAA,GACnD,EAAE,gBAAAC,GAAgB,uBAAAC,EAAA,IAA0BC,EAAc,EAAE,OAAAnB,GAAO,GACnE,EAAE,gBAAAoB,GAAgB,eAAAC,GAAe,kBAAAC,EAAA,IACrCC,EAAA,GAEIC,IAA+BC,EAAA,GAC/B,CAACC,GAAqBC,CAAsB,IAAIC,EAAS,EAAK;AAEpE,EAAAC,EAAU,MAAM;AACd,IAAIL,KACFG,EAAuB,EAAI;AAAA,EAE/B,GAAG,CAACH,CAA4B,CAAC;AAEjC,QAAM,CAACM,GAAgBC,CAAiB,IAAIH,EAAA;AAI5C,EAAAC,EAAU,MAAM;AACd,IAAAG,EAAU,SAAS,EAAE,oBAAoB,GAAA,CAAM;AAAA,EACjD,GAAG,CAAA,CAAE,GAELC,EAAoB;AAAA,IAClB,OAAOC,EAAA;AAAA,IACP,UAAU;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,QACE;AAAA,QACA,EAAE,aAAa,IAAO,QAAQ,aAAA;AAAA,MAAa;AAAA,MAE7C;AAAA,QACE;AAAA,QACA;AAAA,UACE,SAAS;AAAA,UACT,MAAMZ,MAAqB,WAAW,cAAc;AAAA,UACpD,sBAAAZ;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,CAAC,8BAA8B,EAAE,eAAAD,EAAA,CAAe;AAAA,IAAA;AAAA,EAClD,CACD;AAED,QAAM0B,IAAe,MAAM;AACzB,IAAAH,EAAU,SAAS,EAAE,oBAAoB,IAAO,oBAAoB,IAAM;AAAA,EAC5E;AAEA,MAAM/B,KAAca,MAAiB,WAAW,CAACV,EAAI;AACnD,6BAAQgC,GAAA,EAAuB;AAGjC,MAAIV;AACF,WACE,gBAAAW;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAAxC;AAAA,QACA,OAAO,CAACyC,MAAQ;AACd,kBAAQA,EAAI,MAAA;AAAA,YACV,KAAK;AACH,cAAA3B,IAAkBD,CAAkB,GACpCgB,EAAuB,EAAK;AAC5B;AAAA,YACF,KAAK;AACH,cAAAA,EAAuB,EAAK;AAC5B;AAAA,YACF;AACE,cAAAa,EAAaD,EAAI,IAAI;AAAA,UAAA;AAAA,QAE3B;AAAA,MAAA;AAAA,IAAA;AAKN,MAAInC,EAAI,UAAU,sBAAwB0B;AACxC,WACE,gBAAAO;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,iBAAe;AAAA,QACf,OAAOvC,EAAE,qCAAqC,uBAAuB;AAAA,QACpE,GAAG4B;AAAA,QACJ,OAAO,CAACS,MAAQ;AACd,kBAAQA,EAAI,MAAA;AAAA,YACV,KAAK;AACH,cAAAR,EAAkB,MAAS,GAC3BI,EAAA;AACA;AAAA,YACF;AACE,cAAAK,EAAaD,EAAI,IAAI;AAAA,UAAA;AAAA,QAE3B;AAAA,MAAA;AAAA,IAAA;AAKN,UAAQzB,GAAA;AAAA,IACN,KAAK;AACH,aACE,gBAAAuB;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAc3B;AAAA,QAAA;AAAA,MAAA;AAAA,IAIpB,KAAK;AACH,aAAIE,MAAmB,SAEnB,gBAAAoB;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,cAAY;AAAA,UACZ,SAAS1B;AAAA,UACT,oBAAoBA,MAAmB;AAAA,UACvC,aAAa;AAAA,UACb,cACEA,MAAmB,WACfT,EAAa,SACbA,EAAa;AAAA,UAEnB,OAAO,CAAC+B,MAAQ;AACd,oBAAQA,EAAI,MAAA;AAAA,cACV,KAAK;AACH,gBAAAlB,EAAcJ,GAAgBsB,EAAI,KAAK,GACvCrB,EAAsB,MAAM,GAC5BlB,IAAQ;AAAA,kBACN,MAAMuC,EAAI;AAAA,kBACV,OAAOA,EAAI;AAAA,kBACX,SAAStB;AAAA,gBAAA,CACV;AACD;AAAA,cACF,KAAK;AACH,gBAAAC,EAAsB,MAAM;AAC5B;AAAA,cACF;AACE,gBAAAsB,EAAaD,CAAG;AAAA,YAAA;AAAA,UAEtB;AAAA,QAAA;AAAA,MAAA,IAMJ,gBAAAK,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,UAAA,gBAAAP,EAACQ,GAAA,EAAK,SAAQ,QACZ,UAAA,gBAAAR;AAAA,YAACS,EAAW;AAAA,YAAX;AAAA,cACC,SAAS5C;AAAA,gBACP;AAAA,gBACA;AAAA,cAAA;AAAA,cAEF,YAAYoB,MAAqB;AAAA,cACjC,OAAO,CAACiB,MAAQ;AACd,wBAAQA,EAAI,MAAA;AAAA,kBACV,KAAK;AACH,oBAAAlB,EAAc,UAAUkB,EAAI,KAAK;AACjC;AAAA,kBACF,KAAK;AACH,oBAAAnB,EAAe,UAAUmB,EAAI,MAAM;AACnC;AAAA,kBACF,KAAK;AACH,oBAAArB,EAAsB,QAAQ;AAC9B;AAAA,kBACF;AACE,oBAAAsB,EAAaD,CAAG;AAAA,gBAAA;AAAA,cAEtB;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,UAEA,gBAAAF,EAACU,GAAA,EAAkB,WAAW,GAAA,CAAO;AAAA,UAErC,gBAAAV,EAACQ,GAAA,EAAK,SAAQ,QACZ,UAAA,gBAAAR;AAAA,YAACS,EAAW;AAAA,YAAX;AAAA,cACC,SAAS5C;AAAA,gBACP;AAAA,gBACA;AAAA,cAAA;AAAA,cAEF,YAAYoB,MAAqB;AAAA,cACjC,OAAO,CAACiB,MAAQ;AACd,wBAAQA,EAAI,MAAA;AAAA,kBACV,KAAK;AACH,oBAAAlB,EAAc,UAAUkB,EAAI,KAAK;AACjC;AAAA,kBACF,KAAK;AACH,oBAAAnB,EAAe,UAAUmB,EAAI,MAAM;AACnC;AAAA,kBACF,KAAK;AACH,oBAAArB,EAAsB,QAAQ;AAC9B;AAAA,kBACF;AACE,oBAAAsB,EAAaD,CAAG;AAAA,gBAAA;AAAA,cAEtB;AAAA,YAAA;AAAA,UAAA,EACF,CACF;AAAA,QAAA,GACF;AAAA,QAEC,CAAC,CAACnC,EAAI,iBACLA,EAAI,eACJ,CAACA,EAAI,YAAY,YACf,gBAAAiC;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,OAAO,CAACT,MAAQ;AACd,sBAAQA,EAAI,MAAA;AAAA,gBACV,KAAK;AACH;AAAA,gBACF;AACE,kBAAAC,EAAaD,EAAI,MAAM,EAAE,YAAY,IAAO;AAAA,cAAA;AAAA,YAElD;AAAA,UAAA;AAAA,QAAA;AAAA,QAIL,CAACjC,KAA+B,gBAAA+B,EAACY,GAAA,EAAU;AAAA,QAE5C,gBAAAZ;AAAA,UAACa;AAAA,UAAA;AAAA,YACC,WAAApD;AAAA,YACA,cAAAC;AAAA,YACA,OAAOG,EAAE,0BAA0B,iBAAiB;AAAA,YACpD,WAAW,CAACiD,MAAa;AACvB,cAAApB,EAAkBoB,CAAQ,GAC1BnD,IAAQ,EAAE,MAAM,uBAAuB;AAAA,YACzC;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,GACF;AAAA,IAIJ,KAAK;AAAA,IACL;AACE,+BAAQoC,GAAA,EAAuB;AAAA,EAAA;AAErC;"}
1
+ {"version":3,"file":"WidgetWithdrawContent.js","sources":["../../../src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetWithdrawSkeleton } from './WidgetWithdrawSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError, Card, DirectionSwitcher } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\nexport type Msg =\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' }\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetWithdrawContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { t } = useTypedTranslation();\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(true);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n [\n 'setDefaultSelectedTokens',\n { skipIntents: false, target: 'same-asset' },\n ],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetWithdrawSkeleton />;\n }\n\n if (isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.withdrawal.title', 'Withdrawal successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n variant={tokenModalOpen}\n showChainsSelector={tokenModalOpen === 'target'}\n groupTokens={false}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl relative flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <Card padding=\"none\">\n <TokenInput.Source\n heading={t(\n 'tokenInput.heading.source.withdraw',\n 'Withdraw token',\n )}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n\n <DirectionSwitcher isEnabled={false} />\n\n <Card padding=\"none\">\n <TokenInput.Target\n heading={t(\n 'tokenInput.heading.target.withdraw',\n 'Receive token',\n )}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={t('submit.active.withdraw', 'Swap & withdraw')}\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetWithdrawSkeleton />;\n }\n};\n"],"names":["WidgetWithdrawContent","providers","makeTransfer","onMsg","isLoading","t","useTypedTranslation","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","useStoreSideEffects","isDebug","onBackToSwap","WidgetWithdrawSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","Card","TokenInput","DirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
2
  import o from "clsx";
3
3
  import { SkeletonBox as l } from "../../components/SkeletonBox.js";
4
- import { y as x } from "../../config-CyBNYvb1.js";
4
+ import { y as x } from "../../config-Opy5ppbU.js";
5
5
  const p = () => {
6
6
  const { hideTokenInputHeadings: s } = x();
7
7
  return /* @__PURE__ */ a("div", { className: "w-full gap-sw-xl relative flex flex-col", children: [