@lifi/widget 3.0.0-alpha.16 → 3.0.0-alpha.19

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 (554) hide show
  1. package/AppRoutes.tsx +22 -0
  2. package/_cjs/AppRoutes.js +17 -0
  3. package/_cjs/AppRoutes.js.map +1 -1
  4. package/_cjs/components/AccountAvatar.d.ts +7 -0
  5. package/_cjs/components/AccountAvatar.js +20 -0
  6. package/_cjs/components/AccountAvatar.js.map +1 -0
  7. package/_cjs/components/ActiveTransactions/ActiveTransactions.style.d.ts +2 -2
  8. package/_cjs/components/AlertMessage/AlertMessage.d.ts +11 -0
  9. package/_cjs/components/AlertMessage/AlertMessage.js +8 -0
  10. package/_cjs/components/AlertMessage/AlertMessage.js.map +1 -0
  11. package/_cjs/components/AlertMessage/AlertMessage.style.d.ts +12 -0
  12. package/_cjs/components/AlertMessage/AlertMessage.style.js +35 -0
  13. package/_cjs/components/AlertMessage/AlertMessage.style.js.map +1 -0
  14. package/_cjs/components/AlertMessage/index.d.ts +3 -0
  15. package/_cjs/components/AlertMessage/index.js +20 -0
  16. package/_cjs/components/AlertMessage/index.js.map +1 -0
  17. package/_cjs/components/AlertMessage/types.d.ts +1 -0
  18. package/_cjs/components/AlertMessage/types.js +3 -0
  19. package/_cjs/components/AlertMessage/types.js.map +1 -0
  20. package/_cjs/components/BaseTransactionButton/BaseTransactionButton.js +6 -3
  21. package/_cjs/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  22. package/_cjs/{pages/SettingsPage/SettingsCard/SettingCardButton.d.ts → components/Card/CardButton.d.ts} +2 -2
  23. package/_cjs/components/Card/CardButton.js +9 -0
  24. package/_cjs/components/Card/CardButton.js.map +1 -0
  25. package/_cjs/components/Card/CardButton.style.d.ts +13 -0
  26. package/_cjs/components/Card/CardButton.style.js +36 -0
  27. package/_cjs/components/Card/CardButton.style.js.map +1 -0
  28. package/_cjs/components/Card/index.d.ts +2 -0
  29. package/_cjs/components/Card/index.js +2 -0
  30. package/_cjs/components/Card/index.js.map +1 -1
  31. package/_cjs/components/ChainSelect/useChainSelect.js +4 -15
  32. package/_cjs/components/ChainSelect/useChainSelect.js.map +1 -1
  33. package/_cjs/components/GasMessage/FundsSufficiencyMessage.js +13 -5
  34. package/_cjs/components/GasMessage/FundsSufficiencyMessage.js.map +1 -1
  35. package/_cjs/components/GasMessage/GasMessage.style.d.ts +1 -14
  36. package/_cjs/components/GasMessage/GasMessage.style.js +1 -24
  37. package/_cjs/components/GasMessage/GasMessage.style.js.map +1 -1
  38. package/_cjs/components/GasMessage/GasRefuelMessage.js +4 -5
  39. package/_cjs/components/GasMessage/GasRefuelMessage.js.map +1 -1
  40. package/_cjs/components/GasMessage/GasSufficiencyMessage.js +2 -6
  41. package/_cjs/components/GasMessage/GasSufficiencyMessage.js.map +1 -1
  42. package/_cjs/components/Header/NavigationHeader.js +11 -2
  43. package/_cjs/components/Header/NavigationHeader.js.map +1 -1
  44. package/_cjs/components/ListItem/ListItem.d.ts +6 -0
  45. package/_cjs/components/ListItem/ListItem.js +27 -0
  46. package/_cjs/components/ListItem/ListItem.js.map +1 -0
  47. package/_cjs/components/ListItem/ListItemButton.d.ts +4 -0
  48. package/_cjs/components/ListItem/ListItemButton.js +12 -0
  49. package/_cjs/components/ListItem/ListItemButton.js.map +1 -0
  50. package/_cjs/components/ListItem/index.d.ts +2 -0
  51. package/_cjs/components/ListItem/index.js +19 -0
  52. package/_cjs/components/ListItem/index.js.map +1 -0
  53. package/_cjs/components/ListItemButton.d.ts +1 -1
  54. package/_cjs/components/ListItemButton.js +3 -2
  55. package/_cjs/components/ListItemButton.js.map +1 -1
  56. package/_cjs/components/Menu.d.ts +1 -0
  57. package/_cjs/components/Menu.js +25 -0
  58. package/_cjs/components/Menu.js.map +1 -0
  59. package/_cjs/components/PageContainer.d.ts +1 -2
  60. package/_cjs/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  61. package/_cjs/components/ReverseTokensButton/ReverseTokensButton.js +11 -3
  62. package/_cjs/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  63. package/_cjs/components/Routes/Routes.js +1 -3
  64. package/_cjs/components/Routes/Routes.js.map +1 -1
  65. package/_cjs/components/Routes/RoutesExpanded.js +4 -7
  66. package/_cjs/components/Routes/RoutesExpanded.js.map +1 -1
  67. package/_cjs/components/SendToWallet/SendToWallet.style.d.ts +4 -3
  68. package/_cjs/components/SendToWallet/SendToWallet.style.js +26 -15
  69. package/_cjs/components/SendToWallet/SendToWallet.style.js.map +1 -1
  70. package/_cjs/components/SendToWallet/SendToWalletButton.d.ts +1 -2
  71. package/_cjs/components/SendToWallet/SendToWalletButton.js +55 -23
  72. package/_cjs/components/SendToWallet/SendToWalletButton.js.map +1 -1
  73. package/_cjs/components/SendToWallet/SendToWalletExpandButton.d.ts +2 -0
  74. package/_cjs/components/SendToWallet/SendToWalletExpandButton.js +41 -0
  75. package/_cjs/components/SendToWallet/SendToWalletExpandButton.js.map +1 -0
  76. package/_cjs/components/SendToWallet/index.d.ts +2 -1
  77. package/_cjs/components/SendToWallet/index.js +2 -1
  78. package/_cjs/components/SendToWallet/index.js.map +1 -1
  79. package/_cjs/components/SettingsListItemButton.d.ts +1 -1
  80. package/_cjs/components/Step/StepProcess.style.d.ts +1 -1
  81. package/_cjs/components/TokenList/TokenList.js +3 -2
  82. package/_cjs/components/TokenList/TokenList.js.map +1 -1
  83. package/_cjs/components/TokenList/TokenList.style.d.ts +2 -5
  84. package/_cjs/components/TokenList/TokenList.style.js +3 -28
  85. package/_cjs/components/TokenList/TokenList.style.js.map +1 -1
  86. package/_cjs/components/TokenList/TokenListItem.js +3 -2
  87. package/_cjs/components/TokenList/TokenListItem.js.map +1 -1
  88. package/_cjs/components/TokenList/VirtualizedTokenList.js +2 -2
  89. package/_cjs/components/TokenList/VirtualizedTokenList.js.map +1 -1
  90. package/_cjs/config/version.d.ts +1 -1
  91. package/_cjs/config/version.js +1 -1
  92. package/_cjs/hooks/index.d.ts +3 -1
  93. package/_cjs/hooks/index.js +3 -1
  94. package/_cjs/hooks/index.js.map +1 -1
  95. package/_cjs/hooks/useAccount.d.ts +14 -3
  96. package/_cjs/hooks/useAccount.js +24 -6
  97. package/_cjs/hooks/useAccount.js.map +1 -1
  98. package/_cjs/hooks/useAddressValidation.d.ts +17 -0
  99. package/_cjs/hooks/useAddressValidation.js +59 -0
  100. package/_cjs/hooks/useAddressValidation.js.map +1 -0
  101. package/_cjs/hooks/useFromTokenSufficiency.js +3 -4
  102. package/_cjs/hooks/useFromTokenSufficiency.js.map +1 -1
  103. package/_cjs/hooks/useGasSufficiency.js +6 -5
  104. package/_cjs/hooks/useGasSufficiency.js.map +1 -1
  105. package/_cjs/hooks/useRouteExecution.js +7 -5
  106. package/_cjs/hooks/useRouteExecution.js.map +1 -1
  107. package/_cjs/hooks/useRoutes.d.ts +2 -2
  108. package/_cjs/hooks/useRoutes.js +17 -29
  109. package/_cjs/hooks/useRoutes.js.map +1 -1
  110. package/_cjs/hooks/useToAddressRequirements.d.ts +4 -0
  111. package/_cjs/hooks/{useRequiredToAddress.js → useToAddressRequirements.js} +11 -8
  112. package/_cjs/hooks/useToAddressRequirements.js.map +1 -0
  113. package/_cjs/hooks/useToAddressReset.d.ts +4 -0
  114. package/_cjs/hooks/useToAddressReset.js +32 -0
  115. package/_cjs/hooks/useToAddressReset.js.map +1 -0
  116. package/_cjs/hooks/useTokenAddressBalance.d.ts +1 -1
  117. package/_cjs/hooks/useTokenBalance.d.ts +1 -1
  118. package/_cjs/hooks/useTokenBalance.js +4 -7
  119. package/_cjs/hooks/useTokenBalance.js.map +1 -1
  120. package/_cjs/hooks/useTokenBalances.d.ts +1 -1
  121. package/_cjs/hooks/useTokenBalances.js +3 -4
  122. package/_cjs/hooks/useTokenBalances.js.map +1 -1
  123. package/_cjs/hooks/useTransactionDetails.d.ts +1 -1
  124. package/_cjs/hooks/useTransactionDetails.js +24 -25
  125. package/_cjs/hooks/useTransactionDetails.js.map +1 -1
  126. package/_cjs/hooks/useTransactionHistory.js +2 -1
  127. package/_cjs/hooks/useTransactionHistory.js.map +1 -1
  128. package/_cjs/i18n/en.json +27 -6
  129. package/_cjs/pages/MainPage/MainPage.js +1 -1
  130. package/_cjs/pages/MainPage/MainPage.js.map +1 -1
  131. package/_cjs/pages/MainPage/ReviewButton.js +3 -2
  132. package/_cjs/pages/MainPage/ReviewButton.js.map +1 -1
  133. package/_cjs/pages/SendToWallet/BookmarkAddressSheet.d.ts +9 -0
  134. package/_cjs/pages/SendToWallet/BookmarkAddressSheet.js +111 -0
  135. package/_cjs/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -0
  136. package/_cjs/pages/SendToWallet/BookmarksPage.d.ts +1 -0
  137. package/_cjs/pages/SendToWallet/BookmarksPage.js +88 -0
  138. package/_cjs/pages/SendToWallet/BookmarksPage.js.map +1 -0
  139. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.d.ts +9 -0
  140. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.js +35 -0
  141. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -0
  142. package/_cjs/pages/SendToWallet/ConnectedWalletsPage.d.ts +1 -0
  143. package/_cjs/pages/SendToWallet/ConnectedWalletsPage.js +84 -0
  144. package/_cjs/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -0
  145. package/_cjs/pages/SendToWallet/EmptyListIndicator.d.ts +6 -0
  146. package/_cjs/pages/SendToWallet/EmptyListIndicator.js +8 -0
  147. package/_cjs/pages/SendToWallet/EmptyListIndicator.js.map +1 -0
  148. package/_cjs/pages/SendToWallet/RecentWalletsPage.d.ts +1 -0
  149. package/_cjs/pages/SendToWallet/RecentWalletsPage.js +105 -0
  150. package/_cjs/pages/SendToWallet/RecentWalletsPage.js.map +1 -0
  151. package/_cjs/pages/SendToWallet/SendToWalletPage.d.ts +1 -0
  152. package/_cjs/pages/SendToWallet/SendToWalletPage.js +131 -0
  153. package/_cjs/pages/SendToWallet/SendToWalletPage.js.map +1 -0
  154. package/_cjs/pages/SendToWallet/SendToWalletPage.style.d.ts +61 -0
  155. package/_cjs/pages/SendToWallet/SendToWalletPage.style.js +146 -0
  156. package/_cjs/pages/SendToWallet/SendToWalletPage.style.js.map +1 -0
  157. package/_cjs/pages/SendToWallet/index.d.ts +4 -0
  158. package/_cjs/pages/SendToWallet/index.js +21 -0
  159. package/_cjs/pages/SendToWallet/index.js.map +1 -0
  160. package/_cjs/pages/SettingsPage/BridgeAndExchangeSettings.js +2 -1
  161. package/_cjs/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  162. package/_cjs/pages/SettingsPage/LanguageSetting.js +2 -2
  163. package/_cjs/pages/SettingsPage/LanguageSetting.js.map +1 -1
  164. package/_cjs/pages/SettingsPage/SendToWalletOptionSetting.js +2 -2
  165. package/_cjs/pages/SettingsPage/SendToWalletOptionSetting.js.map +1 -1
  166. package/_cjs/pages/SettingsPage/SettingsCard/BadgedValue.js +2 -1
  167. package/_cjs/pages/SettingsPage/SettingsCard/BadgedValue.js.map +1 -1
  168. package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +0 -9
  169. package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.style.js +2 -24
  170. package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -1
  171. package/_cjs/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +2 -3
  172. package/_cjs/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  173. package/_cjs/pages/SettingsPage/SettingsCard/index.d.ts +0 -2
  174. package/_cjs/pages/SettingsPage/SettingsCard/index.js +0 -2
  175. package/_cjs/pages/SettingsPage/SettingsCard/index.js.map +1 -1
  176. package/_cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  177. package/_cjs/pages/SettingsPage/ThemeSettings.js +2 -1
  178. package/_cjs/pages/SettingsPage/ThemeSettings.js.map +1 -1
  179. package/_cjs/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  180. package/_cjs/pages/TransactionHistoryPage/TransactionHistoryItem.js +2 -1
  181. package/_cjs/pages/TransactionHistoryPage/TransactionHistoryItem.js.map +1 -1
  182. package/_cjs/providers/I18nProvider/I18nProvider.js +1 -1
  183. package/_cjs/providers/I18nProvider/I18nProvider.js.map +1 -1
  184. package/_cjs/providers/WalletProvider/SDKProviders.js.map +1 -1
  185. package/_cjs/stores/StoreProvider.js +2 -1
  186. package/_cjs/stores/StoreProvider.js.map +1 -1
  187. package/_cjs/stores/bookmarks/BookmarkStore.d.ts +7 -0
  188. package/_cjs/stores/bookmarks/BookmarkStore.js +25 -0
  189. package/_cjs/stores/bookmarks/BookmarkStore.js.map +1 -0
  190. package/_cjs/stores/bookmarks/createBookmarkStore.d.ts +3 -0
  191. package/_cjs/stores/bookmarks/createBookmarkStore.js +49 -0
  192. package/_cjs/stores/bookmarks/createBookmarkStore.js.map +1 -0
  193. package/_cjs/stores/bookmarks/index.d.ts +5 -0
  194. package/_cjs/stores/bookmarks/index.js +22 -0
  195. package/_cjs/stores/bookmarks/index.js.map +1 -0
  196. package/_cjs/stores/bookmarks/types.d.ts +24 -0
  197. package/_cjs/stores/bookmarks/types.js +3 -0
  198. package/_cjs/stores/bookmarks/types.js.map +1 -0
  199. package/_cjs/stores/bookmarks/useBookmarkActions.d.ts +2 -0
  200. package/_cjs/stores/bookmarks/useBookmarkActions.js +18 -0
  201. package/_cjs/stores/bookmarks/useBookmarkActions.js.map +1 -0
  202. package/_cjs/stores/bookmarks/useBookmarks.d.ts +2 -0
  203. package/_cjs/stores/bookmarks/useBookmarks.js +15 -0
  204. package/_cjs/stores/bookmarks/useBookmarks.js.map +1 -0
  205. package/_cjs/stores/form/FormStore.js +16 -3
  206. package/_cjs/stores/form/FormStore.js.map +1 -1
  207. package/_cjs/stores/form/types.js.map +1 -1
  208. package/_cjs/stores/form/useTouchedFields.d.ts +4 -4
  209. package/_cjs/stores/index.d.ts +1 -0
  210. package/_cjs/stores/index.js +1 -0
  211. package/_cjs/stores/index.js.map +1 -1
  212. package/_cjs/utils/chainType.d.ts +6 -0
  213. package/_cjs/utils/chainType.js +24 -0
  214. package/_cjs/utils/chainType.js.map +1 -0
  215. package/_cjs/utils/converters.d.ts +2 -2
  216. package/_cjs/utils/converters.js.map +1 -1
  217. package/_cjs/utils/index.d.ts +1 -0
  218. package/_cjs/utils/index.js +1 -0
  219. package/_cjs/utils/index.js.map +1 -1
  220. package/_cjs/utils/navigationRoutes.d.ts +4 -0
  221. package/_cjs/utils/navigationRoutes.js +12 -0
  222. package/_cjs/utils/navigationRoutes.js.map +1 -1
  223. package/_esm/AppRoutes.js +17 -0
  224. package/_esm/AppRoutes.js.map +1 -1
  225. package/_esm/components/AccountAvatar.d.ts +7 -0
  226. package/_esm/components/AccountAvatar.js +16 -0
  227. package/_esm/components/AccountAvatar.js.map +1 -0
  228. package/_esm/components/ActiveTransactions/ActiveTransactions.style.d.ts +2 -2
  229. package/_esm/components/AlertMessage/AlertMessage.d.ts +11 -0
  230. package/_esm/components/AlertMessage/AlertMessage.js +4 -0
  231. package/_esm/components/AlertMessage/AlertMessage.js.map +1 -0
  232. package/_esm/components/AlertMessage/AlertMessage.style.d.ts +12 -0
  233. package/_esm/components/AlertMessage/AlertMessage.style.js +32 -0
  234. package/_esm/components/AlertMessage/AlertMessage.style.js.map +1 -0
  235. package/_esm/components/AlertMessage/index.d.ts +3 -0
  236. package/_esm/components/AlertMessage/index.js +4 -0
  237. package/_esm/components/AlertMessage/index.js.map +1 -0
  238. package/_esm/components/AlertMessage/types.d.ts +1 -0
  239. package/_esm/components/AlertMessage/types.js +2 -0
  240. package/_esm/components/AlertMessage/types.js.map +1 -0
  241. package/_esm/components/BaseTransactionButton/BaseTransactionButton.js +7 -4
  242. package/_esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  243. package/_esm/{pages/SettingsPage/SettingsCard/SettingCardButton.d.ts → components/Card/CardButton.d.ts} +2 -2
  244. package/_esm/components/Card/CardButton.js +5 -0
  245. package/_esm/components/Card/CardButton.js.map +1 -0
  246. package/_esm/components/Card/CardButton.style.d.ts +13 -0
  247. package/_esm/components/Card/CardButton.style.js +33 -0
  248. package/_esm/components/Card/CardButton.style.js.map +1 -0
  249. package/_esm/components/Card/index.d.ts +2 -0
  250. package/_esm/components/Card/index.js +2 -0
  251. package/_esm/components/Card/index.js.map +1 -1
  252. package/_esm/components/ChainSelect/useChainSelect.js +5 -16
  253. package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
  254. package/_esm/components/GasMessage/FundsSufficiencyMessage.js +14 -6
  255. package/_esm/components/GasMessage/FundsSufficiencyMessage.js.map +1 -1
  256. package/_esm/components/GasMessage/GasMessage.style.d.ts +1 -14
  257. package/_esm/components/GasMessage/GasMessage.style.js +1 -24
  258. package/_esm/components/GasMessage/GasMessage.style.js.map +1 -1
  259. package/_esm/components/GasMessage/GasRefuelMessage.js +5 -6
  260. package/_esm/components/GasMessage/GasRefuelMessage.js.map +1 -1
  261. package/_esm/components/GasMessage/GasSufficiencyMessage.js +2 -6
  262. package/_esm/components/GasMessage/GasSufficiencyMessage.js.map +1 -1
  263. package/_esm/components/Header/NavigationHeader.js +11 -2
  264. package/_esm/components/Header/NavigationHeader.js.map +1 -1
  265. package/_esm/components/ListItem/ListItem.d.ts +6 -0
  266. package/_esm/components/ListItem/ListItem.js +24 -0
  267. package/_esm/components/ListItem/ListItem.js.map +1 -0
  268. package/_esm/components/ListItem/ListItemButton.d.ts +4 -0
  269. package/_esm/components/ListItem/ListItemButton.js +9 -0
  270. package/_esm/components/ListItem/ListItemButton.js.map +1 -0
  271. package/_esm/components/ListItem/index.d.ts +2 -0
  272. package/_esm/components/ListItem/index.js +3 -0
  273. package/_esm/components/ListItem/index.js.map +1 -0
  274. package/_esm/components/ListItemButton.d.ts +1 -1
  275. package/_esm/components/ListItemButton.js +3 -2
  276. package/_esm/components/ListItemButton.js.map +1 -1
  277. package/_esm/components/Menu.d.ts +1 -0
  278. package/_esm/components/Menu.js +22 -0
  279. package/_esm/components/Menu.js.map +1 -0
  280. package/_esm/components/PageContainer.d.ts +1 -2
  281. package/_esm/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  282. package/_esm/components/ReverseTokensButton/ReverseTokensButton.js +11 -3
  283. package/_esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  284. package/_esm/components/Routes/Routes.js +1 -3
  285. package/_esm/components/Routes/Routes.js.map +1 -1
  286. package/_esm/components/Routes/RoutesExpanded.js +5 -8
  287. package/_esm/components/Routes/RoutesExpanded.js.map +1 -1
  288. package/_esm/components/SendToWallet/SendToWallet.style.d.ts +4 -3
  289. package/_esm/components/SendToWallet/SendToWallet.style.js +25 -14
  290. package/_esm/components/SendToWallet/SendToWallet.style.js.map +1 -1
  291. package/_esm/components/SendToWallet/SendToWalletButton.d.ts +1 -2
  292. package/_esm/components/SendToWallet/SendToWalletButton.js +59 -27
  293. package/_esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  294. package/_esm/components/SendToWallet/SendToWalletExpandButton.d.ts +2 -0
  295. package/_esm/components/SendToWallet/SendToWalletExpandButton.js +37 -0
  296. package/_esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -0
  297. package/_esm/components/SendToWallet/index.d.ts +2 -1
  298. package/_esm/components/SendToWallet/index.js +2 -1
  299. package/_esm/components/SendToWallet/index.js.map +1 -1
  300. package/_esm/components/SettingsListItemButton.d.ts +1 -1
  301. package/_esm/components/Step/StepProcess.style.d.ts +1 -1
  302. package/_esm/components/TokenList/TokenList.js +3 -2
  303. package/_esm/components/TokenList/TokenList.js.map +1 -1
  304. package/_esm/components/TokenList/TokenList.style.d.ts +2 -5
  305. package/_esm/components/TokenList/TokenList.style.js +3 -28
  306. package/_esm/components/TokenList/TokenList.style.js.map +1 -1
  307. package/_esm/components/TokenList/TokenListItem.js +3 -2
  308. package/_esm/components/TokenList/TokenListItem.js.map +1 -1
  309. package/_esm/components/TokenList/VirtualizedTokenList.js +2 -2
  310. package/_esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  311. package/_esm/config/version.d.ts +1 -1
  312. package/_esm/config/version.js +1 -1
  313. package/_esm/hooks/index.d.ts +3 -1
  314. package/_esm/hooks/index.js +3 -1
  315. package/_esm/hooks/index.js.map +1 -1
  316. package/_esm/hooks/useAccount.d.ts +14 -3
  317. package/_esm/hooks/useAccount.js +24 -6
  318. package/_esm/hooks/useAccount.js.map +1 -1
  319. package/_esm/hooks/useAddressValidation.d.ts +17 -0
  320. package/_esm/hooks/useAddressValidation.js +55 -0
  321. package/_esm/hooks/useAddressValidation.js.map +1 -0
  322. package/_esm/hooks/useFromTokenSufficiency.js +3 -4
  323. package/_esm/hooks/useFromTokenSufficiency.js.map +1 -1
  324. package/_esm/hooks/useGasSufficiency.js +6 -5
  325. package/_esm/hooks/useGasSufficiency.js.map +1 -1
  326. package/_esm/hooks/useRouteExecution.js +7 -5
  327. package/_esm/hooks/useRouteExecution.js.map +1 -1
  328. package/_esm/hooks/useRoutes.d.ts +2 -2
  329. package/_esm/hooks/useRoutes.js +19 -31
  330. package/_esm/hooks/useRoutes.js.map +1 -1
  331. package/_esm/hooks/useToAddressRequirements.d.ts +4 -0
  332. package/_esm/hooks/{useRequiredToAddress.js → useToAddressRequirements.js} +9 -6
  333. package/_esm/hooks/useToAddressRequirements.js.map +1 -0
  334. package/_esm/hooks/useToAddressReset.d.ts +4 -0
  335. package/_esm/hooks/useToAddressReset.js +28 -0
  336. package/_esm/hooks/useToAddressReset.js.map +1 -0
  337. package/_esm/hooks/useTokenAddressBalance.d.ts +1 -1
  338. package/_esm/hooks/useTokenBalance.d.ts +1 -1
  339. package/_esm/hooks/useTokenBalance.js +4 -7
  340. package/_esm/hooks/useTokenBalance.js.map +1 -1
  341. package/_esm/hooks/useTokenBalances.d.ts +1 -1
  342. package/_esm/hooks/useTokenBalances.js +3 -4
  343. package/_esm/hooks/useTokenBalances.js.map +1 -1
  344. package/_esm/hooks/useTransactionDetails.d.ts +1 -1
  345. package/_esm/hooks/useTransactionDetails.js +24 -25
  346. package/_esm/hooks/useTransactionDetails.js.map +1 -1
  347. package/_esm/hooks/useTransactionHistory.js +2 -1
  348. package/_esm/hooks/useTransactionHistory.js.map +1 -1
  349. package/_esm/i18n/en.json +27 -6
  350. package/_esm/pages/MainPage/MainPage.js +2 -2
  351. package/_esm/pages/MainPage/MainPage.js.map +1 -1
  352. package/_esm/pages/MainPage/ReviewButton.js +5 -4
  353. package/_esm/pages/MainPage/ReviewButton.js.map +1 -1
  354. package/_esm/pages/SendToWallet/BookmarkAddressSheet.d.ts +9 -0
  355. package/_esm/pages/SendToWallet/BookmarkAddressSheet.js +108 -0
  356. package/_esm/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -0
  357. package/_esm/pages/SendToWallet/BookmarksPage.d.ts +1 -0
  358. package/_esm/pages/SendToWallet/BookmarksPage.js +84 -0
  359. package/_esm/pages/SendToWallet/BookmarksPage.js.map +1 -0
  360. package/_esm/pages/SendToWallet/ConfirmAddressSheet.d.ts +9 -0
  361. package/_esm/pages/SendToWallet/ConfirmAddressSheet.js +32 -0
  362. package/_esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -0
  363. package/_esm/pages/SendToWallet/ConnectedWalletsPage.d.ts +1 -0
  364. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js +80 -0
  365. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -0
  366. package/_esm/pages/SendToWallet/EmptyListIndicator.d.ts +6 -0
  367. package/_esm/pages/SendToWallet/EmptyListIndicator.js +4 -0
  368. package/_esm/pages/SendToWallet/EmptyListIndicator.js.map +1 -0
  369. package/_esm/pages/SendToWallet/RecentWalletsPage.d.ts +1 -0
  370. package/_esm/pages/SendToWallet/RecentWalletsPage.js +101 -0
  371. package/_esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -0
  372. package/_esm/pages/SendToWallet/SendToWalletPage.d.ts +1 -0
  373. package/_esm/pages/SendToWallet/SendToWalletPage.js +127 -0
  374. package/_esm/pages/SendToWallet/SendToWalletPage.js.map +1 -0
  375. package/_esm/pages/SendToWallet/SendToWalletPage.style.d.ts +61 -0
  376. package/_esm/pages/SendToWallet/SendToWalletPage.style.js +143 -0
  377. package/_esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -0
  378. package/_esm/pages/SendToWallet/index.d.ts +4 -0
  379. package/_esm/pages/SendToWallet/index.js +5 -0
  380. package/_esm/pages/SendToWallet/index.js.map +1 -0
  381. package/_esm/pages/SettingsPage/BridgeAndExchangeSettings.js +3 -2
  382. package/_esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  383. package/_esm/pages/SettingsPage/LanguageSetting.js +2 -2
  384. package/_esm/pages/SettingsPage/LanguageSetting.js.map +1 -1
  385. package/_esm/pages/SettingsPage/SendToWalletOptionSetting.js +2 -2
  386. package/_esm/pages/SettingsPage/SendToWalletOptionSetting.js.map +1 -1
  387. package/_esm/pages/SettingsPage/SettingsCard/BadgedValue.js +3 -2
  388. package/_esm/pages/SettingsPage/SettingsCard/BadgedValue.js.map +1 -1
  389. package/_esm/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +0 -9
  390. package/_esm/pages/SettingsPage/SettingsCard/SettingCard.style.js +2 -24
  391. package/_esm/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -1
  392. package/_esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +2 -3
  393. package/_esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  394. package/_esm/pages/SettingsPage/SettingsCard/index.d.ts +0 -2
  395. package/_esm/pages/SettingsPage/SettingsCard/index.js +0 -2
  396. package/_esm/pages/SettingsPage/SettingsCard/index.js.map +1 -1
  397. package/_esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  398. package/_esm/pages/SettingsPage/ThemeSettings.js +3 -2
  399. package/_esm/pages/SettingsPage/ThemeSettings.js.map +1 -1
  400. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  401. package/_esm/pages/TransactionHistoryPage/TransactionHistoryItem.js +2 -1
  402. package/_esm/pages/TransactionHistoryPage/TransactionHistoryItem.js.map +1 -1
  403. package/_esm/providers/I18nProvider/I18nProvider.js +2 -2
  404. package/_esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  405. package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  406. package/_esm/stores/StoreProvider.js +2 -1
  407. package/_esm/stores/StoreProvider.js.map +1 -1
  408. package/_esm/stores/bookmarks/BookmarkStore.d.ts +7 -0
  409. package/_esm/stores/bookmarks/BookmarkStore.js +20 -0
  410. package/_esm/stores/bookmarks/BookmarkStore.js.map +1 -0
  411. package/_esm/stores/bookmarks/createBookmarkStore.d.ts +3 -0
  412. package/_esm/stores/bookmarks/createBookmarkStore.js +45 -0
  413. package/_esm/stores/bookmarks/createBookmarkStore.js.map +1 -0
  414. package/_esm/stores/bookmarks/index.d.ts +5 -0
  415. package/_esm/stores/bookmarks/index.js +6 -0
  416. package/_esm/stores/bookmarks/index.js.map +1 -0
  417. package/_esm/stores/bookmarks/types.d.ts +24 -0
  418. package/_esm/stores/bookmarks/types.js +2 -0
  419. package/_esm/stores/bookmarks/types.js.map +1 -0
  420. package/_esm/stores/bookmarks/useBookmarkActions.d.ts +2 -0
  421. package/_esm/stores/bookmarks/useBookmarkActions.js +14 -0
  422. package/_esm/stores/bookmarks/useBookmarkActions.js.map +1 -0
  423. package/_esm/stores/bookmarks/useBookmarks.d.ts +2 -0
  424. package/_esm/stores/bookmarks/useBookmarks.js +11 -0
  425. package/_esm/stores/bookmarks/useBookmarks.js.map +1 -0
  426. package/_esm/stores/form/FormStore.js +16 -3
  427. package/_esm/stores/form/FormStore.js.map +1 -1
  428. package/_esm/stores/form/types.js.map +1 -1
  429. package/_esm/stores/form/useTouchedFields.d.ts +4 -4
  430. package/_esm/stores/index.d.ts +1 -0
  431. package/_esm/stores/index.js +1 -0
  432. package/_esm/stores/index.js.map +1 -1
  433. package/_esm/utils/chainType.d.ts +6 -0
  434. package/_esm/utils/chainType.js +20 -0
  435. package/_esm/utils/chainType.js.map +1 -0
  436. package/_esm/utils/converters.d.ts +2 -2
  437. package/_esm/utils/converters.js.map +1 -1
  438. package/_esm/utils/index.d.ts +1 -0
  439. package/_esm/utils/index.js +1 -0
  440. package/_esm/utils/index.js.map +1 -1
  441. package/_esm/utils/navigationRoutes.d.ts +4 -0
  442. package/_esm/utils/navigationRoutes.js +12 -0
  443. package/_esm/utils/navigationRoutes.js.map +1 -1
  444. package/components/AccountAvatar.tsx +55 -0
  445. package/components/AlertMessage/AlertMessage.style.tsx +40 -0
  446. package/components/AlertMessage/AlertMessage.tsx +31 -0
  447. package/components/AlertMessage/index.ts +3 -0
  448. package/components/AlertMessage/types.ts +1 -0
  449. package/components/BaseTransactionButton/BaseTransactionButton.tsx +7 -4
  450. package/components/Card/CardButton.style.tsx +36 -0
  451. package/components/Card/CardButton.tsx +26 -0
  452. package/components/Card/index.ts +2 -0
  453. package/components/ChainSelect/useChainSelect.ts +5 -23
  454. package/components/GasMessage/FundsSufficiencyMessage.tsx +18 -17
  455. package/components/GasMessage/GasMessage.style.ts +1 -31
  456. package/components/GasMessage/GasRefuelMessage.tsx +21 -22
  457. package/components/GasMessage/GasSufficiencyMessage.tsx +9 -21
  458. package/components/Header/NavigationHeader.tsx +11 -2
  459. package/components/ListItem/ListItem.tsx +24 -0
  460. package/components/ListItem/ListItemButton.tsx +9 -0
  461. package/components/ListItem/index.ts +2 -0
  462. package/components/ListItemButton.tsx +12 -8
  463. package/components/Menu.tsx +27 -0
  464. package/components/PageContainer.ts +1 -1
  465. package/components/ReverseTokensButton/ReverseTokensButton.tsx +12 -3
  466. package/components/Routes/Routes.tsx +1 -7
  467. package/components/Routes/RoutesExpanded.tsx +5 -8
  468. package/components/SendToWallet/SendToWallet.style.tsx +25 -15
  469. package/components/SendToWallet/SendToWalletButton.tsx +107 -43
  470. package/components/SendToWallet/SendToWalletExpandButton.tsx +65 -0
  471. package/components/SendToWallet/index.ts +2 -1
  472. package/components/TokenList/TokenList.style.tsx +3 -32
  473. package/components/TokenList/TokenList.tsx +3 -2
  474. package/components/TokenList/TokenListItem.tsx +4 -3
  475. package/components/TokenList/VirtualizedTokenList.tsx +2 -2
  476. package/config/version.ts +1 -1
  477. package/hooks/index.ts +3 -1
  478. package/hooks/useAccount.ts +37 -9
  479. package/hooks/useAddressValidation.ts +79 -0
  480. package/hooks/useFromTokenSufficiency.ts +3 -8
  481. package/hooks/useGasSufficiency.ts +6 -10
  482. package/hooks/useRouteExecution.ts +9 -5
  483. package/hooks/useRoutes.ts +20 -30
  484. package/hooks/{useRequiredToAddress.ts → useToAddressRequirements.ts} +8 -5
  485. package/hooks/useToAddressReset.ts +36 -0
  486. package/hooks/useTokenBalance.ts +5 -8
  487. package/hooks/useTokenBalances.ts +3 -6
  488. package/hooks/useTransactionDetails.ts +30 -31
  489. package/hooks/useTransactionHistory.ts +3 -2
  490. package/i18n/en.json +27 -6
  491. package/package.json +14 -14
  492. package/pages/MainPage/MainPage.tsx +3 -3
  493. package/pages/MainPage/ReviewButton.tsx +5 -5
  494. package/pages/SendToWallet/BookmarkAddressSheet.tsx +219 -0
  495. package/pages/SendToWallet/BookmarksPage.tsx +182 -0
  496. package/pages/SendToWallet/ConfirmAddressSheet.tsx +90 -0
  497. package/pages/SendToWallet/ConnectedWalletsPage.tsx +165 -0
  498. package/pages/SendToWallet/EmptyListIndicator.tsx +19 -0
  499. package/pages/SendToWallet/RecentWalletsPage.tsx +215 -0
  500. package/pages/SendToWallet/SendToWalletPage.style.tsx +182 -0
  501. package/pages/SendToWallet/SendToWalletPage.tsx +246 -0
  502. package/pages/SendToWallet/index.ts +4 -0
  503. package/pages/SettingsPage/BridgeAndExchangeSettings.tsx +4 -3
  504. package/pages/SettingsPage/LanguageSetting.tsx +4 -4
  505. package/pages/SettingsPage/SendToWalletOptionSetting.tsx +12 -12
  506. package/pages/SettingsPage/SettingsCard/BadgedValue.tsx +4 -3
  507. package/pages/SettingsPage/SettingsCard/SettingCard.style.tsx +2 -27
  508. package/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +13 -12
  509. package/pages/SettingsPage/SettingsCard/index.ts +0 -2
  510. package/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +1 -1
  511. package/pages/SettingsPage/ThemeSettings.tsx +3 -2
  512. package/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +5 -1
  513. package/pages/TransactionHistoryPage/TransactionHistoryItem.tsx +4 -7
  514. package/providers/I18nProvider/I18nProvider.tsx +2 -2
  515. package/providers/WalletProvider/SDKProviders.tsx +2 -1
  516. package/stores/StoreProvider.tsx +8 -5
  517. package/stores/bookmarks/BookmarkStore.tsx +39 -0
  518. package/stores/bookmarks/createBookmarkStore.ts +63 -0
  519. package/stores/bookmarks/index.ts +5 -0
  520. package/stores/bookmarks/types.ts +31 -0
  521. package/stores/bookmarks/useBookmarkActions.ts +19 -0
  522. package/stores/bookmarks/useBookmarks.ts +16 -0
  523. package/stores/form/FormStore.tsx +25 -4
  524. package/stores/form/types.ts +2 -3
  525. package/stores/index.ts +1 -0
  526. package/utils/chainType.ts +25 -0
  527. package/utils/converters.ts +2 -3
  528. package/utils/index.ts +1 -0
  529. package/utils/navigationRoutes.ts +12 -0
  530. package/_cjs/components/SendToWallet/SendToWallet.d.ts +0 -4
  531. package/_cjs/components/SendToWallet/SendToWallet.js +0 -94
  532. package/_cjs/components/SendToWallet/SendToWallet.js.map +0 -1
  533. package/_cjs/hooks/useRequiredToAddress.d.ts +0 -1
  534. package/_cjs/hooks/useRequiredToAddress.js.map +0 -1
  535. package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.d.ts +0 -2
  536. package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.js +0 -12
  537. package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.js.map +0 -1
  538. package/_cjs/pages/SettingsPage/SettingsCard/SettingCardButton.js +0 -9
  539. package/_cjs/pages/SettingsPage/SettingsCard/SettingCardButton.js.map +0 -1
  540. package/_esm/components/SendToWallet/SendToWallet.d.ts +0 -4
  541. package/_esm/components/SendToWallet/SendToWallet.js +0 -90
  542. package/_esm/components/SendToWallet/SendToWallet.js.map +0 -1
  543. package/_esm/hooks/useRequiredToAddress.d.ts +0 -1
  544. package/_esm/hooks/useRequiredToAddress.js.map +0 -1
  545. package/_esm/pages/SettingsPage/SettingsCard/SettingCard.d.ts +0 -2
  546. package/_esm/pages/SettingsPage/SettingsCard/SettingCard.js +0 -8
  547. package/_esm/pages/SettingsPage/SettingsCard/SettingCard.js.map +0 -1
  548. package/_esm/pages/SettingsPage/SettingsCard/SettingCardButton.js +0 -5
  549. package/_esm/pages/SettingsPage/SettingsCard/SettingCardButton.js.map +0 -1
  550. package/components/SendToWallet/SendToWallet.tsx +0 -144
  551. package/i18n/i18next.d.ts +0 -10
  552. package/pages/SettingsPage/SettingsCard/SettingCard.tsx +0 -16
  553. package/pages/SettingsPage/SettingsCard/SettingCardButton.tsx +0 -26
  554. package/react-app-env.d.ts +0 -1
