@b3dotfun/sdk 0.0.65-test.5 → 0.0.66-alpha.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 (316) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.js +69 -97
  2. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +23 -10
  3. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
  4. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +45 -14
  5. package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
  6. package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.js +41 -0
  7. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
  8. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +14 -251
  9. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
  10. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +3 -5
  11. package/dist/cjs/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  12. package/dist/cjs/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  13. package/dist/cjs/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  14. package/dist/cjs/anyspend/react/components/common/OrderHistory.js +3 -7
  15. package/dist/cjs/anyspend/react/components/common/OrderTokenAmount.js +2 -10
  16. package/dist/cjs/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
  17. package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  18. package/dist/cjs/anyspend/react/components/common/RecipientSelection.js +1 -1
  19. package/dist/cjs/anyspend/react/components/index.d.ts +1 -0
  20. package/dist/cjs/anyspend/react/components/index.js +4 -1
  21. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
  22. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +16 -10
  23. package/dist/cjs/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
  24. package/dist/cjs/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.js +13 -9
  25. package/dist/cjs/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
  26. package/dist/cjs/anyspend/react/hooks/useCryptoPaymentMethodState.js +51 -0
  27. package/dist/cjs/anyspend/react/hooks/useSigMint.d.ts +1 -1
  28. package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +2 -38
  29. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
  30. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +35 -251
  31. package/dist/cjs/global-account/react/components/B3DynamicModal.js +15 -23
  32. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
  33. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +279 -113
  34. package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +5 -6
  35. package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +193 -24
  36. package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
  37. package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.js +141 -0
  38. package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +1 -3
  39. package/dist/cjs/global-account/react/components/index.d.ts +4 -5
  40. package/dist/cjs/global-account/react/components/index.js +9 -14
  41. package/dist/cjs/global-account/react/components/ui/Tabs.js +2 -2
  42. package/dist/cjs/global-account/react/components/ui/dialog.js +2 -2
  43. package/dist/cjs/global-account/react/components/ui/drawer.js +1 -1
  44. package/dist/cjs/global-account/react/hooks/index.d.ts +1 -1
  45. package/dist/cjs/global-account/react/hooks/index.js +1 -3
  46. package/dist/cjs/global-account/react/hooks/useAccountWallet.d.ts +0 -1
  47. package/dist/cjs/global-account/react/hooks/useAccountWallet.js +0 -18
  48. package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +2 -2
  49. package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +0 -1
  50. package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +6 -14
  51. package/dist/cjs/global-account/react/hooks/useUserQuery.d.ts +2 -2
  52. package/dist/cjs/global-account/react/stores/index.d.ts +0 -1
  53. package/dist/cjs/global-account/react/stores/index.js +1 -3
  54. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +26 -31
  55. package/dist/cjs/global-account/react/utils/profileDisplay.d.ts +0 -2
  56. package/dist/cjs/global-account/react/utils/profileDisplay.js +2 -2
  57. package/dist/cjs/shared/constants/chains/supported.d.ts +3 -3
  58. package/dist/cjs/shared/utils/ipfs.js +3 -10
  59. package/dist/esm/anyspend/react/components/AnySpend.js +70 -98
  60. package/dist/esm/anyspend/react/components/AnySpendCustom.js +23 -10
  61. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
  62. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +45 -14
  63. package/dist/esm/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
  64. package/dist/esm/anyspend/react/components/AnySpendDepositUpside.js +38 -0
  65. package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
  66. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +15 -249
  67. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
  68. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +3 -5
  69. package/dist/esm/anyspend/react/components/common/FeeDetailPanel.js +1 -1
  70. package/dist/esm/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
  71. package/dist/esm/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  72. package/dist/esm/anyspend/react/components/common/OrderHistory.js +5 -6
  73. package/dist/esm/anyspend/react/components/common/OrderTokenAmount.js +2 -10
  74. package/dist/esm/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
  75. package/dist/esm/anyspend/react/components/common/PointsDetailPanel.js +1 -1
  76. package/dist/esm/anyspend/react/components/common/RecipientSelection.js +1 -1
  77. package/dist/esm/anyspend/react/components/index.d.ts +1 -0
  78. package/dist/esm/anyspend/react/components/index.js +1 -0
  79. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
  80. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +16 -10
  81. package/dist/esm/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
  82. package/dist/esm/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.js +13 -9
  83. package/dist/esm/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
  84. package/dist/esm/anyspend/react/hooks/useCryptoPaymentMethodState.js +48 -0
  85. package/dist/esm/anyspend/react/hooks/useSigMint.d.ts +1 -1
  86. package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +2 -38
  87. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
  88. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +38 -254
  89. package/dist/esm/global-account/react/components/B3DynamicModal.js +15 -23
  90. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
  91. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +280 -113
  92. package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +5 -6
  93. package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +195 -26
  94. package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
  95. package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.js +135 -0
  96. package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +2 -4
  97. package/dist/esm/global-account/react/components/index.d.ts +4 -5
  98. package/dist/esm/global-account/react/components/index.js +5 -9
  99. package/dist/esm/global-account/react/components/ui/Tabs.js +2 -2
  100. package/dist/esm/global-account/react/components/ui/dialog.js +2 -2
  101. package/dist/esm/global-account/react/components/ui/drawer.js +1 -1
  102. package/dist/esm/global-account/react/hooks/index.d.ts +1 -1
  103. package/dist/esm/global-account/react/hooks/index.js +1 -1
  104. package/dist/esm/global-account/react/hooks/useAccountWallet.d.ts +0 -1
  105. package/dist/esm/global-account/react/hooks/useAccountWallet.js +0 -17
  106. package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +2 -2
  107. package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +0 -1
  108. package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +6 -14
  109. package/dist/esm/global-account/react/hooks/useUserQuery.d.ts +2 -2
  110. package/dist/esm/global-account/react/stores/index.d.ts +0 -1
  111. package/dist/esm/global-account/react/stores/index.js +0 -1
  112. package/dist/esm/global-account/react/stores/useModalStore.d.ts +26 -31
  113. package/dist/esm/global-account/react/utils/profileDisplay.d.ts +0 -2
  114. package/dist/esm/global-account/react/utils/profileDisplay.js +2 -2
  115. package/dist/esm/shared/constants/chains/supported.d.ts +3 -3
  116. package/dist/esm/shared/utils/ipfs.js +3 -10
  117. package/dist/styles/index.css +1 -1
  118. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
  119. package/dist/types/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
  120. package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
  121. package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
  122. package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
  123. package/dist/types/anyspend/react/components/index.d.ts +1 -0
  124. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
  125. package/dist/types/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
  126. package/dist/types/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
  127. package/dist/types/anyspend/react/hooks/useSigMint.d.ts +1 -1
  128. package/dist/types/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
  129. package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
  130. package/dist/types/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
  131. package/dist/types/global-account/react/components/index.d.ts +4 -5
  132. package/dist/types/global-account/react/hooks/index.d.ts +1 -1
  133. package/dist/types/global-account/react/hooks/useAccountWallet.d.ts +0 -1
  134. package/dist/types/global-account/react/hooks/useAuthentication.d.ts +2 -2
  135. package/dist/types/global-account/react/hooks/useUserQuery.d.ts +2 -2
  136. package/dist/types/global-account/react/stores/index.d.ts +0 -1
  137. package/dist/types/global-account/react/stores/useModalStore.d.ts +26 -31
  138. package/dist/types/global-account/react/utils/profileDisplay.d.ts +0 -2
  139. package/dist/types/shared/constants/chains/supported.d.ts +3 -3
  140. package/package.json +1 -2
  141. package/src/anyspend/react/components/AnySpend.tsx +218 -256
  142. package/src/anyspend/react/components/AnySpendCustom.tsx +31 -16
  143. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +56 -13
  144. package/src/anyspend/react/components/AnySpendDepositUpside.tsx +81 -0
  145. package/src/anyspend/react/components/AnyspendDepositHype.tsx +36 -524
  146. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +14 -7
  147. package/src/anyspend/react/components/common/FeeDetailPanel.tsx +1 -1
  148. package/src/anyspend/react/components/common/FiatPaymentMethod.tsx +2 -2
  149. package/src/anyspend/react/components/common/OrderHistory.tsx +13 -8
  150. package/src/anyspend/react/components/common/OrderTokenAmount.tsx +2 -13
  151. package/src/anyspend/react/components/common/PanelOnrampPayment.tsx +1 -1
  152. package/src/anyspend/react/components/common/PointsDetailPanel.tsx +1 -1
  153. package/src/anyspend/react/components/common/RecipientSelection.tsx +1 -1
  154. package/src/anyspend/react/components/index.ts +1 -0
  155. package/src/anyspend/react/hooks/useAnyspendFlow.ts +24 -12
  156. package/src/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.ts +20 -12
  157. package/src/anyspend/react/hooks/useCryptoPaymentMethodState.ts +71 -0
  158. package/src/global-account/react/components/AccountAssets/AccountAssets.tsx +25 -115
  159. package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +128 -477
  160. package/src/global-account/react/components/B3DynamicModal.tsx +17 -28
  161. package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +433 -332
  162. package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +10 -6
  163. package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +589 -73
  164. package/src/global-account/react/components/ProfileEditor/ProfileEditor.tsx +265 -0
  165. package/src/global-account/react/components/SignInWithB3/SignIn.tsx +7 -11
  166. package/src/global-account/react/components/index.ts +5 -11
  167. package/src/global-account/react/components/ui/Tabs.tsx +13 -5
  168. package/src/global-account/react/components/ui/dialog.tsx +14 -32
  169. package/src/global-account/react/components/ui/drawer.tsx +1 -1
  170. package/src/global-account/react/hooks/index.ts +0 -3
  171. package/src/global-account/react/hooks/useAccountWallet.tsx +0 -26
  172. package/src/global-account/react/hooks/useB3BalanceFromAddresses.ts +0 -1
  173. package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +6 -12
  174. package/src/global-account/react/stores/index.ts +0 -1
  175. package/src/global-account/react/stores/useModalStore.ts +28 -35
  176. package/src/global-account/react/utils/profileDisplay.ts +2 -4
  177. package/src/shared/utils/ipfs.ts +3 -10
  178. package/src/styles/index.css +9 -6
  179. package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +0 -1
  180. package/dist/cjs/global-account/react/components/Deposit/Deposit.js +0 -65
  181. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
  182. package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +0 -37
  183. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
  184. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +0 -331
  185. package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
  186. package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.js +0 -34
  187. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
  188. package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +0 -23
  189. package/dist/cjs/global-account/react/components/ManageAccount/Header.d.ts +0 -3
  190. package/dist/cjs/global-account/react/components/ManageAccount/Header.js +0 -120
  191. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
  192. package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.js +0 -43
  193. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
  194. package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +0 -16
  195. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
  196. package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +0 -15
  197. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
  198. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +0 -47
  199. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
  200. package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +0 -50
  201. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
  202. package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.js +0 -8
  203. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
  204. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +0 -106
  205. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
  206. package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +0 -22
  207. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
  208. package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.js +0 -12
  209. package/dist/cjs/global-account/react/components/Send/Send.d.ts +0 -5
  210. package/dist/cjs/global-account/react/components/Send/Send.js +0 -187
  211. package/dist/cjs/global-account/react/components/icons/BellIcon.d.ts +0 -3
  212. package/dist/cjs/global-account/react/components/icons/BellIcon.js +0 -5
  213. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
  214. package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.js +0 -7
  215. package/dist/cjs/global-account/react/components/icons/CopyIcon.d.ts +0 -2
  216. package/dist/cjs/global-account/react/components/icons/CopyIcon.js +0 -7
  217. package/dist/cjs/global-account/react/components/icons/LinkIcon.d.ts +0 -3
  218. package/dist/cjs/global-account/react/components/icons/LinkIcon.js +0 -5
  219. package/dist/cjs/global-account/react/components/icons/LockIcon.d.ts +0 -3
  220. package/dist/cjs/global-account/react/components/icons/LockIcon.js +0 -5
  221. package/dist/cjs/global-account/react/components/icons/WalletIcon.d.ts +0 -2
  222. package/dist/cjs/global-account/react/components/icons/WalletIcon.js +0 -7
  223. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
  224. package/dist/cjs/global-account/react/stores/useRecentAddressesStore.js +0 -36
  225. package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +0 -1
  226. package/dist/esm/global-account/react/components/Deposit/Deposit.js +0 -59
  227. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
  228. package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +0 -34
  229. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
  230. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +0 -325
  231. package/dist/esm/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
  232. package/dist/esm/global-account/react/components/ManageAccount/AppsContent.js +0 -32
  233. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
  234. package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +0 -21
  235. package/dist/esm/global-account/react/components/ManageAccount/Header.d.ts +0 -3
  236. package/dist/esm/global-account/react/components/ManageAccount/Header.js +0 -81
  237. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
  238. package/dist/esm/global-account/react/components/ManageAccount/HomeActions.js +0 -41
  239. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
  240. package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +0 -10
  241. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
  242. package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +0 -13
  243. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
  244. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +0 -45
  245. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
  246. package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +0 -45
  247. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
  248. package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.js +0 -6
  249. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
  250. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +0 -101
  251. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
  252. package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +0 -20
  253. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
  254. package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.js +0 -10
  255. package/dist/esm/global-account/react/components/Send/Send.d.ts +0 -5
  256. package/dist/esm/global-account/react/components/Send/Send.js +0 -181
  257. package/dist/esm/global-account/react/components/icons/BellIcon.d.ts +0 -3
  258. package/dist/esm/global-account/react/components/icons/BellIcon.js +0 -3
  259. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
  260. package/dist/esm/global-account/react/components/icons/ChevronDownIcon.js +0 -4
  261. package/dist/esm/global-account/react/components/icons/CopyIcon.d.ts +0 -2
  262. package/dist/esm/global-account/react/components/icons/CopyIcon.js +0 -4
  263. package/dist/esm/global-account/react/components/icons/LinkIcon.d.ts +0 -3
  264. package/dist/esm/global-account/react/components/icons/LinkIcon.js +0 -3
  265. package/dist/esm/global-account/react/components/icons/LockIcon.d.ts +0 -3
  266. package/dist/esm/global-account/react/components/icons/LockIcon.js +0 -3
  267. package/dist/esm/global-account/react/components/icons/WalletIcon.d.ts +0 -2
  268. package/dist/esm/global-account/react/components/icons/WalletIcon.js +0 -4
  269. package/dist/esm/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
  270. package/dist/esm/global-account/react/stores/useRecentAddressesStore.js +0 -33
  271. package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +0 -1
  272. package/dist/types/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
  273. package/dist/types/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
  274. package/dist/types/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
  275. package/dist/types/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
  276. package/dist/types/global-account/react/components/ManageAccount/Header.d.ts +0 -3
  277. package/dist/types/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
  278. package/dist/types/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
  279. package/dist/types/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
  280. package/dist/types/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
  281. package/dist/types/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
  282. package/dist/types/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
  283. package/dist/types/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
  284. package/dist/types/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
  285. package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
  286. package/dist/types/global-account/react/components/Send/Send.d.ts +0 -5
  287. package/dist/types/global-account/react/components/icons/BellIcon.d.ts +0 -3
  288. package/dist/types/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
  289. package/dist/types/global-account/react/components/icons/CopyIcon.d.ts +0 -2
  290. package/dist/types/global-account/react/components/icons/LinkIcon.d.ts +0 -3
  291. package/dist/types/global-account/react/components/icons/LockIcon.d.ts +0 -3
  292. package/dist/types/global-account/react/components/icons/WalletIcon.d.ts +0 -2
  293. package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
  294. package/src/global-account/react/components/Deposit/Deposit.tsx +0 -211
  295. package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +0 -84
  296. package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +0 -490
  297. package/src/global-account/react/components/ManageAccount/AppsContent.tsx +0 -79
  298. package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +0 -83
  299. package/src/global-account/react/components/ManageAccount/Header.tsx +0 -230
  300. package/src/global-account/react/components/ManageAccount/HomeActions.tsx +0 -118
  301. package/src/global-account/react/components/ManageAccount/HomeContent.tsx +0 -42
  302. package/src/global-account/react/components/ManageAccount/NFTContent.tsx +0 -24
  303. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +0 -79
  304. package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +0 -87
  305. package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +0 -31
  306. package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +0 -182
  307. package/src/global-account/react/components/ManageAccount/TokenContent.tsx +0 -41
  308. package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +0 -61
  309. package/src/global-account/react/components/Send/Send.tsx +0 -585
  310. package/src/global-account/react/components/icons/BellIcon.tsx +0 -15
  311. package/src/global-account/react/components/icons/ChevronDownIcon.tsx +0 -17
  312. package/src/global-account/react/components/icons/CopyIcon.tsx +0 -22
  313. package/src/global-account/react/components/icons/LinkIcon.tsx +0 -15
  314. package/src/global-account/react/components/icons/LockIcon.tsx +0 -15
  315. package/src/global-account/react/components/icons/WalletIcon.tsx +0 -21
  316. package/src/global-account/react/stores/useRecentAddressesStore.ts +0 -55
