@rango-dev/widget-embedded 0.17.1-next.3 → 0.17.1-next.31

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 (331) hide show
  1. package/dist/QueueManager.d.ts +5 -2
  2. package/dist/QueueManager.d.ts.map +1 -1
  3. package/dist/components/AppRouter.d.ts +0 -2
  4. package/dist/components/AppRouter.d.ts.map +1 -1
  5. package/dist/components/AppRoutes.d.ts +1 -6
  6. package/dist/components/AppRoutes.d.ts.map +1 -1
  7. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +370 -56
  8. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  9. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  10. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +0 -2
  11. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -1
  12. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  13. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -4
  14. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
  15. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
  16. package/dist/components/Layout/Layout.d.ts.map +1 -1
  17. package/dist/components/Layout/Layout.types.d.ts +2 -2
  18. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  19. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +1 -1
  20. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -1
  21. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +1727 -0
  22. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
  23. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  24. package/dist/components/Quote/Quote.d.ts.map +1 -1
  25. package/dist/components/Quote/Quote.styles.d.ts +633 -3
  26. package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
  27. package/dist/components/Quote/Quote.types.d.ts +0 -1
  28. package/dist/components/Quote/Quote.types.d.ts.map +1 -1
  29. package/dist/components/Quote/QuoteSummary.styles.d.ts +157 -0
  30. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -1
  31. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -1
  32. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -1
  33. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
  34. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +1 -0
  35. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -1
  36. package/dist/components/Slippage/Slippage.d.ts.map +1 -1
  37. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  38. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  39. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +1 -1
  40. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
  41. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +628 -0
  42. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
  43. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  44. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +1 -1
  45. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -1
  46. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +1 -1
  47. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
  48. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
  49. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts +157 -0
  50. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  51. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  52. package/dist/components/TokenList/TokenList.helpers.d.ts +2 -2
  53. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
  54. package/dist/components/TokenList/TokenList.styles.d.ts +942 -0
  55. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  56. package/dist/components/TokenList/TokenList.types.d.ts +3 -9
  57. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  58. package/dist/components/TokenList/index.d.ts +0 -1
  59. package/dist/components/TokenList/index.d.ts.map +1 -1
  60. package/dist/components/UpdateUrl.d.ts +1 -6
  61. package/dist/components/UpdateUrl.d.ts.map +1 -1
  62. package/dist/components/WidgetEvents.d.ts.map +1 -1
  63. package/dist/constants/errors.d.ts.map +1 -1
  64. package/dist/constants/index.d.ts +1 -0
  65. package/dist/constants/index.d.ts.map +1 -1
  66. package/dist/constants/navigationRoutes.d.ts +1 -2
  67. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  68. package/dist/constants/searchParams.d.ts +2 -1
  69. package/dist/constants/searchParams.d.ts.map +1 -1
  70. package/dist/containers/App/App.d.ts +3 -0
  71. package/dist/containers/App/App.d.ts.map +1 -0
  72. package/dist/containers/App/App.styles.d.ts +158 -0
  73. package/dist/containers/App/App.styles.d.ts.map +1 -0
  74. package/dist/containers/App/index.d.ts +2 -0
  75. package/dist/containers/App/index.d.ts.map +1 -0
  76. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -1
  77. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +316 -0
  78. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -1
  79. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +3 -0
  80. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -1
  81. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  82. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  83. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  84. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  85. package/dist/containers/Wallets/index.d.ts +2 -0
  86. package/dist/containers/Wallets/index.d.ts.map +1 -0
  87. package/dist/containers/Widget/Widget.d.ts +5 -0
  88. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  89. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  90. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  91. package/dist/containers/Widget/index.d.ts +3 -0
  92. package/dist/containers/Widget/index.d.ts.map +1 -0
  93. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  94. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  95. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts +20 -0
  96. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts.map +1 -0
  97. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +21 -0
  98. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  99. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  100. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  101. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  102. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  103. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  104. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  105. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  106. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  107. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
  108. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +6 -3
  109. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
  110. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts +1 -1
  111. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -1
  112. package/dist/hooks/useForceAutoConnect.d.ts +2 -0
  113. package/dist/hooks/useForceAutoConnect.d.ts.map +1 -0
  114. package/dist/hooks/useLanguage.d.ts +1 -1
  115. package/dist/hooks/useLanguage.d.ts.map +1 -1
  116. package/dist/hooks/useNavigateBack.d.ts +1 -3
  117. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  118. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  119. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  120. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  121. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +3 -5
  122. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  123. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  124. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  125. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  126. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  127. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  128. package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
  129. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  130. package/dist/hooks/useTheme.d.ts +1 -1
  131. package/dist/hooks/useTheme.d.ts.map +1 -1
  132. package/dist/hooks/useWalletList.d.ts.map +1 -1
  133. package/dist/index.d.ts +20 -8
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +1 -1
  136. package/dist/index.js.map +4 -4
  137. package/dist/pages/ConfirmSwapPage.d.ts +1 -6
  138. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  139. package/dist/pages/HistoryPage.d.ts.map +1 -1
  140. package/dist/pages/Home.d.ts.map +1 -1
  141. package/dist/pages/LanguagePage.d.ts.map +1 -1
  142. package/dist/pages/LiquiditySourcePage.d.ts +1 -2
  143. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  144. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  145. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  146. package/dist/pages/SettingsPage.d.ts +1 -6
  147. package/dist/pages/SettingsPage.d.ts.map +1 -1
  148. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  149. package/dist/pages/ThemePage.d.ts.map +1 -1
  150. package/dist/pages/WalletsPage.d.ts +1 -8
  151. package/dist/pages/WalletsPage.d.ts.map +1 -1
  152. package/dist/store/AppStore.d.ts +47 -0
  153. package/dist/store/AppStore.d.ts.map +1 -0
  154. package/dist/store/app.d.ts +41 -22
  155. package/dist/store/app.d.ts.map +1 -1
  156. package/dist/store/notification.d.ts +4 -3
  157. package/dist/store/notification.d.ts.map +1 -1
  158. package/dist/store/quote.d.ts +23 -16
  159. package/dist/store/quote.d.ts.map +1 -1
  160. package/dist/store/slices/config.d.ts +3 -2
  161. package/dist/store/slices/config.d.ts.map +1 -1
  162. package/dist/store/slices/data.d.ts +3 -0
  163. package/dist/store/slices/data.d.ts.map +1 -1
  164. package/dist/store/slices/settings.d.ts +39 -0
  165. package/dist/store/slices/settings.d.ts.map +1 -0
  166. package/dist/store/ui.d.ts +2 -1
  167. package/dist/store/ui.d.ts.map +1 -1
  168. package/dist/store/wallets.d.ts +14 -9
  169. package/dist/store/wallets.d.ts.map +1 -1
  170. package/dist/types/config.d.ts +38 -5
  171. package/dist/types/config.d.ts.map +1 -1
  172. package/dist/types/swap.d.ts +4 -14
  173. package/dist/types/swap.d.ts.map +1 -1
  174. package/dist/types/wallets.d.ts +15 -1
  175. package/dist/types/wallets.d.ts.map +1 -1
  176. package/dist/utils/colors.d.ts.map +1 -1
  177. package/dist/utils/configs.d.ts +1 -0
  178. package/dist/utils/configs.d.ts.map +1 -1
  179. package/dist/utils/meta.d.ts +2 -1
  180. package/dist/utils/meta.d.ts.map +1 -1
  181. package/dist/utils/providers.d.ts +2 -2
  182. package/dist/utils/providers.d.ts.map +1 -1
  183. package/dist/utils/queue.d.ts +2 -2
  184. package/dist/utils/queue.d.ts.map +1 -1
  185. package/dist/utils/quote.d.ts +1 -1
  186. package/dist/utils/quote.d.ts.map +1 -1
  187. package/dist/utils/settings.d.ts +6 -2
  188. package/dist/utils/settings.d.ts.map +1 -1
  189. package/dist/utils/swap.d.ts +16 -7
  190. package/dist/utils/swap.d.ts.map +1 -1
  191. package/dist/utils/time.d.ts +1 -1
  192. package/dist/utils/time.d.ts.map +1 -1
  193. package/dist/utils/wallets.d.ts +7 -9
  194. package/dist/utils/wallets.d.ts.map +1 -1
  195. package/package.json +12 -10
  196. package/src/QueueManager.tsx +18 -17
  197. package/src/components/AppRouter.tsx +8 -32
  198. package/src/components/AppRoutes.tsx +57 -69
  199. package/src/components/BlockchainList/BlockchainList.styles.ts +2 -2
  200. package/src/components/BlockchainList/BlockchainList.tsx +4 -4
  201. package/src/components/BlockchainsSection/BlockchainsSection.tsx +4 -4
  202. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +12 -6
  203. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +20 -21
  204. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +0 -2
  205. package/src/components/ConfirmWalletsModal/WalletList.tsx +6 -5
  206. package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
  207. package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
  208. package/src/components/Layout/Layout.tsx +20 -7
  209. package/src/components/Layout/Layout.types.ts +2 -2
  210. package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +14 -7
  211. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +63 -60
  212. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +17 -8
  213. package/src/components/NoResult/NoResult.helpers.ts +12 -12
  214. package/src/components/NoResult/NoResult.tsx +6 -6
  215. package/src/components/NotificationContent/NotificationContent.tsx +5 -3
  216. package/src/components/Quote/Quote.styles.ts +42 -12
  217. package/src/components/Quote/Quote.tsx +106 -37
  218. package/src/components/Quote/Quote.types.ts +0 -1
  219. package/src/components/Quote/QuoteSkeleton.tsx +1 -1
  220. package/src/components/Quote/QuoteSummary.styles.ts +9 -8
  221. package/src/components/Quote/QuoteSummary.tsx +2 -2
  222. package/src/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx +1 -1
  223. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +11 -4
  224. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts +8 -1
  225. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +13 -13
  226. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +1 -0
  227. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +3 -3
  228. package/src/components/Slippage/Slippage.tsx +3 -5
  229. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -7
  230. package/src/components/SwapDetails/SwapDetails.helpers.tsx +1 -1
  231. package/src/components/SwapDetails/SwapDetails.styles.ts +37 -33
  232. package/src/components/SwapDetails/SwapDetails.tsx +33 -45
  233. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +1 -1
  234. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  235. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  236. package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +1 -1
  237. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +1 -1
  238. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +1 -1
  239. package/src/components/SwapsGroup/SwapsGroup.styles.ts +10 -1
  240. package/src/components/SwapsGroup/SwapsGroup.tsx +3 -5
  241. package/src/components/TokenList/TokenList.helpers.ts +2 -2
  242. package/src/components/TokenList/TokenList.styles.ts +58 -37
  243. package/src/components/TokenList/TokenList.tsx +28 -23
  244. package/src/components/TokenList/TokenList.types.ts +3 -10
  245. package/src/components/TokenList/index.ts +0 -1
  246. package/src/components/UpdateUrl.tsx +23 -18
  247. package/src/components/WidgetEvents.tsx +4 -2
  248. package/src/constants/errors.ts +9 -5
  249. package/src/constants/index.ts +1 -0
  250. package/src/constants/navigationRoutes.ts +7 -8
  251. package/src/constants/searchParams.ts +1 -0
  252. package/src/containers/App/App.styles.ts +18 -0
  253. package/src/containers/App/App.tsx +52 -0
  254. package/src/containers/App/index.ts +1 -0
  255. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +17 -1
  256. package/src/containers/QuoteInfo/QuoteInfo.tsx +44 -43
  257. package/src/containers/QuoteInfo/QuoteInfo.types.ts +3 -0
  258. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +48 -34
  259. package/src/containers/Wallets/Wallets.types.ts +12 -0
  260. package/src/containers/Wallets/index.ts +1 -0
  261. package/src/containers/Widget/Widget.tsx +19 -0
  262. package/src/containers/Widget/Widget.types.ts +5 -0
  263. package/src/containers/Widget/index.ts +2 -0
  264. package/src/containers/WidgetInfo/WidgetInfo.helpers.ts +64 -0
  265. package/src/containers/WidgetInfo/WidgetInfo.tsx +62 -0
  266. package/src/containers/WidgetInfo/WidgetInfo.types.ts +21 -0
  267. package/src/containers/WidgetInfo/index.ts +1 -0
  268. package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
  269. package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
  270. package/src/containers/WidgetProvider/index.ts +1 -0
  271. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +15 -11
  272. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +25 -24
  273. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +1 -1
  274. package/src/hooks/useForceAutoConnect.ts +27 -0
  275. package/src/hooks/useLanguage.ts +4 -5
  276. package/src/hooks/useNavigateBack.ts +3 -52
  277. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  278. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  279. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  280. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  281. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +15 -6
  282. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  283. package/src/hooks/useSwapInput.ts +89 -30
  284. package/src/hooks/useSyncStoresWithConfig.ts +38 -22
  285. package/src/hooks/useTheme.ts +4 -5
  286. package/src/hooks/useWalletList.ts +3 -5
  287. package/src/index.ts +53 -5
  288. package/src/pages/ConfirmSwapPage.tsx +61 -41
  289. package/src/pages/HistoryPage.tsx +2 -7
  290. package/src/pages/Home.tsx +58 -88
  291. package/src/pages/LanguagePage.tsx +0 -5
  292. package/src/pages/LiquiditySourcePage.tsx +24 -37
  293. package/src/pages/SelectBlockchainPage.tsx +28 -21
  294. package/src/pages/SelectSwapItemsPage.tsx +10 -27
  295. package/src/pages/SettingsPage.tsx +28 -24
  296. package/src/pages/SwapDetailsPage.tsx +6 -7
  297. package/src/pages/ThemePage.tsx +2 -7
  298. package/src/pages/WalletsPage.tsx +4 -15
  299. package/src/services/httpService.ts +1 -1
  300. package/src/store/AppStore.tsx +41 -0
  301. package/src/store/app.ts +44 -6
  302. package/src/store/quote.ts +29 -26
  303. package/src/store/slices/config.ts +25 -15
  304. package/src/store/slices/data.ts +64 -29
  305. package/src/store/slices/settings.ts +168 -0
  306. package/src/store/wallets.ts +68 -37
  307. package/src/types/config.ts +50 -5
  308. package/src/types/swap.ts +4 -13
  309. package/src/types/wallets.ts +18 -1
  310. package/src/utils/colors.ts +2 -1
  311. package/src/utils/configs.ts +2 -1
  312. package/src/utils/date.ts +1 -1
  313. package/src/utils/meta.ts +8 -1
  314. package/src/utils/providers.ts +8 -5
  315. package/src/utils/queue.ts +2 -2
  316. package/src/utils/quote.ts +7 -7
  317. package/src/utils/settings.ts +17 -10
  318. package/src/utils/swap.ts +59 -55
  319. package/src/utils/time.ts +1 -1
  320. package/src/utils/wallets.ts +107 -149
  321. package/dist/Wallets.d.ts +0 -17
  322. package/dist/Wallets.d.ts.map +0 -1
  323. package/dist/Widget.d.ts +0 -9
  324. package/dist/Widget.d.ts.map +0 -1
  325. package/dist/store/meta.d.ts +0 -23
  326. package/dist/store/meta.d.ts.map +0 -1
  327. package/dist/store/settings.d.ts +0 -81
  328. package/dist/store/settings.d.ts.map +0 -1
  329. package/src/Widget.tsx +0 -119
  330. package/src/store/meta.ts +0 -39
  331. package/src/store/settings.ts +0 -158