@@ -2,11 +2,15 @@ import { ListItemButton as MuiListItemButton } from '@mui/material';
2
2
  import { styled } from '@mui/material/styles';
3
3
  import { getContrastAlphaColor } from '../utils';
4
4
 
5
- export const ListItemButton = styled(MuiListItemButton)(({ theme }) => ({
6
- borderRadius: theme.shape.borderRadius,
7
- paddingLeft: theme.spacing(1.5),
8
- height: 56,
9
- '&:hover': {
10
- backgroundColor: getContrastAlphaColor(theme.palette.mode, '4%'),
11
- },
12
- }));
5
+ export const ListItemButton = styled(MuiListItemButton)(
6
+ ({ theme, disabled }) => ({
7
+ borderRadius: theme.shape.borderRadius,
8
+ paddingLeft: theme.spacing(1.5),
9
+ height: 56,
10
+ ...(disabled ? { opacity: 0.5, cursor: 'auto' } : {}),
11
+ '&:hover': {
12
+ backgroundColor:
13
+ !disabled && getContrastAlphaColor(theme.palette.mode, '4%'),
14
+ },
15
+ }),
16
+ );
@@ -0,0 +1,27 @@
1
+ import { styled } from '@mui/material/styles';
2
+ import {
3
+ Menu as MuiMenu,
4
+ menuClasses,
5
+ menuItemClasses,
6
+ svgIconClasses,
7
+ } from '@mui/material';
8
+
9
+ export const Menu = styled(MuiMenu)(({ theme }) => ({
10
+ [`& .${menuClasses.paper}`]: {
11
+ borderRadius: theme.shape.borderRadius,
12
+ boxShadow: '0px 2px 4px rgb(0 0 0 / 8%), 0px 8px 16px rgb(0 0 0 / 8%)',
13
+ padding: theme.spacing(2),
14
+ [`& .${menuClasses.list}`]: {
15
+ padding: 0,
16
+ },
17
+ [`& .${menuItemClasses.root}`]: {
18
+ borderRadius: theme.shape.borderRadiusSecondary,
19
+ padding: theme.spacing(1, 2, 1, 1),
20
+ [`& .${svgIconClasses.root}`]: {
21
+ fontSize: 20,
22
+ color: theme.palette.text.primary,
23
+ marginRight: theme.spacing(1.5),
24
+ },
25
+ },
26
+ },
27
+ }));
@@ -1,7 +1,7 @@
1
1
  import { Container } from '@mui/material';
