@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
@@ -12,11 +12,8 @@ import {
12
12
  Button,
13
13
  ShinyButton,
14
14
  StyleRoot,
15
- TabsPrimitive,
16
15
  TransitionPanel,
17
16
  useAccountWallet,
18
- useB3,
19
- useModalStore,
20
17
  useProfile,
21
18
  useRouter,
22
19
  useSearchParamsSSR,
@@ -24,8 +21,6 @@ import {
24
21
  useTokenData,
25
22
  useTokenFromUrl,
26
23
  } from "@b3dotfun/sdk/global-account/react";
27
- import BottomNavigation from "@b3dotfun/sdk/global-account/react/components/ManageAccount/BottomNavigation";
28
- import { useAccountWalletImage } from "@b3dotfun/sdk/global-account/react/hooks/useAccountWallet";
29
24
  import { cn } from "@b3dotfun/sdk/shared/utils/cn";
30
25
  import { formatTokenAmount } from "@b3dotfun/sdk/shared/utils/number";
31
26
  import invariant from "invariant";
@@ -33,12 +28,12 @@ import { ArrowDown, HistoryIcon, Loader2 } from "lucide-react";
33
28
  import { motion } from "motion/react";
34
29
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
35
30
  import { toast } from "sonner";
36
- import { defineChain } from "thirdweb";
37
31
  import { parseUnits } from "viem";
38
32
  import { base, mainnet } from "viem/chains";
39
33
  import { components } from "../../types/api";
40
34
  import { useAutoSelectCryptoPaymentMethod } from "../hooks/useAutoSelectCryptoPaymentMethod";
41
35
  import { useAutoSetActiveWalletFromWagmi } from "../hooks/useAutoSetActiveWalletFromWagmi";
36
+ import { useCryptoPaymentMethodState } from "../hooks/useCryptoPaymentMethodState";
42
37
  import { AnySpendFingerprintWrapper, getFingerprintConfig } from "./AnySpendFingerprintWrapper";
43
38
  import { CryptoPaymentMethod, CryptoPaymentMethodType } from "./common/CryptoPaymentMethod";
44
39
  import { CryptoPaySection } from "./common/CryptoPaySection";
@@ -126,31 +121,6 @@ function AnySpendInner({
126
121
  const searchParams = useSearchParamsSSR();
127
122
  const router = useRouter();
128
123
 
129
- const { partnerId } = useB3();
130
- const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
131
-
132
- // Define base chain with RPC for modal props
133
- const baseChain = useMemo(
134
- () =>
135
- defineChain({
136
- id: 8453,
137
- name: "Base",
138
- nativeCurrency: {
139
- name: "Ether",
140
- symbol: "ETH",
141
- decimals: 18,
142
- },
143
- rpc: "https://mainnet.base.org",
144
- blockExplorers: [
145
- {
146
- name: "Basescan",
147
- url: "https://basescan.org",
148
- },
149
- ],
150
- }),
151
- [],
152
- );
153
-
154
124
  // Determine if we're in "buy mode" based on whether destination token props are provided
155
125
  const isBuyMode = !!(destinationTokenAddress && destinationTokenChainId);
156
126
 
@@ -205,11 +175,17 @@ function AnySpendInner({
205
175
  setActivePanel(targetPanel);
206
176
  }, [activePanel]);
207
177
  const [customRecipients, setCustomRecipients] = useState<RecipientOption[]>([]);
208
- // Add state for selected payment method
209
- const [selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod] = useState<CryptoPaymentMethodType>(
210
- CryptoPaymentMethodType.NONE,
211
- );
212
- // Add state for selected fiat payment method
178
+
179
+ // Payment method state with dual-state system (auto + explicit user selection)
180
+ const {
181
+ cryptoPaymentMethod,
182
+ setCryptoPaymentMethod,
183
+ selectedCryptoPaymentMethod,
184
+ setSelectedCryptoPaymentMethod,
185
+ effectiveCryptoPaymentMethod,
186
+ resetPaymentMethods,
187
+ } = useCryptoPaymentMethodState();
188
+
213
189
  const [selectedFiatPaymentMethod, setSelectedFiatPaymentMethod] = useState<FiatPaymentMethod>(FiatPaymentMethod.NONE);
214
190
  // const [newRecipientAddress, setNewRecipientAddress] = useState("");
215
191
  // const recipientInputRef = useRef<HTMLInputElement>(null);
@@ -228,7 +204,7 @@ function AnySpendInner({
228
204
  });
229
205
  const [selectedSrcToken, setSelectedSrcToken] = useState<components["schemas"]["Token"]>(srcTokenFromUrl);
230
206
  const { data: srcTokenMetadata } = useTokenData(selectedSrcToken?.chainId, selectedSrcToken?.address);
231
- const [srcAmount, setSrcAmount] = useState<string>(searchParams.get("fromAmount") || "0.01");
207
+ const [srcAmount, setSrcAmount] = useState<string>(searchParams.get("fromAmount") || "0");
232
208
 
233
209
  // State for onramp amount
234
210
  const [srcAmountOnRamp, setSrcAmountOnRamp] = useState<string>(searchParams.get("fromAmount") || "5");
@@ -475,8 +451,6 @@ function AnySpendInner({
475
451
  const recipientProfile = useProfile({ address: recipientAddress, fresh: true });
476
452
  const recipientName = recipientProfile.data?.name;
477
453
 
478
- const globalWalletImage = useAccountWalletImage();
479
-
480
454
  // Auto-set active wallet from wagmi
481
455
  useAutoSetActiveWalletFromWagmi();
482
456
 
@@ -500,8 +474,9 @@ function AnySpendInner({
500
474
  // Auto-select crypto payment method based on available wallets and balance
501
475
  useAutoSelectCryptoPaymentMethod({
502
476
  paymentType: activeTab,
477
+ cryptoPaymentMethod,
478
+ setCryptoPaymentMethod,
503
479
  selectedCryptoPaymentMethod,
504
- setSelectedCryptoPaymentMethod,
505
480
  hasEnoughBalance,
506
481
  isBalanceLoading,
507
482
  });
@@ -635,9 +610,9 @@ function AnySpendInner({
635
610
  // Add orderId and payment method to URL for persistence
636
611
  const params = new URLSearchParams(searchParams.toString()); // Preserve existing params
637
612
  params.set("orderId", orderId);
638
- if (selectedCryptoPaymentMethod !== CryptoPaymentMethodType.NONE) {
639
- console.log("Setting cryptoPaymentMethod in URL:", selectedCryptoPaymentMethod);
640
- params.set("cryptoPaymentMethod", selectedCryptoPaymentMethod);
613
+ if (effectiveCryptoPaymentMethod !== CryptoPaymentMethodType.NONE) {
614
+ console.log("Setting cryptoPaymentMethod in URL:", effectiveCryptoPaymentMethod);
615
+ params.set("cryptoPaymentMethod", effectiveCryptoPaymentMethod);
641
616
  } else {
642
617
  console.log("Payment method is NONE, not setting in URL");
643
618
  }
@@ -705,7 +680,7 @@ function AnySpendInner({
705
680
  // For crypto: check payment method first, then recipient
706
681
 
707
682
  // If no payment method selected, show "Choose payment method"
708
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
683
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
709
684
  return { text: "Choose payment method", disable: false, error: false, loading: false };
710
685
  }
711
686
 
@@ -714,12 +689,12 @@ function AnySpendInner({
714
689
 
715
690
  // If payment method selected, show appropriate action
716
691
  if (
717
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
718
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET
692
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
693
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET
719
694
  ) {
720
695
  return { text: "Swap", disable: false, error: false, loading: false };
721
696
  }
722
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
697
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
723
698
  return { text: "Continue to payment", disable: false, error: false, loading: false };
724
699
  }
725
700
  }
@@ -734,7 +709,7 @@ function AnySpendInner({
734
709
  isCreatingOnrampOrder,
735
710
  anyspendQuote,
736
711
  activeTab,
737
- selectedCryptoPaymentMethod,
712
+ effectiveCryptoPaymentMethod,
738
713
  selectedFiatPaymentMethod,
739
714
  ]);
740
715
 
@@ -768,7 +743,7 @@ function AnySpendInner({
768
743
  // For crypto: check payment method first, then recipient
769
744
 
770
745
  // If no payment method selected, show payment method selection
771
- if (selectedCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
746
+ if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
772
747
  console.log("No payment method selected, showing selection panel");
773
748
  navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward");
774
749
  return;
@@ -784,12 +759,12 @@ function AnySpendInner({
784
759
 
785
760
  // If payment method is selected, create order with payment method info
786
761
  if (
787
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
788
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ||
789
- selectedCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO
762
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET ||
763
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET ||
764
+ effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO
790
765
  ) {
791
- console.log("Creating crypto order with payment method:", selectedCryptoPaymentMethod);
792
- await handleCryptoSwap(selectedCryptoPaymentMethod);
766
+ console.log("Creating crypto order with payment method:", effectiveCryptoPaymentMethod);
767
+ await handleCryptoSwap(effectiveCryptoPaymentMethod);
793
768
  return;
794
769
  }
795
770
  }
@@ -802,10 +777,6 @@ function AnySpendInner({
802
777
  const onClickHistory = () => {
803
778
  setOrderId(undefined);
804
779
  navigateToPanel(PanelView.HISTORY, "forward");
805
- setB3ModalContentType({
806
- type: "anySpendOrderHistory",
807
- showBackButton: false,
808
- });
809
780
  // Remove orderId and paymentMethod from URL when going back to history
810
781
  const params = new URLSearchParams(searchParams.toString());
811
782
  params.delete("orderId");
@@ -989,7 +960,7 @@ function AnySpendInner({
989
960
  );
990
961
 
991
962
  const orderDetailsView = (
992
- <div className={"mx-auto w-[460px] max-w-full px-5"}>
963
+ <div className={"mx-auto w-[460px] max-w-full"}>
993
964
  <div className="relative flex flex-col gap-4">
994
965
  {oat && (
995
966
  <OrderDetails
@@ -999,13 +970,17 @@ function AnySpendInner({
999
970
  relayTxs={oat.data.relayTxs}
1000
971
  executeTx={oat.data.executeTx}
1001
972
  refundTxs={oat.data.refundTxs}
1002
- selectedCryptoPaymentMethod={selectedCryptoPaymentMethod}
1003
- onPaymentMethodChange={setSelectedCryptoPaymentMethod}
973
+ selectedCryptoPaymentMethod={effectiveCryptoPaymentMethod}
974
+ onPaymentMethodChange={method => {
975
+ // When user explicitly changes payment method, set it as selected
976
+ setSelectedCryptoPaymentMethod(method);
977
+ }}
1004
978
  points={oat.data.points || undefined}
1005
979
  onBack={() => {
1006
980
  setOrderId(undefined);
1007
981
  navigateBack();
1008
- setSelectedCryptoPaymentMethod(CryptoPaymentMethodType.NONE); // Reset payment method when going back
982
+ // Reset payment methods when going back
983
+ resetPaymentMethods();
1009
984
  }}
1010
985
  />
1011
986
  )}
@@ -1015,210 +990,191 @@ function AnySpendInner({
1015
990
  );
1016
991
 
1017
992
  const mainView = (
1018
- <div className={"mx-auto flex w-[460px] max-w-full flex-col items-center gap-2 pt-5"}>
1019
- <div className={"flex w-full max-w-full flex-col items-center gap-2 px-5"}>
1020
- {/* Token Header - Show when in buy mode */}
1021
- {isBuyMode && (
1022
- <div className="mb-4 flex flex-col items-center gap-3 text-center">
1023
- {selectedDstToken.metadata?.logoURI && (
1024
- <div className="relative">
1025
- <img
1026
- src={selectedDstToken.metadata.logoURI}
1027
- alt={selectedDstToken.symbol}
1028
- className="border-as-stroke h-12 w-12 rounded-full border-2 shadow-md"
1029
- />
1030
- </div>
1031
- )}
1032
- <div>
1033
- <h1 className="text-as-primary text-xl font-bold">Buy {selectedDstToken.symbol}</h1>
1034
- </div>
1035
- </div>
1036
- )}
1037
-
1038
- {/* Tab section */}
1039
- <TabSection
1040
- activeTab={activeTab}
1041
- setActiveTab={setActiveTab}
1042
- setSelectedCryptoPaymentMethod={setSelectedCryptoPaymentMethod}
1043
- setSelectedFiatPaymentMethod={setSelectedFiatPaymentMethod}
1044
- />
1045
-
1046
- <div className="relative flex w-full max-w-[calc(100vw-32px)] flex-col gap-2">
1047
- {/* Send section */}
1048
- {activeTab === "crypto" ? (
1049
- <CryptoPaySection
1050
- selectedSrcChainId={selectedSrcChainId}
1051
- setSelectedSrcChainId={setSelectedSrcChainId}
1052
- selectedSrcToken={selectedSrcToken}
1053
- setSelectedSrcToken={setSelectedSrcToken}
1054
- srcAmount={srcAmount}
1055
- setSrcAmount={setSrcAmount}
1056
- isSrcInputDirty={isSrcInputDirty}
1057
- setIsSrcInputDirty={setIsSrcInputDirty}
1058
- selectedCryptoPaymentMethod={selectedCryptoPaymentMethod}
1059
- onSelectCryptoPaymentMethod={() => navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward")}
1060
- anyspendQuote={anyspendQuote}
1061
- onTokenSelect={onTokenSelect}
1062
- onShowFeeDetail={() => navigateToPanel(PanelView.FEE_DETAIL, "forward")}
1063
- />
1064
- ) : (
1065
- <motion.div
1066
- initial={{ opacity: 0, y: 20, filter: "blur(10px)" }}
1067
- animate={{ opacity: 1, y: 0, filter: "blur(0px)" }}
1068
- transition={{ duration: 0.3, delay: 0, ease: "easeInOut" }}
1069
- >
1070
- <PanelOnramp
1071
- srcAmountOnRamp={srcAmountOnRamp}
1072
- setSrcAmountOnRamp={setSrcAmountOnRamp}
1073
- selectedPaymentMethod={selectedFiatPaymentMethod}
1074
- setActivePanel={(panelIndex: number) => {
1075
- // Map panel index to navigation with direction
1076
- const panelsWithForwardNav = [PanelView.FIAT_PAYMENT_METHOD, PanelView.RECIPIENT_SELECTION];
1077
- if (panelsWithForwardNav.includes(panelIndex)) {
1078
- navigateToPanel(panelIndex, "forward");
1079
- } else {
1080
- setActivePanel(panelIndex);
1081
- }
1082
- }}
1083
- _recipientAddress={recipientAddress}
1084
- destinationToken={selectedDstToken}
1085
- destinationChainId={selectedDstChainId}
1086
- destinationAmount={dstAmount}
1087
- onDestinationTokenChange={setSelectedDstToken}
1088
- onDestinationChainChange={setSelectedDstChainId}
1089
- fiatPaymentMethodIndex={PanelView.FIAT_PAYMENT_METHOD}
1090
- recipientSelectionPanelIndex={PanelView.RECIPIENT_SELECTION}
1091
- hideDstToken={isBuyMode}
1092
- anyspendQuote={anyspendQuote}
1093
- onShowPointsDetail={() => navigateToPanel(PanelView.POINTS_DETAIL, "forward")}
1094
- onShowFeeDetail={() => navigateToPanel(PanelView.FEE_DETAIL, "forward")}
1095
- customUsdInputValues={customUsdInputValues}
993
+ <div className={"mx-auto flex w-[460px] max-w-full flex-col items-center gap-2"}>
994
+ {/* Token Header - Show when in buy mode */}
995
+ {isBuyMode && (
996
+ <div className="mb-4 flex flex-col items-center gap-3 text-center">
997
+ {selectedDstToken.metadata?.logoURI && (
998
+ <div className="relative">
999
+ <img
1000
+ src={selectedDstToken.metadata.logoURI}
1001
+ alt={selectedDstToken.symbol}
1002
+ className="border-as-stroke h-12 w-12 rounded-full border-2 shadow-md"
1096
1003
  />
1097
- </motion.div>
1004
+ </div>
1098
1005
  )}
1099
-
1100
- {/* Reverse swap direction section */}
1101
- <Button
1102
- variant="ghost"
1103
- className={cn(
1104
- "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",
1105
- isBuyMode && "top-[calc(50%+56px)] cursor-default",
1106
- activeTab === "fiat" && "hidden",
1107
- )}
1108
- onClick={() => {
1109
- if (activeTab === "fiat" || isBuyMode) {
1110
- return;
1111
- }
1112
-
1113
- // Swap chain selections
1114
- const tempSrcChainId = selectedSrcChainId;
1115
- const tempDstChainId = selectedDstChainId;
1116
- setSelectedSrcChainId(tempDstChainId);
1117
- setSelectedDstChainId(tempSrcChainId);
1118
-
1119
- // Swap token selections
1120
- const tempSrcToken = selectedSrcToken;
1121
- const tempDstToken = selectedDstToken;
1122
- setSelectedSrcToken(tempDstToken);
1123
- setSelectedDstToken(tempSrcToken);
1124
-
1125
- // Swap amounts
1126
- const tempSrcAmount = srcAmount;
1127
- const tempDstAmount = dstAmount;
1128
- setSrcAmount(tempDstAmount);
1129
- setDstAmount(tempSrcAmount);
1130
- }}
1006
+ <div>
1007
+ <h1 className="text-as-primary text-xl font-bold">Buy {selectedDstToken.symbol}</h1>
1008
+ </div>
1009
+ </div>
1010
+ )}
1011
+
1012
+ {/* Tab section */}
1013
+ <TabSection
1014
+ activeTab={activeTab}
1015
+ setActiveTab={tab => {
1016
+ setActiveTab(tab);
1017
+ // Reset payment methods when switching tabs
1018
+ resetPaymentMethods();
1019
+ setSelectedFiatPaymentMethod(FiatPaymentMethod.NONE);
1020
+ }}
1021
+ setSelectedCryptoPaymentMethod={setSelectedCryptoPaymentMethod}
1022
+ setSelectedFiatPaymentMethod={setSelectedFiatPaymentMethod}
1023
+ />
1024
+
1025
+ <div className="relative flex w-full max-w-[calc(100vw-32px)] flex-col gap-2">
1026
+ {/* Send section */}
1027
+ {activeTab === "crypto" ? (
1028
+ <CryptoPaySection
1029
+ selectedSrcChainId={selectedSrcChainId}
1030
+ setSelectedSrcChainId={setSelectedSrcChainId}
1031
+ selectedSrcToken={selectedSrcToken}
1032
+ setSelectedSrcToken={setSelectedSrcToken}
1033
+ srcAmount={srcAmount}
1034
+ setSrcAmount={setSrcAmount}
1035
+ isSrcInputDirty={isSrcInputDirty}
1036
+ setIsSrcInputDirty={setIsSrcInputDirty}
1037
+ selectedCryptoPaymentMethod={effectiveCryptoPaymentMethod}
1038
+ onSelectCryptoPaymentMethod={() => navigateToPanel(PanelView.CRYPTO_PAYMENT_METHOD, "forward")}
1039
+ anyspendQuote={anyspendQuote}
1040
+ onTokenSelect={onTokenSelect}
1041
+ onShowFeeDetail={() => navigateToPanel(PanelView.FEE_DETAIL, "forward")}
1042
+ />
1043
+ ) : (
1044
+ <motion.div
1045
+ initial={{ opacity: 0, y: 20, filter: "blur(10px)" }}
1046
+ animate={{ opacity: 1, y: 0, filter: "blur(0px)" }}
1047
+ transition={{ duration: 0.3, delay: 0, ease: "easeInOut" }}
1131
1048
  >
1132
- <div className="relative flex items-center justify-center transition-opacity">
1133
- <ArrowDown className="text-as-primary/50 h-5 w-5" />
1134
- </div>
1135
- </Button>
1136
-
1137
- {/* Receive section - Hidden when fiat tab is active */}
1138
- {activeTab === "crypto" && (
1139
- <CryptoReceiveSection
1140
- isDepositMode={false}
1141
- isBuyMode={isBuyMode}
1142
- selectedRecipientAddress={recipientAddress}
1143
- recipientName={recipientName || undefined}
1144
- onSelectRecipient={() => navigateToPanel(PanelView.RECIPIENT_SELECTION, "forward")}
1145
- setRecipientAddress={setRecipientAddress}
1146
- recipientAddressFromProps={recipientAddressFromProps}
1147
- globalAddress={globalAddress}
1148
- dstAmount={dstAmount}
1149
- dstToken={selectedDstToken}
1150
- selectedDstChainId={selectedDstChainId}
1151
- setSelectedDstChainId={setSelectedDstChainId}
1152
- setSelectedDstToken={setSelectedDstToken}
1153
- isSrcInputDirty={isSrcInputDirty}
1154
- onChangeDstAmount={value => {
1155
- setIsSrcInputDirty(false);
1156
- setDstAmount(value);
1049
+ <PanelOnramp
1050
+ srcAmountOnRamp={srcAmountOnRamp}
1051
+ setSrcAmountOnRamp={setSrcAmountOnRamp}
1052
+ selectedPaymentMethod={selectedFiatPaymentMethod}
1053
+ setActivePanel={(panelIndex: number) => {
1054
+ // Map panel index to navigation with direction
1055
+ const panelsWithForwardNav = [PanelView.FIAT_PAYMENT_METHOD, PanelView.RECIPIENT_SELECTION];
1056
+ if (panelsWithForwardNav.includes(panelIndex)) {
1057
+ navigateToPanel(panelIndex, "forward");
1058
+ } else {
1059
+ setActivePanel(panelIndex);
1060
+ }
1157
1061
  }}
1062
+ _recipientAddress={recipientAddress}
1063
+ destinationToken={selectedDstToken}
1064
+ destinationChainId={selectedDstChainId}
1065
+ destinationAmount={dstAmount}
1066
+ onDestinationTokenChange={setSelectedDstToken}
1067
+ onDestinationChainChange={setSelectedDstChainId}
1068
+ fiatPaymentMethodIndex={PanelView.FIAT_PAYMENT_METHOD}
1069
+ recipientSelectionPanelIndex={PanelView.RECIPIENT_SELECTION}
1070
+ hideDstToken={isBuyMode}
1158
1071
  anyspendQuote={anyspendQuote}
1159
1072
  onShowPointsDetail={() => navigateToPanel(PanelView.POINTS_DETAIL, "forward")}
1160
1073
  onShowFeeDetail={() => navigateToPanel(PanelView.FEE_DETAIL, "forward")}
1161
- selectedCryptoPaymentMethod={selectedCryptoPaymentMethod}
1074
+ customUsdInputValues={customUsdInputValues}
1162
1075
  />
1163
- )}
1164
- </div>
1076
+ </motion.div>
1077
+ )}
1165
1078
 
1166
- {/* Main button section */}
1167
- <motion.div
1168
- initial={{ opacity: 0, y: 20, filter: "blur(10px)" }}
1169
- animate={{ opacity: 1, y: 0, filter: "blur(0px)" }}
1170
- transition={{ duration: 0.3, delay: 0.2, ease: "easeInOut" }}
1171
- className={cn("mt-4 flex w-full max-w-[460px] flex-col gap-2")}
1172
- >
1173
- <ShinyButton
1174
- accentColor={"hsl(var(--as-brand))"}
1175
- disabled={btnInfo.disable}
1176
- onClick={onMainButtonClick}
1177
- className={cn(
1178
- "as-main-button relative w-full",
1179
- btnInfo.error ? "!bg-as-red" : btnInfo.disable ? "!bg-as-on-surface-2" : "!bg-as-brand",
1180
- )}
1181
- textClassName={cn(btnInfo.error ? "text-white" : btnInfo.disable ? "text-as-secondary" : "text-white")}
1182
- >
1183
- <div className="flex items-center justify-center gap-2">
1184
- {btnInfo.loading && <Loader2 className="h-4 w-4 animate-spin" />}
1185
- {btnInfo.text}
1186
- </div>
1187
- </ShinyButton>
1188
-
1189
- {!hideTransactionHistoryButton && (globalAddress || recipientAddress) ? (
1190
- <Button
1191
- variant="link"
1192
- onClick={onClickHistory}
1193
- className="text-as-primary/50 hover:text-as-primary flex items-center gap-1 transition-colors"
1194
- >
1195
- <HistoryIcon className="h-4 w-4" /> <span className="pr-4">Transaction History</span>
1196
- </Button>
1197
- ) : null}
1198
- </motion.div>
1199
- </div>
1200
- <div className="w-full">
1201
- <TabsPrimitive
1202
- defaultValue="swap"
1203
- onValueChange={value => {
1204
- if (value === "settings" || value === "home") {
1205
- setB3ModalContentType({
1206
- type: "manageAccount",
1207
- activeTab: value,
1208
- setActiveTab: () => {},
1209
- chain: baseChain,
1210
- partnerId,
1211
- });
1212
- } else if (value === "swap") {
1213
- setB3ModalContentType({
1214
- type: "anySpend",
1215
- });
1079
+ {/* Reverse swap direction section */}
1080
+ <Button
1081
+ variant="ghost"
1082
+ className={cn(
1083
+ "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",
1084
+ isBuyMode && "top-[calc(50%+56px)] cursor-default",
1085
+ activeTab === "fiat" && "hidden",
1086
+ )}
1087
+ onClick={() => {
1088
+ if (activeTab === "fiat" || isBuyMode) {
1089
+ return;
1216
1090
  }
1091
+
1092
+ // Swap chain selections
1093
+ const tempSrcChainId = selectedSrcChainId;
1094
+ const tempDstChainId = selectedDstChainId;
1095
+ setSelectedSrcChainId(tempDstChainId);
1096
+ setSelectedDstChainId(tempSrcChainId);
1097
+
1098
+ // Swap token selections
1099
+ const tempSrcToken = selectedSrcToken;
1100
+ const tempDstToken = selectedDstToken;
1101
+ setSelectedSrcToken(tempDstToken);
1102
+ setSelectedDstToken(tempSrcToken);
1103
+
1104
+ // Swap amounts
1105
+ const tempSrcAmount = srcAmount;
1106
+ const tempDstAmount = dstAmount;
1107
+ setSrcAmount(tempDstAmount);
1108
+ setDstAmount(tempSrcAmount);
1217
1109
  }}
1218
1110
  >
1219
- <BottomNavigation />
1220
- </TabsPrimitive>
1111
+ <div className="relative flex items-center justify-center transition-opacity">
1112
+ <ArrowDown className="text-as-primary/50 h-5 w-5" />
1113
+ </div>
1114
+ </Button>
1115
+
1116
+ {/* Receive section - Hidden when fiat tab is active */}
1117
+ {activeTab === "crypto" && (
1118
+ <CryptoReceiveSection
1119
+ isDepositMode={false}
1120
+ isBuyMode={isBuyMode}
1121
+ selectedRecipientAddress={recipientAddress}
1122
+ recipientName={recipientName || undefined}
1123
+ onSelectRecipient={() => navigateToPanel(PanelView.RECIPIENT_SELECTION, "forward")}
1124
+ setRecipientAddress={setRecipientAddress}
1125
+ recipientAddressFromProps={recipientAddressFromProps}
1126
+ globalAddress={globalAddress}
1127
+ dstAmount={dstAmount}
1128
+ dstToken={selectedDstToken}
1129
+ selectedDstChainId={selectedDstChainId}
1130
+ setSelectedDstChainId={setSelectedDstChainId}
1131
+ setSelectedDstToken={setSelectedDstToken}
1132
+ isSrcInputDirty={isSrcInputDirty}
1133
+ onChangeDstAmount={value => {
1134
+ setIsSrcInputDirty(false);
1135
+ setDstAmount(value);
1136
+ }}
1137
+ anyspendQuote={anyspendQuote}
1138
+ onShowPointsDetail={() => navigateToPanel(PanelView.POINTS_DETAIL, "forward")}
1139
+ onShowFeeDetail={() => navigateToPanel(PanelView.FEE_DETAIL, "forward")}
1140
+ selectedCryptoPaymentMethod={effectiveCryptoPaymentMethod}
1141
+ />
1142
+ )}
1221
1143
  </div>
1144
+
1145
+ {/* Main button section */}
1146
+ <motion.div
1147
+ initial={{ opacity: 0, y: 20, filter: "blur(10px)" }}
1148
+ animate={{ opacity: 1, y: 0, filter: "blur(0px)" }}
1149
+ transition={{ duration: 0.3, delay: 0.2, ease: "easeInOut" }}
1150
+ className={cn("mt-4 flex w-full max-w-[460px] flex-col gap-2")}
1151
+ >
1152
+ <ShinyButton
1153
+ accentColor={"hsl(var(--as-brand))"}
1154
+ disabled={btnInfo.disable}
1155
+ onClick={onMainButtonClick}
1156
+ className={cn(
1157
+ "as-main-button relative w-full",
1158
+ btnInfo.error ? "!bg-as-red" : btnInfo.disable ? "!bg-as-on-surface-2" : "!bg-as-brand",
1159
+ )}
1160
+ textClassName={cn(btnInfo.error ? "text-white" : btnInfo.disable ? "text-as-secondary" : "text-white")}
1161
+ >
1162
+ <div className="flex items-center justify-center gap-2">
1163
+ {btnInfo.loading && <Loader2 className="h-4 w-4 animate-spin" />}
1164
+ {btnInfo.text}
1165
+ </div>
1166
+ </ShinyButton>
1167
+
1168
+ {!hideTransactionHistoryButton && (globalAddress || recipientAddress) ? (
1169
+ <Button
1170
+ variant="link"
1171
+ onClick={onClickHistory}
1172
+ className="text-as-primary/50 hover:text-as-primary flex items-center gap-1 transition-colors"
1173
+ >
1174
+ <HistoryIcon className="h-4 w-4" /> <span className="pr-4">Transaction History</span>
1175
+ </Button>
1176
+ ) : null}
1177
+ </motion.div>
1222
1178
  </div>
1223
1179
  );
1224
1180
 
@@ -1251,7 +1207,7 @@ function AnySpendInner({
1251
1207
  }}
1252
1208
  onBack={navigateBack}
1253
1209
  recipientEnsName={globalWallet?.ensName}
1254
- recipientImageUrl={globalWalletImage}
1210
+ recipientImageUrl={globalWallet?.meta?.icon}
1255
1211
  />
1256
1212
  );
1257
1213
 
@@ -1268,11 +1224,17 @@ function AnySpendInner({
1268
1224
 
1269
1225
  const cryptoPaymentMethodView = (
1270
1226
  <CryptoPaymentMethod
1271
- selectedPaymentMethod={selectedCryptoPaymentMethod}
1272
- setSelectedPaymentMethod={setSelectedCryptoPaymentMethod}
1227
+ globalAddress={globalAddress}
1228
+ globalWallet={globalWallet}
1229
+ selectedPaymentMethod={effectiveCryptoPaymentMethod}
1230
+ setSelectedPaymentMethod={method => {
1231
+ // When user explicitly selects a payment method, save it
1232
+ setSelectedCryptoPaymentMethod(method);
1233
+ }}
1273
1234
  isCreatingOrder={isCreatingOrder}
1274
1235
  onBack={navigateBack}
1275
1236
  onSelectPaymentMethod={(method: CryptoPaymentMethodType) => {
1237
+ // When user explicitly selects a payment method, save it and go back
1276
1238
  setSelectedCryptoPaymentMethod(method);
1277
1239
  navigateBack();
1278
1240
  }}