@@ -2,9 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getDefaultToken, USDC_BASE } from "../../../anyspend/index.js";
4
4
  import { useAnyspendCreateOnrampOrder, useAnyspendCreateOrder, useAnyspendOrderAndTransactions, useAnyspendQuote, useGeoOnrampOptions, } from "../../../anyspend/react/index.js";
5
- import { Button, ShinyButton, StyleRoot, TabsPrimitive, TransitionPanel, useAccountWallet, useB3, useModalStore, useProfile, useRouter, useSearchParamsSSR, useTokenBalanceDirect, useTokenData, useTokenFromUrl, } from "../../../global-account/react/index.js";
6
- import BottomNavigation from "../../../global-account/react/components/ManageAccount/BottomNavigation.js";
7
- import { useAccountWalletImage } from "../../../global-account/react/hooks/useAccountWallet.js";
5
+ import { Button, ShinyButton, StyleRoot, TransitionPanel, useAccountWallet, useProfile, useRouter, useSearchParamsSSR, useTokenBalanceDirect, useTokenData, useTokenFromUrl, } from "../../../global-account/react/index.js";
8
6
  import { cn } from "../../../shared/utils/cn.js";
9
7
  import { formatTokenAmount } from "../../../shared/utils/number.js";
10
8
  import invariant from "invariant";