2
2
  import { styled } from '@mui/material/styles';
3
3
 
4
- interface PageContainerProps {
4
+ export interface PageContainerProps {
5
5
  halfGutters?: boolean;
6
6
  topBottomGutters?: boolean;
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';
2
2
  import ArrowForwardIcon from '@mui/icons-material/ArrowForward';
3
+ import { useAvailableChains, useToAddressReset } from '../../hooks';
3
4
  import { useFieldActions } from '../../stores';
4
5
  import { IconButton } from './ReverseTokensButton.style';
5
6
 
@@ -7,19 +8,27 @@ export const ReverseTokensButton: React.FC<{ vertical?: boolean }> = ({
7
8
  vertical,
8
9
  }) => {
9
10
  const { setFieldValue, getFieldValues } = useFieldActions();
11
+ const { getChainById } = useAvailableChains();
12
+ const { tryResetToAddress } = useToAddressReset();
10
13
 
11
14
  const handleClick = () => {
12
- const [fromChain, fromToken, toChain, toToken] = getFieldValues(
15
+ const [fromChainId, fromToken, toChainId, toToken] = getFieldValues(
13
16
  'fromChain',
14
17
  'fromToken',
15
18
  'toChain',
16
19
  'toToken',
17
20
  );
18
21
  setFieldValue('fromAmount', '', { isTouched: true });
19
- setFieldValue('fromChain', toChain, { isTouched: true });
22
+ setFieldValue('fromChain', toChainId, { isTouched: true });
20
23
  setFieldValue('fromToken', toToken, { isTouched: true });
21
- setFieldValue('toChain', fromChain, { isTouched: true });
24
+ setFieldValue('toChain', fromChainId, { isTouched: true });
22
25
  setFieldValue('toToken', fromToken, { isTouched: true });
26
+
27
+ // fromChainId becomes toChainId after using reverse
28
+ const toChain = getChainById(fromChainId);
29
+ if (toChain) {
30
+ tryResetToAddress(toChain);
31
+ }
23
32
  };
24
33
  return (
25
34
  <IconButton onClick={handleClick} size="medium">
@@ -4,7 +4,6 @@ import { useTranslation } from 'react-i18next';
4
4
  import { useNavigate } from 'react-router-dom';
5
5
  import { useRoutes } from '../../hooks';
6
6
  import { useWidgetConfig } from '../../providers';
7
- import { useValidation } from '../../stores';
8
7
  import { navigationRoutes } from '../../utils';
9
8
  import { Card, CardTitle } from '../Card';
10
9
  import { ProgressToNextUpdate } from '../ProgressToNextUpdate';
@@ -14,7 +13,6 @@ export const Routes: React.FC<BoxProps> = (props) => {
14
13
  const { t } = useTranslation();
15
14
  const navigate = useNavigate();
16
15
  const { subvariant, useRecommendedRoute } = useWidgetConfig();
17
- const { isValid, isValidating } = useValidation();
18
16
  const {
19
17
  routes,
20
18
  isLoading,
@@ -67,11 +65,7 @@ export const Routes: React.FC<BoxProps> = (props) => {
67
65
 
68
66
  <Collapse timeout={225} in={showAll} unmountOnExit mountOnEnter appear>
69
67
  <Box mt={2}>
70
- <Button
71
- onClick={handleCardClick}
72
- disabled={isValidating || !isValid}
73
- fullWidth
74
- >
68
+ <Button onClick={handleCardClick} fullWidth>
75
69
  {t('button.showAll')}
76
70
  </Button>
77
71
  </Box>
@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next';
5
5
  import { useMatch, useNavigate } from 'react-router-dom';
6
6
  import { useRoutes } from '../../hooks';
7
7
  import { useWidgetConfig } from '../../providers';
8
- import { useSetExecutableRoute, useValidation } from '../../stores';
8
+ import { useSetExecutableRoute } from '../../stores';
9
9
  import { navigationRoutes } from '../../utils';
10
10
  import { PageContainer } from '../PageContainer';
11
11
  import { ProgressToNextUpdate } from '../ProgressToNextUpdate';
@@ -39,7 +39,6 @@ export const RoutesExpandedElement = () => {
39
39
  const navigate = useNavigate();
40
40
  const setExecutableRoute = useSetExecutableRoute();
41
41
  const { subvariant, containerStyle } = useWidgetConfig();
42
- const { isValid, isValidating } = useValidation();
43
42
  const {
44
43
  routes,
45
44
  isLoading,
@@ -53,12 +52,10 @@ export const RoutesExpandedElement = () => {
53
52
  const currentRoute = routes?.[0];
54
53
 
55
54
  const handleRouteClick = (route: Route) => {
56
- if (isValid && !isValidating) {
57
- setExecutableRoute(route);
58
- navigate(navigationRoutes.transactionExecution, {
59
- state: { routeId: route.id },
60
- });
61
- }
55
+ setExecutableRoute(route);
56
+ navigate(navigationRoutes.transactionExecution, {
57
+ state: { routeId: route.id },
58
+ });
62
59
  };
63
60
 
64
61
  const expanded = Boolean(
@@ -1,20 +1,30 @@
1
- import { FormControl as MuiFormControl, InputBase } from '@mui/material';
2
- import { inputBaseClasses } from '@mui/material/InputBase';
3
1
  import { styled } from '@mui/material/styles';
2
+ import { CardHeader } from '../Card';
3
+ import { cardHeaderClasses } from '@mui/material/CardHeader';
4
4
 
5
- export const FormControl = styled(MuiFormControl)(({ theme }) => ({
6
- padding: theme.spacing(1.5, 2, 1.5, 0),
7
- }));
8
-
9
- export const Input = styled(InputBase)(({ theme }) => ({
10
- [`.${inputBaseClasses.input}`]: {
11
- height: 32,
12
- padding: theme.spacing(0, 0, 0, 2),
13
- },
14
- [`&.${inputBaseClasses.disabled}`]: {
15
- color: 'inherit',
5
+ export const SendToWalletCardHeader = styled(CardHeader, {
6
+ shouldForwardProp: (prop) => !['selected'].includes(prop as string),
7
+ })<{ selected?: boolean }>(({ theme, selected }) => ({
8
+ height: 64,
9
+ [`.${cardHeaderClasses.title}`]: {
10
+ color: selected ? theme.palette.text.primary : theme.palette.text.secondary,
11
+ textOverflow: 'ellipsis',
12
+ whiteSpace: 'nowrap',
13
+ overflow: 'hidden',
14
+ width: 256,
15
+ textAlign: 'left',
16
+ [theme.breakpoints.down(392)]: {
17
+ width: 224,
18
+ },
16
19
  },
17
- [`.${inputBaseClasses.input}.${inputBaseClasses.disabled}`]: {
18
- WebkitTextFillColor: 'unset',
20
+ [`.${cardHeaderClasses.subheader}`]: {
21
+ textOverflow: 'ellipsis',
22
+ whiteSpace: 'nowrap',
23
+ overflow: 'hidden',
24
+ width: 256,
25
+ textAlign: 'left',
26
+ [theme.breakpoints.down(392)]: {
27
+ width: 224,
28
+ },
19
29
  },
20
30
  }));
@@ -1,62 +1,126 @@
1
- import WalletIcon from '@mui/icons-material/Wallet';
2
- import Button from '@mui/material/Button';
3
- import Tooltip from '@mui/material/Tooltip';
1
+ import { Collapse } from '@mui/material';
2
+ import { useEffect } from 'react';
4
3
  import { useTranslation } from 'react-i18next';
5
- import { useRequiredToAddress, useWidgetEvents } from '../../hooks';
4
+ import { useNavigate } from 'react-router-dom';
5
+ import { useAccount, useToAddressRequirements } from '../../hooks';
6
6
  import { useWidgetConfig } from '../../providers';
7
7
  import {
8
- useFieldActions,
8
+ useBookmarks,
9
+ useFieldValues,
9
10
  useSendToWalletStore,
10
11
  useSettings,
11
12
  } from '../../stores';
12
- import { DisabledUI, HiddenUI, WidgetEvent } from '../../types';
13
+ import { DisabledUI, HiddenUI } from '../../types';
14
+ import {
15
+ defaultChainIdsByType,
16
+ getChainTypeFromAddress,
17
+ navigationRoutes,
18
+ shortenAddress,
19
+ } from '../../utils';
20
+ import { AccountAvatar } from '../AccountAvatar';
21
+ import { Card, CardRowContainer, CardTitle } from '../Card';
22
+ import { SendToWalletCardHeader } from './SendToWallet.style';
13
23
 
14
- export const SendToWalletButton: React.FC = () => {
24
+ export const SendToWalletButton = () => {
15
25
  const { t } = useTranslation();
16
- const { setFieldValue } = useFieldActions();
17
- const emitter = useWidgetEvents();
18
- const { disabledUI, hiddenUI } = useWidgetConfig();
19
- const { showSendToWallet, toggleSendToWallet } = useSendToWalletStore();
26
+ const navigate = useNavigate();
27
+ const { disabledUI, hiddenUI, toAddress } = useWidgetConfig();
28
+ const { showSendToWallet, showSendToWalletDirty, setSendToWallet } =
29
+ useSendToWalletStore();
20
30
  const { showDestinationWallet } = useSettings(['showDestinationWallet']);
31
+ const [toAddressFieldValue] = useFieldValues('toAddress');
32
+ const { selectedBookmark } = useBookmarks();
33
+ const { accounts } = useAccount();
34
+ const disabledToAddress = disabledUI?.includes(DisabledUI.ToAddress);
35
+ const hiddenToAddress = hiddenUI?.includes(HiddenUI.ToAddress);
36
+ const { requiredToAddress } = useToAddressRequirements();
21
37
 
22
- const requiredToAddress = useRequiredToAddress();
38
+ const showInstantly =
39
+ Boolean(
40
+ !showSendToWalletDirty &&
41
+ showDestinationWallet &&
42
+ toAddress &&
43
+ !hiddenToAddress,
44
+ ) || requiredToAddress;
23
45
 
24
- if (
25
- !showDestinationWallet ||
26
- hiddenUI?.includes(HiddenUI.ToAddress) ||
27
- requiredToAddress
28
- ) {
29
- return null;
30
- }
46
+ const address = toAddressFieldValue
47
+ ? shortenAddress(toAddressFieldValue)
48
+ : t('sendToWallet.enterAddress');
31
49
 
32
- const handleClick = () => {
33
- if (showSendToWallet && !disabledUI?.includes(DisabledUI.ToAddress)) {
34
- setFieldValue('toAddress', '', { isTouched: true });
35
- }
36
- toggleSendToWallet();
37
- emitter.emit(
38
- WidgetEvent.SendToWalletToggled,
39
- useSendToWalletStore.getState().showSendToWallet,
40
- );
50
+ const matchingConnectedAccount = accounts.find(
51
+ (account) => account.address === toAddressFieldValue,
52
+ );
53
+
54
+ const chainType = !matchingConnectedAccount
55
+ ? selectedBookmark?.chainType ||
56
+ (toAddressFieldValue
57
+ ? getChainTypeFromAddress(toAddressFieldValue)
58
+ : undefined)
59
+ : undefined;
60
+
61
+ const chainId = matchingConnectedAccount
62
+ ? matchingConnectedAccount.chainId
63
+ : chainType
64
+ ? defaultChainIdsByType[chainType]
65
+ : undefined;
66
+
67
+ const headerTitle = selectedBookmark?.isConnectedAccount
68
+ ? matchingConnectedAccount?.connector?.name || address
69
+ : selectedBookmark?.name || address;
70
+
71
+ const headerSubheader = selectedBookmark?.isConnectedAccount
72
+ ? !!matchingConnectedAccount && address
73
+ : !!selectedBookmark?.name && address;
74
+
75
+ const handleOnClick = () => {
76
+ navigate(navigationRoutes.sendToWallet);
41
77
  };
42
78
 
79
+ // Sync SendToWalletExpandButton state
80
+ // TODO: find better way
81
+ useEffect(() => {
82
+ if (showInstantly) {
83
+ setSendToWallet(true);
84
+ }
85
+ }, [showInstantly, setSendToWallet]);
86
+
43
87
  return (
44
- <Tooltip
45
- title={t('main.sendToWallet')}
46
- placement="bottom-end"
47
- enterDelay={400}
48
- arrow
88
+ <Collapse
89
+ timeout={showInstantly ? 0 : 225}
90
+ in={showSendToWallet || showInstantly}
91
+ mountOnEnter
92
+ unmountOnExit
49
93
  >
50
- <Button
51
- variant={showSendToWallet ? 'contained' : 'text'}
52
- onClick={handleClick}
53
- sx={{
54
- minWidth: 48,
55
- marginLeft: 1,
56
- }}
94
+ <Card
95
+ component="button"
96
+ onClick={!!toAddress && disabledToAddress ? undefined : handleOnClick}
97
+ sx={{ mb: 2 }}
57
98
  >
58
- <WalletIcon />
59
- </Button>
60
- </Tooltip>
99
+ <CardRowContainer
100
+ sx={{
101
+ flexDirection: 'column',
102
+ padding: 0,
103
+ alignItems: 'flex-start',
104
+ }}
105
+ >
106
+ <CardTitle required={requiredToAddress}>
107
+ {t('header.sendToWallet')}
108
+ </CardTitle>
109
+ <SendToWalletCardHeader
110
+ avatar={
111
+ <AccountAvatar
112
+ chainId={chainId}
113
+ account={matchingConnectedAccount}
114
+ />
115
+ }
116
+ title={headerTitle}
117
+ subheader={headerSubheader}
118
+ selected={
119
+ !!toAddressFieldValue && !(toAddress && disabledToAddress)
120
+ }
121
+ />
122
+ </CardRowContainer>
123
+ </Card>
124
+ </Collapse>
61
125
  );
62
126
  };
@@ -0,0 +1,65 @@
1
+ import WalletIcon from '@mui/icons-material/Wallet';
2
+ import Button from '@mui/material/Button';
3
+ import Tooltip from '@mui/material/Tooltip';
4
+ import { useTranslation } from 'react-i18next';
5
+ import { useToAddressRequirements, useWidgetEvents } from '../../hooks';
6
+ import { useWidgetConfig } from '../../providers';
7
+ import {
8
+ useBookmarkActions,
9
+ useFieldActions,
10
+ useSendToWalletStore,
11
+ useSettings,
12
+ } from '../../stores';
13
+ import { DisabledUI, HiddenUI, WidgetEvent } from '../../types';
14
+
15
+ export const SendToWalletExpandButton: React.FC = () => {
16
+ const { t } = useTranslation();
17
+ const { disabledUI, hiddenUI } = useWidgetConfig();
18
+ const { setFieldValue } = useFieldActions();
19
+ const { setSelectedBookmark } = useBookmarkActions();
20
+ const emitter = useWidgetEvents();
21
+ const { showSendToWallet, toggleSendToWallet } = useSendToWalletStore();
22
+ const { showDestinationWallet } = useSettings(['showDestinationWallet']);
23
+
24
+ const { requiredToAddress } = useToAddressRequirements();
25
+
26
+ if (
27
+ !showDestinationWallet ||
28
+ requiredToAddress ||
29
+ hiddenUI?.includes(HiddenUI.ToAddress)
30
+ ) {
31
+ return null;
32
+ }
33
+
34
+ const handleClick = () => {
35
+ if (showSendToWallet && !disabledUI?.includes(DisabledUI.ToAddress)) {
36
+ setFieldValue('toAddress', '', { isTouched: true });
37
+ setSelectedBookmark();
38
+ }
39
+ toggleSendToWallet();
40
+ emitter.emit(
41
+ WidgetEvent.SendToWalletToggled,
42
+ useSendToWalletStore.getState().showSendToWallet,
43
+ );
44
+ };
45
+
46
+ return (
47
+ <Tooltip
48
+ title={t('main.sendToWallet')}
49
+ placement="bottom-end"
50
+ enterDelay={400}
51
+ arrow
52
+ >
53
+ <Button
54
+ variant={showSendToWallet ? 'contained' : 'text'}
55
+ onClick={handleClick}
56
+ sx={{
57
+ minWidth: 48,
58
+ marginLeft: 1,
59
+ }}
60
+ >
61
+ <WalletIcon />
62
+ </Button>
63
+ </Tooltip>
64
+ );
65
+ };
@@ -1,2 +1,3 @@
1
- export * from './SendToWallet';
2
1
  export * from './SendToWalletButton';
2
+ export * from './SendToWalletExpandButton';
3
+ export * from './SendToWallet.style';
@@ -1,41 +1,12 @@
1
1
  import type { IconButtonProps, LinkProps } from '@mui/material';
2
- import {
3
- IconButton as MuiIconButton,
4
- ListItem as MuiListItem,
5
- } from '@mui/material';
6
- import { listItemSecondaryActionClasses } from '@mui/material/ListItemSecondaryAction';
7
- import { listItemTextClasses } from '@mui/material/ListItemText';
2
+ import { IconButton as MuiIconButton } from '@mui/material';
8
3
  import { alpha, styled } from '@mui/material/styles';
9
- import { ListItemButton as ListItemButtonBase } from '../ListItemButton';
4
+ import { ListItem as ListItemBase } from '../ListItem';
10
5
 
11
- export const ListItemButton = styled(ListItemButtonBase)(({ theme }) => ({
12
- paddingLeft: theme.spacing(1.5),
13
- paddingRight: theme.spacing(1.5),
14
- height: 64,
15
- width: '100%',
16
- }));
17
-
18
- export const ListItem = styled(MuiListItem)(({ theme }) => ({
6
+ export const ListItem = styled(ListItemBase)(({ theme }) => ({
19
7
  position: 'absolute',
20
8
  top: 0,
21
9
  left: 0,
22
- height: 64,
23
- flexDirection: 'column',
24
- alignItems: 'flex-start',
25
- padding: theme.spacing(0, 1.5),
26
- [`.${listItemSecondaryActionClasses.root}`]: {
27
- right: theme.spacing(3),
28
- },
29
- [`& .${listItemTextClasses.secondary}`]: {
30
- fontSize: 12,
31
- fontWeight: 500,
32
- },
33
- [`& .${listItemTextClasses.primary}, & .${listItemTextClasses.secondary}`]: {
34
- lineHeight: 1.3334,
35
- textOverflow: 'ellipsis',
36
- overflow: 'hidden',
37
- whiteSpace: 'nowrap',
38
- },
39
10
  }));
40
11
 
41
12
  export const IconButton = styled(MuiIconButton)<IconButtonProps & LinkProps>(
@@ -39,7 +39,8 @@ export const TokenList: FC<TokenListProps> = ({
39
39
  let filteredTokens = (tokensWithBalance ??
40
40
  chainTokens ??
41
41
  []) as TokenAmount[];
42
- const searchFilter = tokenSearchFilter?.toUpperCase() ?? '';
42
+ const normalizedSearchFilter = tokenSearchFilter?.replaceAll('$', '');
43
+ const searchFilter = normalizedSearchFilter?.toUpperCase() ?? '';
43
44
  filteredTokens = tokenSearchFilter
44
45
  ? filteredTokens.filter(
45
46
  (token) =>
@@ -56,7 +57,7 @@ export const TokenList: FC<TokenListProps> = ({
56
57
  !!selectedChainId;
57
58
 
58
59
  const { token: searchedToken, isLoading: isSearchedTokenLoading } =
59
- useTokenSearch(selectedChainId, tokenSearchFilter, tokenSearchEnabled);
60
+ useTokenSearch(selectedChainId, normalizedSearchFilter, tokenSearchEnabled);
60
61
 
61
62
  const isLoading =
62
63
  isTokensLoading ||
@@ -9,7 +9,8 @@ import {
9
9
  Slide,
10
10
  Typography,
11
11
  } from '@mui/material';
12
- import { MouseEventHandler, useRef, useState } from 'react';
12
+ import type { MouseEventHandler } from 'react';
13
+ import { useRef, useState } from 'react';
13
14
  import { useTranslation } from 'react-i18next';
14
15
  import { formatUnits } from 'viem';
15
16
  import {
@@ -17,7 +18,8 @@ import {
17
18
  formatTokenPrice,
18
19
  shortenAddress,
19
20
  } from '../../utils';
20
- import { IconButton, ListItem, ListItemButton } from './TokenList.style';
21
+ import { ListItemButton } from '../ListItem';
22
+ import { IconButton, ListItem } from './TokenList.style';
21
23
  import type { TokenListItemButtonProps, TokenListItemProps } from './types';
22
24
 
23
25
  export const TokenListItem: React.FC<TokenListItemProps> = ({
@@ -37,7 +39,6 @@ export const TokenListItem: React.FC<TokenListItemProps> = ({
37
39
  };
38
40
  return (
39
41
  <ListItem
40
- disablePadding
41
42
  style={{
42
43
  height: `${size}px`,
43
44
  transform: `translateY(${start}px)`,
@@ -18,7 +18,7 @@ export const VirtualizedTokenList: FC<VirtualizedTokenListProps> = ({
18
18
  showFeatured,
19
19
  onClick,
20
20
  }) => {
21
- const { isConnected } = useAccount();
21
+ const { account } = useAccount({ chainType: chain?.chainType });
22
22
  const { t } = useTranslation();
23
23
 
24
24
  const hasFeaturedTokens = !!featuredTokensLength && showFeatured;
@@ -84,7 +84,7 @@ export const VirtualizedTokenList: FC<VirtualizedTokenListProps> = ({
84
84
  token={token}
85
85
  chain={chain}
86
86
  isBalanceLoading={isBalanceLoading}
87
- showBalance={isConnected}
87
+ showBalance={account.isConnected}
88
88
  startAdornment={
89
89
  hasFeaturedTokens && token.featured && item.index === 0 ? (
90
90
  <Typography
package/config/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.0.0-alpha.16';
2
+ export const version = '3.0.0-alpha.19';
package/hooks/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './useAccount';
2
+ export * from './useAddressValidation';
2
3
  export * from './useAvailableChains';
3
4
  export * from './useChain';
4
5
  export * from './useChains';
@@ -15,12 +16,13 @@ export * from './useInitializer';
15
16
  export * from './useLanguages';
16
17
  export * from './useNavigateBack';
17
18
  export * from './useProcessMessage';
18
- export * from './useRequiredToAddress';
19
19
  export * from './useRouteExecution';
20
20
  export * from './useRoutes';
21
21
  export * from './useScrollableContainer';
22
22
  export * from './useSettingMonitor';
23
23
  export * from './useSwapOnly';
24
+ export * from './useToAddressRequirements';
25
+ export * from './useToAddressReset';
24
26
  export * from './useToken';
25
27
  export * from './useTokenAddressBalance';
26
28
  export * from './useTokenBalance';
@@ -29,7 +29,11 @@ export interface SVMAccount extends AccountBase {
29
29
  connector?: WalletAdapter;
30
30
  }
31
31
 
32
- export type Account = EVMAccount | SVMAccount;
32
+ export interface DefaultAccount extends AccountBase {
33
+ connector?: never;
34
+ }
35
+
36
+ export type Account = EVMAccount | SVMAccount | DefaultAccount;
33
37
 
34
38
  export interface AccountResult {
35
39
  account: Account;
@@ -37,13 +41,33 @@ export interface AccountResult {
37
41
  * Connected accounts
38
42
  */
39
43
  accounts: Account[];
40
- isConnected: boolean;
41
44
  }
42
45
 
43
- export const useAccount = (): AccountResult => {
46
+ interface UseAccountArgs {
47
+ chainType?: ChainType;
48
+ }
49
+
50
+ const defaultAccount: AccountBase = {
51
+ isConnected: false,
52
+ isConnecting: false,
53
+ isReconnecting: false,
54
+ isDisconnected: true,
55
+ status: 'disconnected',
56
+ };
57
+
58
+ /**
59
+ *
60
+ * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
61
+ * @returns - Account result
62
+ */
63
+ export const useAccount = (args?: UseAccountArgs): AccountResult => {
44
64
  const account = useWagmiAccount();
45
65
  const { wallet } = useWallet();
46
66
 
67
+ // We create a simple variable from the args object
68
+ // to avoid re-render useMemo on every object reference change.
69
+ const hasChainTypeArgs = Boolean(args);
70
+
47
71
  return useMemo(() => {
48
72
  const svm: Account = wallet?.adapter.publicKey
49
73
  ? {
@@ -66,13 +90,17 @@ export const useAccount = (): AccountResult => {
66
90
  status: 'disconnected',
67
91
  };
68
92
  const evm: Account = { ...account, chainType: ChainType.EVM };
69
-
70
- const accounts = [evm, svm].filter((account) => account.isConnected);
93
+ const accounts = [evm, svm];
94
+ const connectedAccounts = [evm, svm].filter(
95
+ (account) => account.isConnected,
96
+ );
71
97
  return {
72
- account: account.isConnected ? evm : svm,
98
+ account: hasChainTypeArgs
99
+ ? accounts.find((account) => account.chainType === args?.chainType) ??
100
+ defaultAccount
101
+ : accounts.find((account) => account.isConnected) ?? defaultAccount,
73
102
  // We need to return only connected account list
74
- accounts,
75
- isConnected: accounts.length > 0,
103
+ accounts: connectedAccounts,
76
104
  };
77
- }, [account, wallet]);
105
+ }, [account, args?.chainType, hasChainTypeArgs, wallet]);
78
106
  };