@@ -1,14 +1,16 @@
1
1
  import { i18n } from '@lingui/core';
2
- import { Divider, SelectableCategoryList } from '@rango-dev/ui';
2
+ import {
3
+ Divider,
4
+ getCountCategories,
5
+ SelectableCategoryList
6
+ } from '@rango-dev/ui';
3
7
  import React, { useState } from 'react';
4
8
 
5
9
  import { BlockchainList } from '../components/BlockchainList';
6
10
  import { Layout } from '../components/Layout';
7
11
  import { SearchInput } from '../components/SearchInput';
8
- import { navigationRoutes } from '../constants/navigationRoutes';
9
12
  import { useNavigateBack } from '../hooks/useNavigateBack';
10
- import { useAppStore } from '../store/app';
11
- import { useMetaStore } from '../store/meta';
13
+ import { useAppStore } from '../store/AppStore';
12
14
  import { useQuoteStore } from '../store/quote';
13
15
 
14
16
  interface PropTypes {
@@ -17,34 +19,40 @@ interface PropTypes {
17
19
 
18
20
  export function SelectBlockchainPage(props: PropTypes) {
19
21
  const { type } = props;
20
- const { navigateBackFrom } = useNavigateBack();
22
+ const navigateBack = useNavigateBack();
21
23
  const [searchedFor, setSearchedFor] = useState<string>('');
22
24
  const [blockchainCategory, setBlockchainCategory] = useState<string>('ALL');
23
25
  const setToBlockchain = useQuoteStore.use.setToBlockchain();
24
26
  const setFromBlockchain = useQuoteStore.use.setFromBlockchain();
25
- const { loadingStatus } = useMetaStore();
27
+ const fetchStatus = useAppStore().fetchStatus;
26
28
 
27
29
  const blockchains = useAppStore().blockchains({
28
- type: type,
30
+ type: type
29
31
  });
30
- const routeKey = type === 'source' ? 'fromBlockchain' : 'toBlockchain';
32
+
33
+ const countActiveCategories = getCountCategories(blockchains);
34
+
35
+ const showCategory = countActiveCategories !== 1;
31
36
 
32
37
  return (
33
38
  <Layout
34
39
  header={{
35
- onBack: () => {
36
- navigateBackFrom(navigationRoutes[routeKey]);
37
- },
38
- title: i18n.t(`Select Blockchain`),
40
+ title: i18n.t(`Select Blockchain`)
39
41
  }}>
40
42
  <Divider size={12} />
41
- <SelectableCategoryList
42
- setCategory={setBlockchainCategory}
43
- category={blockchainCategory}
44
- blockchains={blockchains}
45
- isLoading={loadingStatus === 'loading'}
46
- />
47
- <Divider size={24} />
43
+
44
+ {showCategory && (
45
+ <>
46
+ <SelectableCategoryList
47
+ setCategory={setBlockchainCategory}
48
+ category={blockchainCategory}
49
+ blockchains={blockchains}
50
+ isLoading={fetchStatus === 'loading'}
51
+ />
52
+ <Divider size={24} />
53
+ </>
54
+ )}
55
+
48
56
  <SearchInput
49
57
  value={searchedFor}
50
58
  autoFocus
@@ -67,8 +75,7 @@ export function SelectBlockchainPage(props: PropTypes) {
67
75
  } else {
68
76
  setToBlockchain(blockchain);
69
77
  }
70
-
71
- navigateBackFrom(navigationRoutes[routeKey]);
78
+ navigateBack();
72
79
  }}
73
80
  />
74
81
  </Layout>
@@ -11,10 +11,10 @@ import { SearchInput } from '../components/SearchInput';
11
11
  import { TokenList } from '../components/TokenList/TokenList';
12
12
  import { navigationRoutes } from '../constants/navigationRoutes';
13
13
  import { useNavigateBack } from '../hooks/useNavigateBack';
14
- import { useAppStore } from '../store/app';
14
+ import { useAppStore } from '../store/AppStore';
15
15
  import { useQuoteStore } from '../store/quote';
16
16
  import { useWalletsStore } from '../store/wallets';
17
- import { getTokensBalanceFromWalletAndSort } from '../utils/wallets';
17
+ import { sortTokensByBalance } from '../utils/wallets';
18
18
 
19
19
  interface PropTypes {
20
20
  type: 'source' | 'destination';
@@ -23,7 +23,7 @@ interface PropTypes {
23
23
  export function SelectSwapItemsPage(props: PropTypes) {
24
24
  const { type } = props;
25
25
  const navigate = useNavigate();
26
- const { navigateBackFrom } = useNavigateBack();
26
+ const navigateBack = useNavigateBack();
27
27
  const {
28
28
  fromBlockchain,
29
29
  toBlockchain,
@@ -32,7 +32,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
32
32
  setFromBlockchain,
33
33
  setToBlockchain,
34
34
  } = useQuoteStore();
35
- const { connectedWallets } = useWalletsStore();
35
+ const getBalanceFor = useWalletsStore.use.getBalanceFor();
36
36
  const [searchedFor, setSearchedFor] = useState<string>('');
37
37
 
38
38
  const selectedBlockchain = type === 'source' ? fromBlockchain : toBlockchain;
@@ -47,10 +47,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
47
47
  blockchain: selectedBlockchainName,
48
48
  searchFor: searchedFor,
49
49
  });
50
- const tokensList = getTokensBalanceFromWalletAndSort(
51
- tokens,
52
- connectedWallets
53
- );
50
+ const tokensList = sortTokensByBalance(tokens, getBalanceFor);
54
51
 
55
52
  // Actions
56
53
  const updateBlockchain = (blockchain: BlockchainMeta) => {
@@ -63,36 +60,22 @@ export function SelectSwapItemsPage(props: PropTypes) {
63
60
 
64
61
  const updateToken = (token: Token) => {
65
62
  if (type === 'source') {
66
- setFromToken(token);
63
+ setFromToken({ token, meta: { blockchains, tokens } });
67
64
  } else {
68
- setToToken(token);
65
+ setToToken({ token, meta: { blockchains, tokens } });
69
66
  }
70
67
  };
71
68
 
72
69
  return (
73
70
  <Layout
74
71
  header={{
75
- onBack: () =>
76
- navigateBackFrom(
77
- type === 'source'
78
- ? navigationRoutes.fromSwap
79
- : navigationRoutes.toSwap
80
- ),
81
- title: i18n.t('Swap {type}', {
82
- type: type === 'source' ? 'from' : 'to',
83
- }),
72
+ title: i18n.t('Swap {type}', { type }),
84
73
  }}>
85
74
  <BlockchainsSection
86
75
  blockchains={blockchains}
87
76
  type={type == 'source' ? 'from' : 'to'}
88
77
  blockchain={type === 'source' ? fromBlockchain : toBlockchain}
89
- onMoreClick={() =>
90
- navigate(
91
- type === 'source'
92
- ? navigationRoutes.fromBlockchain
93
- : navigationRoutes.toBlockchain
94
- )
95
- }
78
+ onMoreClick={() => navigate(navigationRoutes.blockchains)}
96
79
  onChange={(blockchain) => {
97
80
  updateBlockchain(blockchain);
98
81
  }}
@@ -123,7 +106,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
123
106
  updateBlockchain(tokenBlockchain);
124
107
  }
125
108
 
126
- navigateBackFrom(navigationRoutes.fromSwap);
109
+ navigateBack();
127
110
  }}
128
111
  />
129
112
  </Layout>
@@ -18,27 +18,32 @@ import { SettingsContainer } from '../components/SettingsContainer';
18
18
  import { Slippage } from '../components/Slippage';
19
19
  import { SlippageTooltipContainer as TooltipContainer } from '../components/Slippage/Slippage.styles';
20
20
  import { navigationRoutes } from '../constants/navigationRoutes';
21
- import { useNavigateBack } from '../hooks/useNavigateBack';
22
- import { useMetaStore } from '../store/meta';
23
- import { useSettingsStore } from '../store/settings';
21
+ import { useAppStore } from '../store/AppStore';
24
22
  import { getContainer } from '../utils/common';
25
- import { getUniqueSwappersGroups } from '../utils/settings';
23
+ import { getUniqueSwappersGroups, isFeatureHidden } from '../utils/settings';
26
24
 
27
- interface PropTypes {
28
- supportedSwappers?: string[];
29
- singleTheme?: boolean;
30
- }
31
-
32
- export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
25
+ export function SettingsPage() {
33
26
  const navigate = useNavigate();
34
- const { navigateBackFrom } = useNavigateBack();
27
+ const { theme } = useAppStore().config;
28
+ const fetchStatus = useAppStore().fetchStatus;
29
+ const swappers = useAppStore().swappers();
30
+ const disabledLiquiditySources = useAppStore().disabledLiquiditySources;
31
+ const {
32
+ config: { features },
33
+ } = useAppStore();
34
+ const isThemeHidden = isFeatureHidden('theme', features);
35
35
 
36
- const infiniteApprove = useSettingsStore.use.infiniteApprove();
37
- const toggleInfiniteApprove = useSettingsStore.use.toggleInfiniteApprove();
38
- const loadingMetaStatus = useMetaStore.use.loadingStatus();
36
+ const isLiquidityHidden = isFeatureHidden('liquiditySource', features);
39
37
 
40
- const supportedUniqueSwappersGroups =
41
- getUniqueSwappersGroups(supportedSwappers);
38
+ const isLanguageHidden = isFeatureHidden('language', features);
39
+
40
+ const infiniteApprove = useAppStore().infiniteApprove;
41
+ const toggleInfiniteApprove = useAppStore().toggleInfiniteApprove;
42
+
43
+ const supportedUniqueSwappersGroups = getUniqueSwappersGroups(
44
+ swappers,
45
+ disabledLiquiditySources
46
+ );
42
47
 
43
48
  const bridgeSources = supportedUniqueSwappersGroups.filter(
44
49
  (uniqueItem) =>
@@ -58,7 +63,7 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
58
63
  ).length;
59
64
 
60
65
  const handleEndItem = (totalSelected: number, total: number) => {
61
- switch (loadingMetaStatus) {
66
+ switch (fetchStatus) {
62
67
  case 'loading':
63
68
  return <Skeleton variant="text" size="medium" width={50} />;
64
69
  case 'failed':
@@ -162,12 +167,12 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
162
167
  onClick: toggleInfiniteApprove,
163
168
  };
164
169
 
165
- const settingItems = [
166
- bridgeItem,
167
- exchangeItem,
168
- // languageItem
169
- ];
170
- if (!singleTheme) {
170
+ const settingItems = isLiquidityHidden ? [] : [bridgeItem, exchangeItem];
171
+
172
+ if (!isLanguageHidden) {
173
+ // settingItems.push(languageItem);
174
+ }
175
+ if (!theme?.singleTheme && !isThemeHidden) {
171
176
  settingItems.push(themeItem);
172
177
  }
173
178
  settingItems.push(infiniteApprovalItem);
@@ -175,7 +180,6 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
175
180
  return (
176
181
  <Layout
177
182
  header={{
178
- onBack: () => navigateBackFrom(navigationRoutes.settings),
179
183
  title: i18n.t('Setting'),
180
184
  }}>
181
185
  <SettingsContainer>
@@ -4,9 +4,8 @@ import React from 'react';
4
4
 
5
5
  import { SwapDetails } from '../components/SwapDetails';
6
6
  import { SwapDetailsPlaceholder } from '../components/SwapDetails/SwapDetails.Placeholder';
7
- import { navigationRoutes } from '../constants/navigationRoutes';
8
7
  import { useNavigateBack } from '../hooks/useNavigateBack';
9
- import { useMetaStore } from '../store/meta';
8
+ import { useAppStore } from '../store/AppStore';
10
9
  import { useUiStore } from '../store/ui';
11
10
  import { getPendingSwaps } from '../utils/queue';
12
11
 
@@ -15,10 +14,10 @@ export function SwapDetailsPage() {
15
14
  const loading = !state.loadedFromPersistor;
16
15
  const pendingSwaps = getPendingSwaps(manager);
17
16
  const requestId = useUiStore.use.selectedSwapRequestId();
18
- const { navigateBackFrom } = useNavigateBack();
19
- const { loadingStatus } = useMetaStore();
17
+ const navigateBack = useNavigateBack();
18
+ const { fetchStatus: fetchMetaStatus } = useAppStore();
20
19
 
21
- const showSkeleton = loading || loadingStatus === 'loading';
20
+ const showSkeleton = loading || fetchMetaStatus === 'loading';
22
21
 
23
22
  const selectedSwap = pendingSwaps.find(
24
23
  ({ swap }) => swap.requestId === requestId
@@ -36,8 +35,8 @@ export function SwapDetailsPage() {
36
35
  const onDelete = async () => {
37
36
  if (selectedSwap?.id) {
38
37
  try {
39
- await manager?.deleteQueue(selectedSwap.id);
40
- navigateBackFrom(navigationRoutes.swapDetails);
38
+ manager?.deleteQueue(selectedSwap.id);
39
+ navigateBack();
41
40
  } catch (e) {
42
41
  console.log(e);
43
42
  }
@@ -13,9 +13,7 @@ import React from 'react';
13
13
 
14
14
  import { Layout } from '../components/Layout';
15
15
  import { SettingsContainer } from '../components/SettingsContainer';
16
- import { navigationRoutes } from '../constants/navigationRoutes';
17
- import { useNavigateBack } from '../hooks/useNavigateBack';
18
- import { useSettingsStore } from '../store/settings';
16
+ import { useAppStore } from '../store/AppStore';
19
17
 
20
18
  type Theme = 'dark' | 'light' | 'auto';
21
19
 
@@ -26,9 +24,7 @@ enum Mode {
26
24
  }
27
25
 
28
26
  export function ThemePage() {
29
- const { navigateBackFrom } = useNavigateBack();
30
- const theme = useSettingsStore.use.theme();
31
- const setTheme = useSettingsStore.use.setTheme();
27
+ const { setTheme, theme } = useAppStore();
32
28
 
33
29
  const themesList = [
34
30
  {
@@ -72,7 +68,6 @@ export function ThemePage() {
72
68
  return (
73
69
  <Layout
74
70
  header={{
75
- onBack: () => navigateBackFrom(navigationRoutes.settings),
76
71
  title: i18n.t('Theme'),
77
72
  }}>
78
73
  <SettingsContainer>
@@ -1,4 +1,3 @@
1
- import type { WidgetConfig } from '../types';
2
1
  import type { WalletType } from '@rango-dev/wallets-shared';
3
2
 
4
3
  import { i18n } from '@lingui/core';
@@ -7,18 +6,10 @@ import React, { Fragment, useState } from 'react';
7
6
 
8
7
  import { Layout } from '../components/Layout';
9
8
  import { WalletModal } from '../components/WalletModal';
10
- import { navigationRoutes } from '../constants/navigationRoutes';
11
- import { useNavigateBack } from '../hooks/useNavigateBack';
12
9
  import { useWalletList } from '../hooks/useWalletList';
13
- import { useMetaStore } from '../store/meta';
10
+ import { useAppStore } from '../store/AppStore';
14
11
  import { getContainer } from '../utils/common';
15
12
 
16
- interface PropTypes {
17
- supportedWallets: WidgetConfig['wallets'];
18
- multiWallets: boolean;
19
- config?: WidgetConfig;
20
- }
21
-
22
13
  const ListContainer = styled('div', {
23
14
  display: 'grid',
24
15
  gap: '$10',
@@ -35,8 +26,8 @@ const Container = styled('div', {
35
26
  export const TIME_TO_CLOSE_MODAL = 3_000;
36
27
  export const TIME_TO_IGNORE_MODAL = 300;
37
28
 
38
- export function WalletsPage({ config }: PropTypes) {
39
- const { navigateBackFrom } = useNavigateBack();
29
+ export function WalletsPage() {
30
+ const { config, fetchStatus: fetchMetaStatus } = useAppStore();
40
31
  const [openModal, setOpenModal] = useState(false);
41
32
  const [selectedWalletType, setSelectedWalletType] = useState<WalletType>('');
42
33
  let modalTimerId: ReturnType<typeof setTimeout> | null = null;
@@ -59,7 +50,6 @@ export function WalletsPage({ config }: PropTypes) {
59
50
  },
60
51
  });
61
52
 
62
- const loadingMetaStatus = useMetaStore.use.loadingStatus();
63
53
  const selectedWallet = list.find(
64
54
  (wallet) => wallet.type === selectedWalletType
65
55
  );
@@ -71,7 +61,6 @@ export function WalletsPage({ config }: PropTypes) {
71
61
  <Layout
72
62
  header={{
73
63
  title: i18n.t('Connect Wallets'),
74
- onBack: () => navigateBackFrom(navigationRoutes.wallets),
75
64
  }}>
76
65
  <Container>
77
66
  <Typography variant="title" size="xmedium" align="center">
@@ -88,7 +77,7 @@ export function WalletsPage({ config }: PropTypes) {
88
77
  onClick={(type) => {
89
78
  void handleClick(type);
90
79
  }}
91
- isLoading={loadingMetaStatus === 'loading'}
80
+ isLoading={fetchMetaStatus === 'loading'}
92
81
  />
93
82
  </Fragment>
94
83
  );
@@ -8,6 +8,6 @@ export const httpService = () => {
8
8
  if (rango) {
9
9
  return rango;
10
10
  }
11
- rango = new RangoClient(getConfig('API_KEY'));
11
+ rango = new RangoClient(getConfig('API_KEY'), getConfig('BASE_URL'));
12
12
  return rango;
13
13
  };
@@ -0,0 +1,41 @@
1
+ import type { WidgetConfig } from '../types';
2
+ import type { PropsWithChildren } from 'react';
3
+
4
+ import React, { createContext, useContext, useEffect, useRef } from 'react';
5
+
6
+ import { createAppStore } from './app';
7
+
8
+ type AppStore = ReturnType<typeof createAppStore>;
9
+ type AppStoreProviderProps = PropsWithChildren<{ config?: WidgetConfig }>;
10
+
11
+ export const AppStoreContext = createContext<AppStore | null>(null);
12
+
13
+ export function useAppStore() {
14
+ const store = useContext(AppStoreContext);
15
+
16
+ useEffect(() => {
17
+ if (store && !store.persist.hasHydrated()) {
18
+ void store.persist.rehydrate();
19
+ }
20
+ }, []);
21
+
22
+ if (!store) {
23
+ throw new Error('Missing AppStoreContext.Provider in the tree');
24
+ }
25
+
26
+ return store();
27
+ }
28
+
29
+ export function AppStoreProvider(props: AppStoreProviderProps) {
30
+ const appStoreRef = useRef<AppStore>();
31
+
32
+ if (!appStoreRef.current) {
33
+ appStoreRef.current = createAppStore(props.config);
34
+ }
35
+
36
+ return (
37
+ <AppStoreContext.Provider value={appStoreRef.current}>
38
+ {props.children}
39
+ </AppStoreContext.Provider>
40
+ );
41
+ }
package/src/store/app.ts CHANGED
@@ -1,15 +1,53 @@
1
1
  import type { ConfigSlice } from './slices/config';
2
2
  import type { DataSlice } from './slices/data';
3
+ import type { SettingsSlice } from './slices/settings';
4
+ import type { WidgetConfig } from '../types';
5
+ import type { StateCreator } from 'zustand';
3
6
 
4
7
  import { create } from 'zustand';
8
+ import { persist } from 'zustand/middleware';
5
9
 
6
- import createSelectors from './selectors';
7
10
  import { createConfigSlice } from './slices/config';
8
11
  import { createDataSlice } from './slices/data';
12
+ import { createSettingsSlice } from './slices/settings';
9
13
 
10
- const store = create<DataSlice & ConfigSlice>()((...a) => ({
11
- ...createDataSlice(...a),
12
- ...createConfigSlice(...a),
13
- }));
14
+ export type StateCreatorWithInitialData<
15
+ T extends Partial<WidgetConfig>,
16
+ R extends Record<string, unknown>,
17
+ V extends Record<string, unknown>
18
+ > = (
19
+ initialData: T | undefined,
20
+ ...rest: Parameters<StateCreator<R, [], [], V>>
21
+ ) => ReturnType<StateCreator<R, [], [], V>>;
14
22
 
15
- export const useAppStore = createSelectors(store);
23
+ export type AppStoreState = DataSlice & ConfigSlice & SettingsSlice;
24
+
25
+ export function createAppStore(initialData?: WidgetConfig) {
26
+ return create<AppStoreState>()(
27
+ persist(
28
+ (...a) => ({
29
+ ...createDataSlice(...a),
30
+ ...createSettingsSlice(...a),
31
+ ...createConfigSlice(initialData, ...a),
32
+ }),
33
+ {
34
+ name: 'user-settings',
35
+ skipHydration: true,
36
+ partialize: (state) => {
37
+ return {
38
+ theme: state.theme,
39
+ language: state.language,
40
+ affiliatePercent: state.affiliatePercent,
41
+ affiliateRef: state.affiliateRef,
42
+ affiliateWallets: state.affiliateWallets,
43
+ slippage: state.slippage,
44
+ customSlippage: state.customSlippage,
45
+ infiniteApprove: state.infiniteApprove,
46
+ preferredBlockchains: state.preferredBlockchains,
47
+ disabledLiquiditySources: state.disabledLiquiditySources,
48
+ };
49
+ },
50
+ }
51
+ )
52
+ );
53
+ }
@@ -1,7 +1,11 @@
1
- import type { TokenWithBalance } from '../components/TokenList';
2
1
  import type { Wallet } from '../types';
3
- import type { PendingSwap } from '@rango-dev/queue-manager-rango-preset/dist/shared';
4
- import type { BestRouteResponse, BlockchainMeta, Token } from 'rango-sdk';
2
+ import type {
3
+ BestRouteResponse,
4
+ BlockchainMeta,
5
+ MetaResponse,
6
+ Token,
7
+ } from 'rango-sdk';
8
+ import type { PendingSwap } from 'rango-types';
5
9
 
6
10
  import BigNumber from 'bignumber.js';
7
11
  import { create } from 'zustand';
@@ -12,7 +16,6 @@ import { isPositiveNumber } from '../utils/numbers';
12
16
  import { createRetryQuote, getQuoteToTokenUsdPrice } from '../utils/quote';
13
17
  import { calcOutputUsdValue } from '../utils/swap';
14
18
 
15
- import { useMetaStore } from './meta';
16
19
  import createSelectors from './selectors';
17
20
 
18
21
  export const getUsdValue = (
@@ -23,6 +26,10 @@ export const getUsdValue = (
23
26
  ? new BigNumber(amount || ZERO).multipliedBy(token?.usdPrice || 0)
24
27
  : null;
25
28
 
29
+ export type Meta = Pick<MetaResponse, 'blockchains' | 'tokens'>;
30
+
31
+ export type SetTokenParams = { token: Token; meta: Meta } | { token: null };
32
+
26
33
  export interface QuoteState {
27
34
  fromBlockchain: BlockchainMeta | null;
28
35
  toBlockchain: BlockchainMeta | null;
@@ -30,8 +37,8 @@ export interface QuoteState {
30
37
  inputUsdValue: BigNumber | null;
31
38
  outputAmount: BigNumber | null;
32
39
  outputUsdValue: BigNumber | null;
33
- fromToken: TokenWithBalance | null;
34
- toToken: TokenWithBalance | null;
40
+ fromToken: Token | null;
41
+ toToken: Token | null;
35
42
  quoteWalletsConfirmed: boolean;
36
43
  selectedWallets: Wallet[];
37
44
  quoteWarningsConfirmed: boolean;
@@ -41,12 +48,12 @@ export interface QuoteState {
41
48
  setFromBlockchain: (chain: BlockchainMeta | null) => void;
42
49
  setToBlockchain: (chian: BlockchainMeta | null) => void;
43
50
 
44
- setFromToken: (token: Token | null) => void;
45
- setToToken: (token: Token | null) => void;
51
+ setFromToken: (params: SetTokenParams) => void;
52
+ setToToken: (params: SetTokenParams) => void;
46
53
  setInputAmount: (amount: string) => void;
47
54
  quote: BestRouteResponse | null;
48
55
  setQuote: (quote: BestRouteResponse | null) => void;
49
- retry: (pendingSwap: PendingSwap) => void;
56
+ retry: (pendingSwap: PendingSwap, meta: Meta) => void;
50
57
  switchFromAndTo: () => void;
51
58
  setQuoteWalletConfirmed: (flag: boolean) => void;
52
59
  setSelectedWallets: (wallets: Wallet[]) => void;
@@ -119,18 +126,17 @@ export const useQuoteStore = createSelectors(
119
126
  };
120
127
  });
121
128
  },
122
- setFromToken: (token) => {
123
- const { blockchains } = useMetaStore.getState().meta;
129
+ setFromToken: (params) => {
124
130
  return set((state) => ({
125
- fromToken: token,
126
- ...(token && {
131
+ fromToken: params.token,
132
+ ...(params.token && {
127
133
  fromBlockchain:
128
- blockchains.find(
129
- (blockchain) => blockchain.name === token.blockchain
134
+ params.meta.blockchains.find(
135
+ (blockchain) => blockchain.name === params.token.blockchain
130
136
  ) ?? null,
131
137
  }),
132
138
  ...(!!state.inputAmount && {
133
- inputUsdValue: getUsdValue(token, state.inputAmount),
139
+ inputUsdValue: getUsdValue(params.token, state.inputAmount),
134
140
  }),
135
141
  }));
136
142
  },
@@ -151,14 +157,13 @@ export const useQuoteStore = createSelectors(
151
157
  };
152
158
  });
153
159
  },
154
- setToToken: (token) => {
155
- const { blockchains } = useMetaStore.getState().meta;
160
+ setToToken: (params) => {
156
161
  return set(() => ({
157
- toToken: token,
158
- ...(token && {
162
+ toToken: params.token,
163
+ ...(params.token && {
159
164
  toBlockchain:
160
- blockchains.find(
161
- (blockchain) => blockchain.name === token.blockchain
165
+ params.meta.blockchains.find(
166
+ (blockchain) => blockchain.name === params.token.blockchain
162
167
  ) ?? null,
163
168
  }),
164
169
  }));
@@ -176,9 +181,8 @@ export const useQuoteStore = createSelectors(
176
181
  }),
177
182
  }));
178
183
  },
179
- retry: (pendingSwap) => {
180
- const { tokens, blockchains } = useMetaStore.getState().meta;
181
-
184
+ retry: (pendingSwap, meta) => {
185
+ const { tokens, blockchains } = meta;
182
186
  const {
183
187
  fromBlockchain,
184
188
  fromToken,
@@ -186,7 +190,6 @@ export const useQuoteStore = createSelectors(
186
190
  toToken,
187
191
  inputAmount,
188
192
  } = createRetryQuote(pendingSwap, blockchains, tokens);
189
-
190
193
  set({
191
194
  fromBlockchain,
192
195
  fromToken,
@@ -1,7 +1,11 @@
1
1
  import type { WidgetConfig } from '../../types';
2
- import type { StateCreator } from 'zustand';
2
+ import type { StateCreatorWithInitialData } from '../app';
3
3
 
4
- const initConfig: WidgetConfig = { apiKey: '' };
4
+ export const DEFAULT_CONFIG: WidgetConfig = {
5
+ apiKey: '',
6
+ multiWallets: true,
7
+ enableNewLiquiditySources: true,
8
+ };
5
9
 
6
10
  export type ConfigSlice = {
7
11
  config: WidgetConfig;
@@ -9,18 +13,24 @@ export type ConfigSlice = {
9
13
  updateConfig: (config: WidgetConfig) => void;
10
14
  };
11
15
 
12
- export const createConfigSlice: StateCreator<ConfigSlice> = (set, get) => ({
13
- config: initConfig,
16
+ export const createConfigSlice: StateCreatorWithInitialData<
17
+ WidgetConfig,
18
+ ConfigSlice,
19
+ ConfigSlice
20
+ > = (initialData, set, get) => {
21
+ return {
22
+ config: { ...DEFAULT_CONFIG, ...initialData },
14
23
 
15
- // Actions
16
- updateConfig: (nextConfig: WidgetConfig) => {
17
- const currentConfig = get().config;
24
+ // Actions
25
+ updateConfig: (nextConfig: WidgetConfig) => {
26
+ const currentConfig = get().config;
18
27
 
19
- set({
20
- config: {
21
- ...currentConfig,
22
- ...nextConfig,
23
- },
24
- });
25
- },
26
- });
28
+ set({
29
+ config: {
30
+ ...currentConfig,
31
+ ...nextConfig,
32
+ },
33
+ });
34
+ },
35
+ };
36
+ };