@@ -12,11 +10,11 @@ import { ArrowDown, HistoryIcon, Loader2 } from "lucide-react";
12
10
  import { motion } from "motion/react";
13
11
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
14
12
  import { toast } from "sonner";
15
- import { defineChain } from "thirdweb";
16
13
  import { parseUnits } from "viem";
17
14
  import { base, mainnet } from "viem/chains";
18
15
  import { useAutoSelectCryptoPaymentMethod } from "../hooks/useAutoSelectCryptoPaymentMethod.js";
19
16
  import { useAutoSetActiveWalletFromWagmi } from "../hooks/useAutoSetActiveWalletFromWagmi.js";
17
+ import { useCryptoPaymentMethodState } from "../hooks/useCryptoPaymentMethodState.js";
20
18
  import { AnySpendFingerprintWrapper, getFingerprintConfig } from "./AnySpendFingerprintWrapper.js";
21
19
  import { CryptoPaymentMethod, CryptoPaymentMethodType } from "./common/CryptoPaymentMethod.js";
22
20
  import { CryptoPaySection } from "./common/CryptoPaySection.js";
@@ -51,25 +49,6 @@ export function AnySpend(props) {
51
49
  function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode = "modal", defaultActiveTab = "crypto", loadOrder, hideTransactionHistoryButton, recipientAddress: recipientAddressFromProps, onTokenSelect, onSuccess, customUsdInputValues, }) {
52
50
  const searchParams = useSearchParamsSSR();
53
51
  const router = useRouter();
54
- const { partnerId } = useB3();
55
- const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
56
- // Define base chain with RPC for modal props
57
- const baseChain = useMemo(() => defineChain({
58
- id: 8453,
59
- name: "Base",
60
- nativeCurrency: {
61
- name: "Ether",
62
- symbol: "ETH",
63
- decimals: 18,
64
- },
65
- rpc: "https://mainnet.base.org",
66
- blockExplorers: [
67
- {
68
- name: "Basescan",
69
- url: "https://basescan.org",
70
- },
71
- ],
72
- }), []);
73
52
  // Determine if we're in "buy mode" based on whether destination token props are provided
74
53
  const isBuyMode = !!(destinationTokenAddress && destinationTokenChainId);
75
54
  // Add refs to track URL state
@@ -99,9 +78,8 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
99
78
  setActivePanel(targetPanel);
100
79
  }, [activePanel]);
101
80
  const [customRecipients, setCustomRecipients] = useState([]);
102
- // Add state for selected payment method
103
- const [selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod] = useState(CryptoPaymentMethodType.NONE);
104
- // Add state for selected fiat payment method
81
+ // Payment method state with dual-state system (auto + explicit user selection)
82
+ const { cryptoPaymentMethod, setCryptoPaymentMethod, selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod, effectiveCryptoPaymentMethod, resetPaymentMethods, } = useCryptoPaymentMethodState();
105
83
  const [selectedFiatPaymentMethod, setSelectedFiatPaymentMethod] = useState(FiatPaymentMethod.NONE);
106
84
  // const [newRecipientAddress, setNewRecipientAddress] = useState("");
107
85
  // const recipientInputRef = useRef<HTMLInputElement>(null);
@@ -117,7 +95,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
117
95
  });
118
96
  const [selectedSrcToken, setSelectedSrcToken] = useState(srcTokenFromUrl);
119
97
  const { data: srcTokenMetadata } = useTokenData(selectedSrcToken?.chainId, selectedSrcToken?.address);
120
- const [srcAmount, setSrcAmount] = useState(searchParams.get("fromAmount") || "0.01");
98
+ const [srcAmount, setSrcAmount] = useState(searchParams.get("fromAmount") || "0");
121
99
  // State for onramp amount
122
100
  const [srcAmountOnRamp, setSrcAmountOnRamp] = useState(searchParams.get("fromAmount") || "5");
123
101
  // State for destination chain/token selection
@@ -331,7 +309,6 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
331
309
  const { address: globalAddress, wallet: globalWallet, connectedEOAWallet } = useAccountWallet();
332
310
  const recipientProfile = useProfile({ address: recipientAddress, fresh: true });
333
311
  const recipientName = recipientProfile.data?.name;
334
- const globalWalletImage = useAccountWalletImage();
335
312
  // Auto-set active wallet from wagmi
336
313
  useAutoSetActiveWalletFromWagmi();
337
314
  // Check token balance for crypto payments
@@ -354,8 +331,9 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
354
331
  // Auto-select crypto payment method based on available wallets and balance
355
332
  useAutoSelectCryptoPaymentMethod({
356
333
  paymentType: activeTab,
334
+ cryptoPaymentMethod,
335
+ setCryptoPaymentMethod,
357
336
  selectedCryptoPaymentMethod,
358
- setSelectedCryptoPaymentMethod,
359
337
  hasEnoughBalance,
360
338
  isBalanceLoading,
361
339
  });
@@ -476,9 +454,9 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
476
454
  // Add orderId and payment method to URL for persistence
477
455
  const params = new URLSearchParams(searchParams.toString()); // Preserve existing params
478
456
  params.set("orderId", orderId);
479
- if (selectedCryptoPaymentMethod !== CryptoPaymentMethodType.NONE) {
480
- console.log("Setting cryptoPaymentMethod in URL:", selectedCryptoPaymentMethod);
481
- params.set("cryptoPaymentMethod", selectedCryptoPaymentMethod);
457
+ if (effectiveCryptoPaymentMethod !== CryptoPaymentMethodType.NONE) {
458
+ console.log("Setting cryptoPaymentMethod in URL:", effectiveCryptoPaymentMethod);
459
+ params.set("cryptoPaymentMethod", effectiveCryptoPaymentMethod);
482
460
  }
483
461
  else {
484
462
  console.log("Payment method is NONE, not setting in URL");
@@ -540,18 +518,18 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
540
518
  if (activeTab === "crypto") {
541
519
  // For crypto: check payment method first, then recipient
542
520
  // If no payment method selected, show "Choose payment method"
543
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
521
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
544
522
  return { text: "Choose payment method", disable: false, error: false, loading: false };
545
523
  }
546
524
  // Check recipient after payment method
547
525
  if (!recipientAddress)
548
526
  return { text: "Select recipient", disable: false, error: false, loading: false };
549
527
  // If payment method selected, show appropriate action
550
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
551
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET) {
528
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
529
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET) {
552
530
  return { text: "Swap", disable: false, error: false, loading: false };
553
531
  }
554
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
532
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
555
533
  return { text: "Continue to payment", disable: false, error: false, loading: false };
556
534
  }
557
535
  }
@@ -565,7 +543,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
565
543
  isCreatingOnrampOrder,
566
544
  anyspendQuote,
567
545
  activeTab,
568
- selectedCryptoPaymentMethod,
546
+ effectiveCryptoPaymentMethod,
569
547
  selectedFiatPaymentMethod,
570
548
  ]);
571
549
  // Handle main button click
@@ -593,7 +571,7 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
593
571
  if (activeTab === "crypto") {
594
572
  // For crypto: check payment method first, then recipient
595
573
  // If no payment method selected, show payment method selection
596
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
574
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
597
575
  console.log("No payment method selected, showing selection panel");
598
576
  navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward");
599
577
  return;
@@ -605,11 +583,11 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
605
583
  }
606
584
  invariant(recipientAddress, "Recipient address is not found");
607
585
  // If payment method is selected, create order with payment method info
608
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
609
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ||
610
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
611
- console.log("Creating crypto order with payment method:", selectedCryptoPaymentMethod);
612
- await handleCryptoSwap(selectedCryptoPaymentMethod);
586
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
587
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ||
588
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
589
+ console.log("Creating crypto order with payment method:", effectiveCryptoPaymentMethod);
590
+ await handleCryptoSwap(effectiveCryptoPaymentMethod);
613
591
  return;
614
592
  }
615
593
  }
@@ -622,10 +600,6 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
622
600
  const onClickHistory = () => {
623
601
  setOrderId(undefined);
624
602
  navigateToPanel(PanelView.HISTORY, "forward");
625
- setB3ModalContentType({
626
- type: "anySpendOrderHistory",
627
- showBackButton: false,
628
- });
629
603
  // Remove orderId and paymentMethod from URL when going back to history
630
604
  const params = new URLSearchParams(searchParams.toString());
631
605
  params.delete("orderId");
@@ -787,58 +761,52 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
787
761
  };
788
762
  }, [activePanel, navigateBack]);
789
763
  const historyView = (_jsx("div", { className: "mx-auto flex w-[560px] max-w-full flex-col items-center", children: _jsx(OrderHistory, { mode: mode, onBack: navigateBack, onSelectOrder: onSelectOrder }) }));
790
- const orderDetailsView = (_jsx("div", { className: "mx-auto w-[460px] max-w-full px-5", children: _jsx("div", { className: "relative flex flex-col gap-4", children: oat && (_jsx(OrderDetails, { mode: mode, order: oat.data.order, depositTxs: oat.data.depositTxs, relayTxs: oat.data.relayTxs, executeTx: oat.data.executeTx, refundTxs: oat.data.refundTxs, selectedCryptoPaymentMethod: selectedCryptoPaymentMethod, onPaymentMethodChange: setSelectedCryptoPaymentMethod, points: oat.data.points || undefined, onBack: () => {
764
+ const orderDetailsView = (_jsx("div", { className: "mx-auto w-[460px] max-w-full", children: _jsx("div", { className: "relative flex flex-col gap-4", children: oat && (_jsx(OrderDetails, { mode: mode, order: oat.data.order, depositTxs: oat.data.depositTxs, relayTxs: oat.data.relayTxs, executeTx: oat.data.executeTx, refundTxs: oat.data.refundTxs, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod, onPaymentMethodChange: method => {
765
+ // When user explicitly changes payment method, set it as selected
766
+ setSelectedCryptoPaymentMethod(method);
767
+ }, points: oat.data.points || undefined, onBack: () => {
791
768
  setOrderId(undefined);
792
769
  navigateBack();
793
- setSelectedCryptoPaymentMethod(CryptoPaymentMethodType.NONE); // Reset payment method when going back
770
+ // Reset payment methods when going back
771
+ resetPaymentMethods();
794
772
  } })) }) }));
795
- const mainView = (_jsxs("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-2 pt-5", children: [_jsxs("div", { className: "flex w-full max-w-full flex-col items-center gap-2 px-5", children: [isBuyMode && (_jsxs("div", { className: "mb-4 flex flex-col items-center gap-3 text-center", children: [selectedDstToken.metadata?.logoURI && (_jsx("div", { className: "relative", children: _jsx("img", { src: selectedDstToken.metadata.logoURI, alt: selectedDstToken.symbol, className: "border-as-stroke h-12 w-12 rounded-full border-2 shadow-md" }) })), _jsx("div", { children: _jsxs("h1", { className: "text-as-primary text-xl font-bold", children: ["Buy ", selectedDstToken.symbol] }) })] })), _jsx(TabSection, { activeTab: activeTab, setActiveTab: setActiveTab, setSelectedCryptoPaymentMethod: setSelectedCryptoPaymentMethod, setSelectedFiatPaymentMethod: setSelectedFiatPaymentMethod }), _jsxs("div", { className: "relative flex w-full max-w-[calc(100vw-32px)] flex-col gap-2", children: [activeTab === "crypto" ? (_jsx(CryptoPaySection, { selectedSrcChainId: selectedSrcChainId, setSelectedSrcChainId: setSelectedSrcChainId, selectedSrcToken: selectedSrcToken, setSelectedSrcToken: setSelectedSrcToken, srcAmount: srcAmount, setSrcAmount: setSrcAmount, isSrcInputDirty: isSrcInputDirty, setIsSrcInputDirty: setIsSrcInputDirty, selectedCryptoPaymentMethod: selectedCryptoPaymentMethod, onSelectCryptoPaymentMethod: () => navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward"), anyspendQuote: anyspendQuote, onTokenSelect: onTokenSelect, onShowFeeDetail: () => navigateToPanel(PanelView.FEE_DETAIL, "forward") })) : (_jsx(motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0, ease: "easeInOut" }, children: _jsx(PanelOnramp, { srcAmountOnRamp: srcAmountOnRamp, setSrcAmountOnRamp: setSrcAmountOnRamp, selectedPaymentMethod: selectedFiatPaymentMethod, setActivePanel: (panelIndex) => {
796
- // Map panel index to navigation with direction
797
- const panelsWithForwardNav = [PanelView.FIAT_PAYMENT_METHOD, PanelView.RECIPIENT_SELECTION];
798
- if (panelsWithForwardNav.includes(panelIndex)) {
799
- navigateToPanel(panelIndex, "forward");
800
- }
801
- else {
802
- setActivePanel(panelIndex);
803
- }
804
- }, _recipientAddress: recipientAddress, destinationToken: selectedDstToken, destinationChainId: selectedDstChainId, destinationAmount: dstAmount, onDestinationTokenChange: setSelectedDstToken, onDestinationChainChange: setSelectedDstChainId, fiatPaymentMethodIndex: PanelView.FIAT_PAYMENT_METHOD, recipientSelectionPanelIndex: PanelView.RECIPIENT_SELECTION, hideDstToken: isBuyMode, anyspendQuote: anyspendQuote, onShowPointsDetail: () => navigateToPanel(PanelView.POINTS_DETAIL, "forward"), onShowFeeDetail: () => navigateToPanel(PanelView.FEE_DETAIL, "forward"), customUsdInputValues: customUsdInputValues }) })), _jsx(Button, { variant: "ghost", className: cn("border-as-stroke bg-as-surface-primary absolute left-1/2 top-1/2 z-10 h-10 w-10 -translate-x-1/2 -translate-y-1/2 rounded-xl border-2 sm:h-8 sm:w-8 sm:rounded-xl", isBuyMode && "top-[calc(50%+56px)] cursor-default", activeTab === "fiat" && "hidden"), onClick: () => {
805
- if (activeTab === "fiat" || isBuyMode) {
806
- return;
807
- }
808
- // Swap chain selections
809
- const tempSrcChainId = selectedSrcChainId;
810
- const tempDstChainId = selectedDstChainId;
811
- setSelectedSrcChainId(tempDstChainId);
812
- setSelectedDstChainId(tempSrcChainId);
813
- // Swap token selections
814
- const tempSrcToken = selectedSrcToken;
815
- const tempDstToken = selectedDstToken;
816
- setSelectedSrcToken(tempDstToken);
817
- setSelectedDstToken(tempSrcToken);
818
- // Swap amounts
819
- const tempSrcAmount = srcAmount;
820
- const tempDstAmount = dstAmount;
821
- setSrcAmount(tempDstAmount);
822
- setDstAmount(tempSrcAmount);
823
- }, children: _jsx("div", { className: "relative flex items-center justify-center transition-opacity", children: _jsx(ArrowDown, { className: "text-as-primary/50 h-5 w-5" }) }) }), activeTab === "crypto" && (_jsx(CryptoReceiveSection, { isDepositMode: false, isBuyMode: isBuyMode, selectedRecipientAddress: recipientAddress, recipientName: recipientName || undefined, onSelectRecipient: () => navigateToPanel(PanelView.RECIPIENT_SELECTION, "forward"), setRecipientAddress: setRecipientAddress, recipientAddressFromProps: recipientAddressFromProps, globalAddress: globalAddress, dstAmount: dstAmount, dstToken: selectedDstToken, selectedDstChainId: selectedDstChainId, setSelectedDstChainId: setSelectedDstChainId, setSelectedDstToken: setSelectedDstToken, isSrcInputDirty: isSrcInputDirty, onChangeDstAmount: value => {
824
- setIsSrcInputDirty(false);
825
- setDstAmount(value);
826
- }, anyspendQuote: anyspendQuote, onShowPointsDetail: () => navigateToPanel(PanelView.POINTS_DETAIL, "forward"), onShowFeeDetail: () => navigateToPanel(PanelView.FEE_DETAIL, "forward"), selectedCryptoPaymentMethod: selectedCryptoPaymentMethod }))] }), _jsxs(motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0.2, ease: "easeInOut" }, className: cn("mt-4 flex w-full max-w-[460px] flex-col gap-2"), children: [_jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", disabled: btnInfo.disable, onClick: onMainButtonClick, className: cn("as-main-button relative w-full", btnInfo.error ? "!bg-as-red" : btnInfo.disable ? "!bg-as-on-surface-2" : "!bg-as-brand"), textClassName: cn(btnInfo.error ? "text-white" : btnInfo.disable ? "text-as-secondary" : "text-white"), children: _jsxs("div", { className: "flex items-center justify-center gap-2", children: [btnInfo.loading && _jsx(Loader2, { className: "h-4 w-4 animate-spin" }), btnInfo.text] }) }), !hideTransactionHistoryButton && (globalAddress || recipientAddress) ? (_jsxs(Button, { variant: "link", onClick: onClickHistory, className: "text-as-primary/50 hover:text-as-primary flex items-center gap-1 transition-colors", children: [_jsx(HistoryIcon, { className: "h-4 w-4" }), " ", _jsx("span", { className: "pr-4", children: "Transaction History" })] })) : null] })] }), _jsx("div", { className: "w-full", children: _jsx(TabsPrimitive, { defaultValue: "swap", onValueChange: value => {
827
- if (value === "settings" || value === "home") {
828
- setB3ModalContentType({
829
- type: "manageAccount",
830
- activeTab: value,
831
- setActiveTab: () => { },
832
- chain: baseChain,
833
- partnerId,
834
- });
835
- }
836
- else if (value === "swap") {
837
- setB3ModalContentType({
838
- type: "anySpend",
839
- });
840
- }
841
- }, children: _jsx(BottomNavigation, {}) }) })] }));
773
+ const mainView = (_jsxs("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-2", children: [isBuyMode && (_jsxs("div", { className: "mb-4 flex flex-col items-center gap-3 text-center", children: [selectedDstToken.metadata?.logoURI && (_jsx("div", { className: "relative", children: _jsx("img", { src: selectedDstToken.metadata.logoURI, alt: selectedDstToken.symbol, className: "border-as-stroke h-12 w-12 rounded-full border-2 shadow-md" }) })), _jsx("div", { children: _jsxs("h1", { className: "text-as-primary text-xl font-bold", children: ["Buy ", selectedDstToken.symbol] }) })] })), _jsx(TabSection, { activeTab: activeTab, setActiveTab: tab => {
774
+ setActiveTab(tab);
775
+ // Reset payment methods when switching tabs
776
+ resetPaymentMethods();
777
+ setSelectedFiatPaymentMethod(FiatPaymentMethod.NONE);
778
+ }, setSelectedCryptoPaymentMethod: setSelectedCryptoPaymentMethod, setSelectedFiatPaymentMethod: setSelectedFiatPaymentMethod }), _jsxs("div", { className: "relative flex w-full max-w-[calc(100vw-32px)] flex-col gap-2", children: [activeTab === "crypto" ? (_jsx(CryptoPaySection, { selectedSrcChainId: selectedSrcChainId, setSelectedSrcChainId: setSelectedSrcChainId, selectedSrcToken: selectedSrcToken, setSelectedSrcToken: setSelectedSrcToken, srcAmount: srcAmount, setSrcAmount: setSrcAmount, isSrcInputDirty: isSrcInputDirty, setIsSrcInputDirty: setIsSrcInputDirty, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod, onSelectCryptoPaymentMethod: () => navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward"), anyspendQuote: anyspendQuote, onTokenSelect: onTokenSelect, onShowFeeDetail: () => navigateToPanel(PanelView.FEE_DETAIL, "forward") })) : (_jsx(motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0, ease: "easeInOut" }, children: _jsx(PanelOnramp, { srcAmountOnRamp: srcAmountOnRamp, setSrcAmountOnRamp: setSrcAmountOnRamp, selectedPaymentMethod: selectedFiatPaymentMethod, setActivePanel: (panelIndex) => {
779
+ // Map panel index to navigation with direction
780
+ const panelsWithForwardNav = [PanelView.FIAT_PAYMENT_METHOD, PanelView.RECIPIENT_SELECTION];
781
+ if (panelsWithForwardNav.includes(panelIndex)) {
782
+ navigateToPanel(panelIndex, "forward");
783
+ }
784
+ else {
785
+ setActivePanel(panelIndex);
786
+ }
787
+ }, _recipientAddress: recipientAddress, destinationToken: selectedDstToken, destinationChainId: selectedDstChainId, destinationAmount: dstAmount, onDestinationTokenChange: setSelectedDstToken, onDestinationChainChange: setSelectedDstChainId, fiatPaymentMethodIndex: PanelView.FIAT_PAYMENT_METHOD, recipientSelectionPanelIndex: PanelView.RECIPIENT_SELECTION, hideDstToken: isBuyMode, anyspendQuote: anyspendQuote, onShowPointsDetail: () => navigateToPanel(PanelView.POINTS_DETAIL, "forward"), onShowFeeDetail: () => navigateToPanel(PanelView.FEE_DETAIL, "forward"), customUsdInputValues: customUsdInputValues }) })), _jsx(Button, { variant: "ghost", className: cn("border-as-stroke bg-as-surface-primary absolute left-1/2 top-1/2 z-10 h-10 w-10 -translate-x-1/2 -translate-y-1/2 rounded-xl border-2 sm:h-8 sm:w-8 sm:rounded-xl", isBuyMode && "top-[calc(50%+56px)] cursor-default", activeTab === "fiat" && "hidden"), onClick: () => {
788
+ if (activeTab === "fiat" || isBuyMode) {
789
+ return;
790
+ }
791
+ // Swap chain selections
792
+ const tempSrcChainId = selectedSrcChainId;
793
+ const tempDstChainId = selectedDstChainId;
794
+ setSelectedSrcChainId(tempDstChainId);
795
+ setSelectedDstChainId(tempSrcChainId);
796
+ // Swap token selections
797
+ const tempSrcToken = selectedSrcToken;
798
+ const tempDstToken = selectedDstToken;
799
+ setSelectedSrcToken(tempDstToken);
800
+ setSelectedDstToken(tempSrcToken);
801
+ // Swap amounts
802
+ const tempSrcAmount = srcAmount;
803
+ const tempDstAmount = dstAmount;
804
+ setSrcAmount(tempDstAmount);
805
+ setDstAmount(tempSrcAmount);
806
+ }, children: _jsx("div", { className: "relative flex items-center justify-center transition-opacity", children: _jsx(ArrowDown, { className: "text-as-primary/50 h-5 w-5" }) }) }), activeTab === "crypto" && (_jsx(CryptoReceiveSection, { isDepositMode: false, isBuyMode: isBuyMode, selectedRecipientAddress: recipientAddress, recipientName: recipientName || undefined, onSelectRecipient: () => navigateToPanel(PanelView.RECIPIENT_SELECTION, "forward"), setRecipientAddress: setRecipientAddress, recipientAddressFromProps: recipientAddressFromProps, globalAddress: globalAddress, dstAmount: dstAmount, dstToken: selectedDstToken, selectedDstChainId: selectedDstChainId, setSelectedDstChainId: setSelectedDstChainId, setSelectedDstToken: setSelectedDstToken, isSrcInputDirty: isSrcInputDirty, onChangeDstAmount: value => {
807
+ setIsSrcInputDirty(false);
808
+ setDstAmount(value);
809
+ }, anyspendQuote: anyspendQuote, onShowPointsDetail: () => navigateToPanel(PanelView.POINTS_DETAIL, "forward"), onShowFeeDetail: () => navigateToPanel(PanelView.FEE_DETAIL, "forward"), selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod }))] }), _jsxs(motion.div, { initial: { opacity: 0, y: 20, filter: "blur(10px)" }, animate: { opacity: 1, y: 0, filter: "blur(0px)" }, transition: { duration: 0.3, delay: 0.2, ease: "easeInOut" }, className: cn("mt-4 flex w-full max-w-[460px] flex-col gap-2"), children: [_jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", disabled: btnInfo.disable, onClick: onMainButtonClick, className: cn("as-main-button relative w-full", btnInfo.error ? "!bg-as-red" : btnInfo.disable ? "!bg-as-on-surface-2" : "!bg-as-brand"), textClassName: cn(btnInfo.error ? "text-white" : btnInfo.disable ? "text-as-secondary" : "text-white"), children: _jsxs("div", { className: "flex items-center justify-center gap-2", children: [btnInfo.loading && _jsx(Loader2, { className: "h-4 w-4 animate-spin" }), btnInfo.text] }) }), !hideTransactionHistoryButton && (globalAddress || recipientAddress) ? (_jsxs(Button, { variant: "link", onClick: onClickHistory, className: "text-as-primary/50 hover:text-as-primary flex items-center gap-1 transition-colors", children: [_jsx(HistoryIcon, { className: "h-4 w-4" }), " ", _jsx("span", { className: "pr-4", children: "Transaction History" })] })) : null] })] }));
842
810
  const onrampPaymentView = (_jsx(PanelOnrampPayment, { srcAmountOnRamp: srcAmountOnRamp, recipientName: recipientName || undefined, recipientAddress: recipientAddress, isBuyMode: isBuyMode, destinationTokenChainId: destinationTokenChainId, destinationTokenAddress: destinationTokenAddress, selectedDstChainId: selectedDstChainId, selectedDstToken: selectedDstToken, orderType: "swap", anyspendQuote: anyspendQuote, globalAddress: globalAddress, onOrderCreated: orderId => {
843
811
  setOrderId(orderId);
844
812
  navigateToPanel(PanelView.ORDER_DETAILS, "forward");
@@ -853,12 +821,16 @@ function AnySpendInner({ destinationTokenAddress, destinationTokenChainId, mode
853
821
  params.set("paymentMethod", selectedCryptoPaymentMethod);
854
822
  }
855
823
  router.push(`${window.location.pathname}?${params.toString()}`);
856
- }, onBack: navigateBack, recipientEnsName: globalWallet?.ensName, recipientImageUrl: globalWalletImage }));
824
+ }, onBack: navigateBack, recipientEnsName: globalWallet?.ensName, recipientImageUrl: globalWallet?.meta?.icon }));
857
825
  const recipientSelectionView = (_jsx(RecipientSelection, { initialValue: recipientAddress || "", onBack: navigateBack, onConfirm: address => {
858
826
  setRecipientAddress(address);
859
827
  navigateBack();
860
828
  } }));
861
- const cryptoPaymentMethodView = (_jsx(CryptoPaymentMethod, { selectedPaymentMethod: selectedCryptoPaymentMethod, setSelectedPaymentMethod: setSelectedCryptoPaymentMethod, isCreatingOrder: isCreatingOrder, onBack: navigateBack, onSelectPaymentMethod: (method) => {
829
+ const cryptoPaymentMethodView = (_jsx(CryptoPaymentMethod, { globalAddress: globalAddress, globalWallet: globalWallet, selectedPaymentMethod: effectiveCryptoPaymentMethod, setSelectedPaymentMethod: method => {
830
+ // When user explicitly selects a payment method, save it
831
+ setSelectedCryptoPaymentMethod(method);
832
+ }, isCreatingOrder: isCreatingOrder, onBack: navigateBack, onSelectPaymentMethod: (method) => {
833
+ // When user explicitly selects a payment method, save it and go back
862
834
  setSelectedCryptoPaymentMethod(method);
863
835
  navigateBack();
864
836
  } }));
@@ -15,6 +15,7 @@ import { toast } from "sonner";
15
15
  import { base } from "viem/chains";
16
16
  import { useFeatureFlags } from "../contexts/FeatureFlagsContext.js";
17
17
  import { useAutoSetActiveWalletFromWagmi } from "../hooks/useAutoSetActiveWalletFromWagmi.js";
18
+ import { useCryptoPaymentMethodState } from "../hooks/useCryptoPaymentMethodState.js";
18
19
  import { AnySpendFingerprintWrapper, getFingerprintConfig } from "./AnySpendFingerprintWrapper.js";
19
20
  import { CryptoPaymentMethod, CryptoPaymentMethodType } from "./common/CryptoPaymentMethod.js";
20
21
  import { FeeBreakDown } from "./common/FeeBreakDown.js";
@@ -115,8 +116,9 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
115
116
  useAutoSetActiveWalletFromWagmi();
116
117
  const [activePanel, setActivePanel] = useState(loadOrder ? PanelView.ORDER_DETAILS : PanelView.CONFIRM_ORDER);
117
118
  const [activeTab, setActiveTab] = useState(activeTabProps);
118
- // Add state for selected payment methods
119
- const [selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod] = useState(CryptoPaymentMethodType.NONE);
119
+ // Payment method state with dual-state system (auto + explicit user selection)
120
+ // Note: AnySpendCustom doesn't use auto-selection, only explicit user selection
121
+ const { setSelectedCryptoPaymentMethod, effectiveCryptoPaymentMethod, resetPaymentMethods } = useCryptoPaymentMethodState();
120
122
  const [selectedFiatPaymentMethod, setSelectedFiatPaymentMethod] = useState(FiatPaymentMethod.NONE);
121
123
  // Get current user's wallet
122
124
  const currentWallet = useAccountWallet();
@@ -365,7 +367,7 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
365
367
  return;
366
368
  }
367
369
  // Check payment method selection for crypto tab
368
- if (activeTab === "crypto" && selectedCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
370
+ if (activeTab === "crypto" && effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
369
371
  setActivePanel(PanelView.CRYPTO_PAYMENT_METHOD);
370
372
  return;
371
373
  }
@@ -437,12 +439,17 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
437
439
  : orderType === "join_tournament"
438
440
  ? "Join for"
439
441
  : "Recipient" }), _jsxs("div", { className: "flex items-center gap-2", children: [recipientAddress ? (_jsx("button", { className: cn("text-as-tertiarry flex h-7 items-center gap-2 rounded-lg"), onClick: () => setActivePanel(PanelView.RECIPIENT_SELECTION), children: _jsx(_Fragment, { children: _jsx("div", { className: "text-as-tertiarry flex items-center gap-1 text-sm", children: _jsx("span", { children: recipientName ? formatUsername(recipientName) : shortenAddress(recipientAddress) }) }) }) })) : (_jsx("button", { className: "text-as-primary/70 flex items-center gap-1 rounded-lg", onClick: () => setActivePanel(PanelView.RECIPIENT_SELECTION), children: _jsx("div", { className: "text-sm font-medium", children: "Select recipient" }) })), _jsx(ChevronRight, { className: "h-4 w-4" })] })] }, recipientAddress)) : null;
440
- const historyView = (_jsx("div", { className: cn("mx-auto flex w-full max-w-2xl flex-col items-center", mode === "modal" && "bg-b3-react-background"), children: _jsx(OrderHistory, { mode: mode, onBack: () => {
442
+ const historyView = (_jsx("div", { className: cn("mx-auto flex w-full max-w-2xl flex-col items-center p-5", mode === "modal" && "bg-b3-react-background"), children: _jsx(OrderHistory, { mode: mode, onBack: () => {
441
443
  setActivePanel(PanelView.HISTORY);
442
444
  }, onSelectOrder: onSelectOrder }) }));
443
- const orderDetailsView = (_jsxs("div", { className: cn("mx-auto flex w-full flex-col items-center gap-4 p-5", mode === "modal" && "bg-b3-react-background rounded-xl"), children: [oat && (_jsx(OrderDetails, { mode: mode, order: oat.data.order, depositTxs: oat.data.depositTxs, relayTxs: oat.data.relayTxs, executeTx: oat.data.executeTx, refundTxs: oat.data.refundTxs, cryptoPaymentMethod: activeTab === "fiat" ? CryptoPaymentMethodType.NONE : selectedCryptoPaymentMethod, selectedCryptoPaymentMethod: selectedCryptoPaymentMethod, onPaymentMethodChange: setSelectedCryptoPaymentMethod, onBack: () => {
445
+ const orderDetailsView = (_jsxs("div", { className: cn("mx-auto flex w-full flex-col items-center gap-4 p-5", mode === "modal" && "bg-b3-react-background rounded-xl"), children: [oat && (_jsx(OrderDetails, { mode: mode, order: oat.data.order, depositTxs: oat.data.depositTxs, relayTxs: oat.data.relayTxs, executeTx: oat.data.executeTx, refundTxs: oat.data.refundTxs, cryptoPaymentMethod: activeTab === "fiat" ? CryptoPaymentMethodType.NONE : effectiveCryptoPaymentMethod, selectedCryptoPaymentMethod: effectiveCryptoPaymentMethod, onPaymentMethodChange: method => {
446
+ // When user explicitly changes payment method, set it as selected
447
+ setSelectedCryptoPaymentMethod(method);
448
+ }, onBack: () => {
444
449
  setOrderId(undefined);
445
450
  setActivePanel(PanelView.CONFIRM_ORDER);
451
+ // Reset payment methods when going back
452
+ resetPaymentMethods();
446
453
  // Remove orderId from URL when canceling
447
454
  const params = new URLSearchParams(searchParams.toString());
448
455
  params.delete("orderId");
@@ -462,17 +469,19 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
462
469
  // Confirm order view.
463
470
  const confirmOrderView = (_jsxs("div", { className: "relative mx-auto flex w-full flex-col items-center", children: [header({ anyspendPrice: anyspendQuote, isLoadingAnyspendPrice: isLoadingAnyspendQuote }), _jsxs(Tabs, { value: activeTab, onValueChange: value => setActiveTab(value), className: "bg-b3-react-background max-h-[60dvh] w-full overflow-y-auto p-5", children: [_jsx("div", { className: "w-full", children: _jsxs("div", { className: "bg-as-surface-secondary relative mb-4 grid h-10 grid-cols-2 rounded-xl", children: [_jsx("div", { className: cn("bg-as-brand absolute bottom-0 left-0 top-0 z-0 rounded-xl transition-transform duration-100", "h-full w-1/2", activeTab === "fiat" ? "translate-x-full" : "translate-x-0"), style: { willChange: "transform" } }), _jsx("button", { className: cn("relative z-10 h-full w-full rounded-xl px-3 text-sm font-medium transition-colors duration-100", activeTab === "crypto" ? "text-white" : "text-as-primary/70 hover:bg-as-on-surface-2 bg-transparent"), onClick: () => {
464
471
  setActiveTab("crypto");
465
- setSelectedCryptoPaymentMethod(CryptoPaymentMethodType.NONE);
472
+ // Reset payment methods when switching tabs
473
+ resetPaymentMethods();
466
474
  setSelectedFiatPaymentMethod(FiatPaymentMethod.NONE);
467
475
  }, children: "Pay with crypto" }), isOnrampSupported ? (_jsx("button", { className: cn("relative z-10 h-full w-full rounded-xl px-3 text-sm font-medium transition-colors duration-100", activeTab === "fiat" ? "text-white" : "text-as-primary/70 hover:bg-as-on-surface-2 bg-transparent"), onClick: () => {
468
476
  setActiveTab("fiat");
469
- setSelectedCryptoPaymentMethod(CryptoPaymentMethodType.NONE);
477
+ // Reset payment methods when switching tabs
478
+ resetPaymentMethods();
470
479
  setSelectedFiatPaymentMethod(FiatPaymentMethod.NONE);
471
480
  }, children: "Pay with fiat" })) : (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { className: cn("relative z-10 h-full w-full rounded-xl px-3 text-sm font-medium transition-colors duration-100", "text-as-primary/50 cursor-not-allowed bg-transparent"), disabled: true, children: "Pay with fiat" }) }), _jsx(TooltipContent, { children: _jsx("span", { className: "text-as-primary w-[140px]", children: "Fiat payments are not supported for this amount" }) })] }))] }) }), _jsx(TabsContent, { value: "crypto", children: _jsxs("div", { className: "mt-2 flex flex-col gap-6", children: [_jsxs("div", { className: "border-as-border-secondary bg-as-surface-secondary flex w-full flex-col gap-4 rounded-xl border p-4", children: [_jsxs(motion.div, { initial: false, animate: {
472
481
  opacity: hasMounted ? 1 : 0,
473
482
  y: hasMounted ? 0 : 20,
474
483
  filter: hasMounted ? "blur(0px)" : "blur(10px)",
475
- }, transition: { duration: 0.3, delay: 0, ease: "easeInOut" }, className: "relative flex w-full items-center justify-between", children: [_jsx("div", { className: "text-as-tertiarry flex h-7 items-center text-sm", children: "Pay" }), _jsx("button", { className: "text-as-tertiarry flex h-7 items-center gap-2 text-sm transition-colors hover:text-blue-700", onClick: () => setActivePanel(PanelView.CRYPTO_PAYMENT_METHOD), children: selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ? (_jsxs(_Fragment, { children: [connectedAddress ? (_jsx(_Fragment, { children: _jsx("span", { className: "text-as-tertiarry flex items-center gap-1", children: connectedName ? formatUsername(connectedName) : shortenAddress(connectedAddress || "") }) })) : ("Connect wallet"), _jsx(ChevronRight, { className: "h-4 w-4" })] })) : selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO ? (_jsxs(_Fragment, { children: ["Transfer crypto", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : (_jsxs(_Fragment, { children: ["Select payment method", _jsx(ChevronRight, { className: "h-4 w-4" })] })) })] }), _jsx("div", { className: "divider w-full" }), recipientSection, _jsx("div", { className: "divider w-full" }), _jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs(motion.div, { initial: false, animate: {
484
+ }, transition: { duration: 0.3, delay: 0, ease: "easeInOut" }, className: "relative flex w-full items-center justify-between", children: [_jsx("div", { className: "text-as-tertiarry flex h-7 items-center text-sm", children: "Pay" }), _jsx("button", { className: "text-as-tertiarry flex h-7 items-center gap-2 text-sm transition-colors hover:text-blue-700", onClick: () => setActivePanel(PanelView.CRYPTO_PAYMENT_METHOD), children: effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ? (_jsxs(_Fragment, { children: [connectedAddress ? (_jsx(_Fragment, { children: _jsx("span", { className: "text-as-tertiarry flex items-center gap-1", children: connectedName ? formatUsername(connectedName) : shortenAddress(connectedAddress || "") }) })) : ("Connect wallet"), _jsx(ChevronRight, { className: "h-4 w-4" })] })) : effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO ? (_jsxs(_Fragment, { children: ["Transfer crypto", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : (_jsxs(_Fragment, { children: ["Select payment method", _jsx(ChevronRight, { className: "h-4 w-4" })] })) })] }), _jsx("div", { className: "divider w-full" }), recipientSection, _jsx("div", { className: "divider w-full" }), _jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs(motion.div, { initial: false, animate: {
476
485
  opacity: hasMounted ? 1 : 0,
477
486
  y: hasMounted ? 0 : 20,
478
487
  filter: hasMounted ? "blur(0px)" : "blur(10px)",
@@ -488,7 +497,7 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
488
497
  opacity: hasMounted ? 1 : 0,
489
498
  y: hasMounted ? 0 : 20,
490
499
  filter: hasMounted ? "blur(0px)" : "blur(10px)",
491
- }, transition: { duration: 0.3, delay: 0.3, ease: "easeInOut" }, className: "flex w-full flex-col gap-2", children: _jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", disabled: isCreatingOrder || isLoadingAnyspendQuote || !anyspendQuote, onClick: () => handleConfirmOrder(), className: "relative w-full", children: isCreatingOrder ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Loader2, { className: "size-4 animate-spin" }), _jsx("span", { children: "Creating order..." })] })) : isLoadingAnyspendQuote ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Loader2, { className: "size-4 animate-spin" }), _jsx("span", { children: "Loading quote..." })] })) : !recipientAddress ? ("Select recipient") : selectedCryptoPaymentMethod === CryptoPaymentMethodType.NONE ? ("Choose payment method") : anyspendQuote ? (_jsxs(_Fragment, { children: [_jsx("span", { children: "Checkout" }), _jsx(ChevronRightCircle, { className: "absolute right-0 top-1/2 size-6 -translate-y-1/2 opacity-70" })] })) : ("No quote found") }) }) })] }) }), _jsx(TabsContent, { value: "fiat", children: _jsxs("div", { className: "mt-2 flex flex-col gap-6", children: [_jsxs("div", { className: "border-as-border-secondary bg-as-surface-secondary flex w-full flex-col gap-4 rounded-xl border p-4", children: [_jsxs(motion.div, { initial: false, animate: {
500
+ }, transition: { duration: 0.3, delay: 0.3, ease: "easeInOut" }, className: "flex w-full flex-col gap-2", children: _jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", textColor: "text-white", disabled: isCreatingOrder || isLoadingAnyspendQuote || !anyspendQuote, onClick: () => handleConfirmOrder(), className: "relative w-full", children: isCreatingOrder ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Loader2, { className: "size-4 animate-spin" }), _jsx("span", { children: "Creating order..." })] })) : isLoadingAnyspendQuote ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Loader2, { className: "size-4 animate-spin" }), _jsx("span", { children: "Loading quote..." })] })) : !recipientAddress ? ("Select recipient") : effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE ? ("Choose payment method") : anyspendQuote ? (_jsxs(_Fragment, { children: [_jsx("span", { children: "Checkout" }), _jsx(ChevronRightCircle, { className: "absolute right-0 top-1/2 size-6 -translate-y-1/2 opacity-70" })] })) : ("No quote found") }) }) })] }) }), _jsx(TabsContent, { value: "fiat", children: _jsxs("div", { className: "mt-2 flex flex-col gap-6", children: [_jsxs("div", { className: "border-as-border-secondary bg-as-surface-secondary flex w-full flex-col gap-4 rounded-xl border p-4", children: [_jsxs(motion.div, { initial: false, animate: {
492
501
  opacity: hasMounted ? 1 : 0,
493
502
  y: hasMounted ? 0 : 20,
494
503
  filter: hasMounted ? "blur(0px)" : "blur(10px)",
@@ -515,7 +524,11 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
515
524
  setActivePanel(PanelView.CONFIRM_ORDER);
516
525
  } }) }));
517
526
  // Crypto payment method view
518
- const cryptoPaymentMethodView = (_jsx("div", { className: cn("bg-as-surface-primary mx-auto w-[460px] max-w-full rounded-xl p-4"), children: _jsx(CryptoPaymentMethod, { selectedPaymentMethod: selectedCryptoPaymentMethod, setSelectedPaymentMethod: setSelectedCryptoPaymentMethod, isCreatingOrder: isCreatingOrder, onBack: () => setActivePanel(PanelView.CONFIRM_ORDER), onSelectPaymentMethod: (method) => {
527
+ const cryptoPaymentMethodView = (_jsx("div", { className: cn("bg-as-surface-primary mx-auto w-[460px] max-w-full rounded-xl p-4"), children: _jsx(CryptoPaymentMethod, { globalAddress: currentWallet?.wallet?.address, globalWallet: currentWallet?.wallet, selectedPaymentMethod: effectiveCryptoPaymentMethod, setSelectedPaymentMethod: method => {
528
+ // When user explicitly selects a payment method, save it
529
+ setSelectedCryptoPaymentMethod(method);
530
+ }, isCreatingOrder: isCreatingOrder, onBack: () => setActivePanel(PanelView.CONFIRM_ORDER), onSelectPaymentMethod: (method) => {
531
+ // When user explicitly selects a payment method, save it and go back
519
532
  setSelectedCryptoPaymentMethod(method);
520
533
  setActivePanel(PanelView.CONFIRM_ORDER);
521
534
  } }) }));
@@ -24,7 +24,9 @@ export interface AnySpendCustomExactInProps {
24
24
  }) => void;
25
25
  customUsdInputValues?: string[];
26
26
  preferEoa?: boolean;
27
- customExactInConfig: CustomExactInConfig;
27
+ customExactInConfig?: CustomExactInConfig;
28
+ orderType?: "hype_duel" | "custom_exact_in";
29
+ minDestinationAmount?: number;
28
30
  header?: ({ anyspendPrice, isLoadingAnyspendPrice, }: {
29
31
  anyspendPrice: GetQuoteResponse | undefined;
30
32
  isLoadingAnyspendPrice: boolean;