@rango-dev/widget-embedded 0.19.0 → 0.19.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/QueueManager.d.ts +5 -2
  3. package/dist/QueueManager.d.ts.map +1 -1
  4. package/dist/components/AppRouter.d.ts +0 -2
  5. package/dist/components/AppRouter.d.ts.map +1 -1
  6. package/dist/components/AppRoutes.d.ts +1 -6
  7. package/dist/components/AppRoutes.d.ts.map +1 -1
  8. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts.map +1 -1
  9. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +1 -1
  10. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -1
  11. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +1 -3
  12. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -1
  13. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +690 -61
  14. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  15. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  16. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +1 -3
  17. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -1
  18. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  19. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -4
  20. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
  21. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
  22. package/dist/components/Layout/Layout.d.ts.map +1 -1
  23. package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
  24. package/dist/components/Layout/Layout.types.d.ts +2 -2
  25. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  26. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -1
  27. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +1727 -0
  28. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
  29. package/dist/components/NoResult/NoResult.d.ts +4 -0
  30. package/dist/components/NoResult/NoResult.d.ts.map +1 -0
  31. package/dist/components/NoResult/NoResult.helpers.d.ts +4 -0
  32. package/dist/components/NoResult/NoResult.helpers.d.ts.map +1 -0
  33. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts → NoResult/NoResult.styles.d.ts} +1 -1
  34. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts.map → NoResult/NoResult.styles.d.ts.map} +1 -1
  35. package/dist/components/{NoRoutes/NoRoutes.types.d.ts → NoResult/NoResult.types.d.ts} +3 -3
  36. package/dist/components/NoResult/NoResult.types.d.ts.map +1 -0
  37. package/dist/components/NoResult/index.d.ts +2 -0
  38. package/dist/components/NoResult/index.d.ts.map +1 -0
  39. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  40. package/dist/components/Quote/Quote.d.ts +4 -0
  41. package/dist/components/Quote/Quote.d.ts.map +1 -0
  42. package/dist/components/Quote/Quote.styles.d.ts +2217 -0
  43. package/dist/components/Quote/Quote.styles.d.ts.map +1 -0
  44. package/dist/components/Quote/Quote.types.d.ts +21 -0
  45. package/dist/components/Quote/Quote.types.d.ts.map +1 -0
  46. package/dist/components/Quote/QuoteSummary.d.ts +11 -0
  47. package/dist/components/Quote/QuoteSummary.d.ts.map +1 -0
  48. package/dist/components/Quote/QuoteSummary.styles.d.ts +315 -0
  49. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -0
  50. package/dist/components/Quote/index.d.ts +3 -0
  51. package/dist/components/Quote/index.d.ts.map +1 -0
  52. package/dist/components/QuoteSkeleton/QuoteSkeleton.d.ts +4 -0
  53. package/dist/components/QuoteSkeleton/QuoteSkeleton.d.ts.map +1 -0
  54. package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts +633 -0
  55. package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts.map +1 -0
  56. package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts +6 -0
  57. package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts.map +1 -0
  58. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts +4 -0
  59. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts.map +1 -0
  60. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts +1571 -0
  61. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts.map +1 -0
  62. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts +6 -0
  63. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts.map +1 -0
  64. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts +4 -0
  65. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts.map +1 -0
  66. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts +786 -0
  67. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts.map +1 -0
  68. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts +4 -0
  69. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts.map +1 -0
  70. package/dist/components/QuoteSkeleton/index.d.ts +4 -0
  71. package/dist/components/QuoteSkeleton/index.d.ts.map +1 -0
  72. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts +11 -0
  73. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts.map +1 -0
  74. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts +4 -0
  75. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts.map +1 -0
  76. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts +4 -0
  77. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -0
  78. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts +9 -0
  79. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -0
  80. package/dist/components/{RouteErrors/RouteErrors.styles.d.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts} +1 -1
  81. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -0
  82. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +23 -0
  83. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -0
  84. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts +11 -0
  85. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts.map +1 -0
  86. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts +11 -0
  87. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts.map +1 -0
  88. package/dist/components/QuoteWarningsAndErrors/index.d.ts +2 -0
  89. package/dist/components/QuoteWarningsAndErrors/index.d.ts.map +1 -0
  90. package/dist/components/Slippage/Slippage.d.ts.map +1 -1
  91. package/dist/components/Slippage/Slippage.styles.d.ts +158 -0
  92. package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
  93. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  94. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  95. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +1 -1
  96. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
  97. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +628 -0
  98. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
  99. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  100. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  101. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +1 -1
  102. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -1
  103. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +1 -1
  104. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
  105. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
  106. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts +157 -0
  107. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  108. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  109. package/dist/components/TokenList/TokenList.helpers.d.ts +2 -2
  110. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
  111. package/dist/components/TokenList/TokenList.styles.d.ts +1100 -1
  112. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  113. package/dist/components/TokenList/TokenList.types.d.ts +4 -9
  114. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  115. package/dist/components/TokenList/index.d.ts +0 -1
  116. package/dist/components/TokenList/index.d.ts.map +1 -1
  117. package/dist/components/UpdateUrl.d.ts +1 -6
  118. package/dist/components/UpdateUrl.d.ts.map +1 -1
  119. package/dist/components/WidgetEvents.d.ts.map +1 -1
  120. package/dist/constants/errors.d.ts +4 -4
  121. package/dist/constants/errors.d.ts.map +1 -1
  122. package/dist/constants/index.d.ts +1 -0
  123. package/dist/constants/index.d.ts.map +1 -1
  124. package/dist/constants/messages.d.ts +1 -1
  125. package/dist/constants/navigationRoutes.d.ts +1 -2
  126. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  127. package/dist/constants/searchParams.d.ts +2 -1
  128. package/dist/constants/searchParams.d.ts.map +1 -1
  129. package/dist/constants/warnings.d.ts +2 -2
  130. package/dist/constants/warnings.d.ts.map +1 -1
  131. package/dist/containers/App/App.d.ts +3 -0
  132. package/dist/containers/App/App.d.ts.map +1 -0
  133. package/dist/containers/App/App.styles.d.ts +158 -0
  134. package/dist/containers/App/App.styles.d.ts.map +1 -0
  135. package/dist/containers/App/index.d.ts +2 -0
  136. package/dist/containers/App/index.d.ts.map +1 -0
  137. package/dist/containers/QuoteInfo/QuoteInfo.d.ts +4 -0
  138. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -0
  139. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +788 -0
  140. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -0
  141. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +20 -0
  142. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -0
  143. package/dist/containers/QuoteInfo/index.d.ts +2 -0
  144. package/dist/containers/QuoteInfo/index.d.ts.map +1 -0
  145. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  146. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  147. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  148. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  149. package/dist/containers/Wallets/index.d.ts +2 -0
  150. package/dist/containers/Wallets/index.d.ts.map +1 -0
  151. package/dist/containers/Widget/Widget.d.ts +5 -0
  152. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  153. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  154. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  155. package/dist/containers/Widget/index.d.ts +3 -0
  156. package/dist/containers/Widget/index.d.ts.map +1 -0
  157. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  158. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  159. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts +20 -0
  160. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts.map +1 -0
  161. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +21 -0
  162. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  163. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  164. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  165. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  166. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  167. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  168. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  169. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  170. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  171. package/dist/hooks/useConfirmSwap/index.d.ts +2 -0
  172. package/dist/hooks/useConfirmSwap/index.d.ts.map +1 -0
  173. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts +3 -0
  174. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -0
  175. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +19 -0
  176. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -0
  177. package/dist/hooks/{useConfirmSwap.d.ts → useConfirmSwap/useConfirmSwap.types.d.ts} +5 -7
  178. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -0
  179. package/dist/hooks/{useFetchBestRoute.d.ts → useFetchQuote.d.ts} +3 -3
  180. package/dist/hooks/useFetchQuote.d.ts.map +1 -0
  181. package/dist/hooks/useForceAutoConnect.d.ts +2 -0
  182. package/dist/hooks/useForceAutoConnect.d.ts.map +1 -0
  183. package/dist/hooks/useLanguage.d.ts +1 -1
  184. package/dist/hooks/useLanguage.d.ts.map +1 -1
  185. package/dist/hooks/useNavigateBack.d.ts +1 -3
  186. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  187. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  188. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  189. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  190. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +5 -7
  191. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  192. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  193. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  194. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  195. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  196. package/dist/hooks/useSwapInput.d.ts +4 -2
  197. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  198. package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
  199. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  200. package/dist/hooks/useTheme.d.ts +1 -1
  201. package/dist/hooks/useTheme.d.ts.map +1 -1
  202. package/dist/hooks/useWalletList.d.ts.map +1 -1
  203. package/dist/index.d.ts +20 -8
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +1 -1
  206. package/dist/index.js.map +4 -4
  207. package/dist/pages/ConfirmSwapPage.d.ts +1 -6
  208. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  209. package/dist/pages/HistoryPage.d.ts.map +1 -1
  210. package/dist/pages/Home.d.ts.map +1 -1
  211. package/dist/pages/LanguagePage.d.ts.map +1 -1
  212. package/dist/pages/LiquiditySourcePage.d.ts +1 -2
  213. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  214. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  215. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  216. package/dist/pages/SettingsPage.d.ts +1 -6
  217. package/dist/pages/SettingsPage.d.ts.map +1 -1
  218. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  219. package/dist/pages/ThemePage.d.ts.map +1 -1
  220. package/dist/pages/WalletsPage.d.ts +1 -8
  221. package/dist/pages/WalletsPage.d.ts.map +1 -1
  222. package/dist/store/AppStore.d.ts +47 -0
  223. package/dist/store/AppStore.d.ts.map +1 -0
  224. package/dist/store/app.d.ts +41 -22
  225. package/dist/store/app.d.ts.map +1 -1
  226. package/dist/store/notification.d.ts +4 -3
  227. package/dist/store/notification.d.ts.map +1 -1
  228. package/dist/store/quote.d.ts +89 -0
  229. package/dist/store/quote.d.ts.map +1 -0
  230. package/dist/store/slices/config.d.ts +3 -2
  231. package/dist/store/slices/config.d.ts.map +1 -1
  232. package/dist/store/slices/data.d.ts +5 -2
  233. package/dist/store/slices/data.d.ts.map +1 -1
  234. package/dist/store/slices/settings.d.ts +39 -0
  235. package/dist/store/slices/settings.d.ts.map +1 -0
  236. package/dist/store/ui.d.ts +2 -1
  237. package/dist/store/ui.d.ts.map +1 -1
  238. package/dist/store/wallets.d.ts +14 -9
  239. package/dist/store/wallets.d.ts.map +1 -1
  240. package/dist/types/config.d.ts +41 -8
  241. package/dist/types/config.d.ts.map +1 -1
  242. package/dist/types/index.d.ts +1 -1
  243. package/dist/types/index.d.ts.map +1 -1
  244. package/dist/types/quote.d.ts +82 -0
  245. package/dist/types/quote.d.ts.map +1 -0
  246. package/dist/types/swap.d.ts +4 -14
  247. package/dist/types/swap.d.ts.map +1 -1
  248. package/dist/types/wallets.d.ts +15 -1
  249. package/dist/types/wallets.d.ts.map +1 -1
  250. package/dist/utils/colors.d.ts.map +1 -1
  251. package/dist/utils/configs.d.ts +1 -0
  252. package/dist/utils/configs.d.ts.map +1 -1
  253. package/dist/utils/meta.d.ts +2 -1
  254. package/dist/utils/meta.d.ts.map +1 -1
  255. package/dist/utils/numbers.d.ts +1 -1
  256. package/dist/utils/numbers.d.ts.map +1 -1
  257. package/dist/utils/providers.d.ts +2 -2
  258. package/dist/utils/providers.d.ts.map +1 -1
  259. package/dist/utils/queue.d.ts +2 -2
  260. package/dist/utils/queue.d.ts.map +1 -1
  261. package/dist/utils/quote.d.ts +32 -0
  262. package/dist/utils/quote.d.ts.map +1 -0
  263. package/dist/utils/settings.d.ts +6 -2
  264. package/dist/utils/settings.d.ts.map +1 -1
  265. package/dist/utils/swap.d.ts +35 -24
  266. package/dist/utils/swap.d.ts.map +1 -1
  267. package/dist/utils/time.d.ts +1 -1
  268. package/dist/utils/time.d.ts.map +1 -1
  269. package/dist/utils/wallets.d.ts +9 -10
  270. package/dist/utils/wallets.d.ts.map +1 -1
  271. package/package.json +13 -11
  272. package/src/QueueManager.tsx +18 -17
  273. package/src/components/AppRouter.tsx +8 -32
  274. package/src/components/AppRoutes.tsx +57 -69
  275. package/src/components/BlockchainList/BlockchainList.styles.ts +2 -2
  276. package/src/components/BlockchainList/BlockchainList.tsx +4 -4
  277. package/src/components/BlockchainsSection/BlockchainsSection.styles.ts +1 -1
  278. package/src/components/BlockchainsSection/BlockchainsSection.tsx +26 -17
  279. package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +2 -64
  280. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +29 -10
  281. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +43 -47
  282. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +1 -3
  283. package/src/components/ConfirmWalletsModal/WalletList.tsx +9 -8
  284. package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
  285. package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
  286. package/src/components/Layout/Layout.styles.ts +2 -0
  287. package/src/components/Layout/Layout.tsx +20 -7
  288. package/src/components/Layout/Layout.types.ts +2 -2
  289. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +65 -61
  290. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +28 -34
  291. package/src/components/{NoRoutes/NoRoutes.helper.ts → NoResult/NoResult.helpers.ts} +23 -16
  292. package/src/components/{NoRoutes/NoRoutes.styles.ts → NoResult/NoResult.styles.ts} +2 -0
  293. package/src/components/{NoRoutes/NoRoutes.tsx → NoResult/NoResult.tsx} +12 -17
  294. package/src/components/{NoRoutes/NoRoutes.types.ts → NoResult/NoResult.types.ts} +3 -2
  295. package/src/components/NoResult/index.ts +1 -0
  296. package/src/components/NotificationContent/NotificationContent.tsx +5 -3
  297. package/src/components/Quote/Quote.styles.ts +249 -0
  298. package/src/components/Quote/Quote.tsx +414 -0
  299. package/src/components/Quote/Quote.types.ts +15 -0
  300. package/src/components/Quote/QuoteSummary.styles.ts +16 -0
  301. package/src/components/Quote/QuoteSummary.tsx +46 -0
  302. package/src/components/Quote/index.ts +2 -0
  303. package/src/components/QuoteSkeleton/QuoteSkeleton.styles.ts +42 -0
  304. package/src/components/QuoteSkeleton/QuoteSkeleton.tsx +30 -0
  305. package/src/components/QuoteSkeleton/QuoteSkeleton.types.ts +5 -0
  306. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.styles.ts +57 -0
  307. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.tsx +76 -0
  308. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.types.ts +6 -0
  309. package/src/components/QuoteSkeleton/StepSkeleton.styles.ts +33 -0
  310. package/src/components/QuoteSkeleton/StepSkeleton.tsx +44 -0
  311. package/src/components/QuoteSkeleton/StepSkeleton.types.ts +1 -0
  312. package/src/components/QuoteSkeleton/index.ts +3 -0
  313. package/src/components/QuoteWarningsAndErrors/HighValueLossWarningModal.tsx +107 -0
  314. package/src/components/{RouteErrors/RouteErrorsModalItem.tsx → QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx} +4 -4
  315. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +74 -0
  316. package/src/components/{RouteErrors/RouteErrors.styles.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts} +8 -1
  317. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +103 -0
  318. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +25 -0
  319. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +77 -0
  320. package/src/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.tsx +38 -0
  321. package/src/components/QuoteWarningsAndErrors/index.ts +1 -0
  322. package/src/components/Slippage/Slippage.styles.ts +15 -5
  323. package/src/components/Slippage/Slippage.tsx +11 -10
  324. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -8
  325. package/src/components/SwapDetails/SwapDetails.helpers.tsx +1 -1
  326. package/src/components/SwapDetails/SwapDetails.styles.ts +36 -33
  327. package/src/components/SwapDetails/SwapDetails.tsx +41 -56
  328. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +1 -1
  329. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  330. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  331. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +14 -8
  332. package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +1 -1
  333. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +1 -1
  334. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +1 -1
  335. package/src/components/SwapsGroup/SwapsGroup.styles.ts +10 -1
  336. package/src/components/SwapsGroup/SwapsGroup.tsx +3 -5
  337. package/src/components/SwitchFromAndTo.tsx +2 -2
  338. package/src/components/TokenList/TokenList.helpers.ts +2 -2
  339. package/src/components/TokenList/TokenList.styles.ts +74 -38
  340. package/src/components/TokenList/TokenList.tsx +35 -26
  341. package/src/components/TokenList/TokenList.types.ts +4 -10
  342. package/src/components/TokenList/index.ts +0 -1
  343. package/src/components/UpdateUrl.tsx +35 -30
  344. package/src/components/WidgetEvents.tsx +4 -2
  345. package/src/constants/errors.ts +17 -15
  346. package/src/constants/index.ts +1 -0
  347. package/src/constants/messages.ts +1 -1
  348. package/src/constants/navigationRoutes.ts +7 -8
  349. package/src/constants/searchParams.ts +1 -0
  350. package/src/constants/warnings.ts +7 -7
  351. package/src/containers/App/App.styles.ts +18 -0
  352. package/src/containers/App/App.tsx +52 -0
  353. package/src/containers/App/index.ts +1 -0
  354. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +31 -0
  355. package/src/containers/QuoteInfo/QuoteInfo.tsx +99 -0
  356. package/src/containers/QuoteInfo/QuoteInfo.types.ts +20 -0
  357. package/src/containers/QuoteInfo/index.ts +1 -0
  358. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +48 -34
  359. package/src/containers/Wallets/Wallets.types.ts +12 -0
  360. package/src/containers/Wallets/index.ts +1 -0
  361. package/src/containers/Widget/Widget.tsx +19 -0
  362. package/src/containers/Widget/Widget.types.ts +5 -0
  363. package/src/containers/Widget/index.ts +2 -0
  364. package/src/containers/WidgetInfo/WidgetInfo.helpers.ts +64 -0
  365. package/src/containers/WidgetInfo/WidgetInfo.tsx +62 -0
  366. package/src/containers/WidgetInfo/WidgetInfo.types.ts +21 -0
  367. package/src/containers/WidgetInfo/index.ts +1 -0
  368. package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
  369. package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
  370. package/src/containers/WidgetProvider/index.ts +1 -0
  371. package/src/hooks/useConfirmSwap/index.ts +1 -0
  372. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +172 -0
  373. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +137 -0
  374. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +19 -0
  375. package/src/hooks/{useFetchBestRoute.ts → useFetchQuote.ts} +3 -3
  376. package/src/hooks/useForceAutoConnect.ts +27 -0
  377. package/src/hooks/useLanguage.ts +4 -5
  378. package/src/hooks/useNavigateBack.ts +3 -52
  379. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  380. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  381. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  382. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  383. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +15 -6
  384. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  385. package/src/hooks/useSwapInput.ts +141 -48
  386. package/src/hooks/useSyncStoresWithConfig.ts +40 -24
  387. package/src/hooks/useTheme.ts +4 -5
  388. package/src/hooks/useWalletList.ts +3 -5
  389. package/src/index.ts +53 -5
  390. package/src/pages/ConfirmSwapPage.tsx +117 -266
  391. package/src/pages/HistoryPage.tsx +2 -7
  392. package/src/pages/Home.tsx +88 -303
  393. package/src/pages/LanguagePage.tsx +0 -5
  394. package/src/pages/LiquiditySourcePage.tsx +24 -37
  395. package/src/pages/SelectBlockchainPage.tsx +31 -24
  396. package/src/pages/SelectSwapItemsPage.tsx +18 -31
  397. package/src/pages/SettingsPage.tsx +32 -27
  398. package/src/pages/SwapDetailsPage.tsx +6 -7
  399. package/src/pages/ThemePage.tsx +2 -7
  400. package/src/pages/WalletsPage.tsx +9 -19
  401. package/src/services/httpService.ts +1 -1
  402. package/src/store/AppStore.tsx +41 -0
  403. package/src/store/app.ts +44 -6
  404. package/src/store/{bestRoute.ts → quote.ts} +71 -64
  405. package/src/store/slices/config.ts +26 -15
  406. package/src/store/slices/data.ts +74 -35
  407. package/src/store/slices/settings.ts +168 -0
  408. package/src/store/wallets.ts +68 -37
  409. package/src/types/config.ts +53 -8
  410. package/src/types/index.ts +1 -1
  411. package/src/types/quote.ts +107 -0
  412. package/src/types/swap.ts +4 -13
  413. package/src/types/wallets.ts +18 -1
  414. package/src/utils/colors.ts +2 -1
  415. package/src/utils/configs.ts +2 -1
  416. package/src/utils/date.ts +1 -1
  417. package/src/utils/meta.ts +8 -1
  418. package/src/utils/numbers.ts +1 -1
  419. package/src/utils/providers.ts +8 -5
  420. package/src/utils/queue.ts +2 -2
  421. package/src/utils/quote.ts +338 -0
  422. package/src/utils/settings.ts +17 -10
  423. package/src/utils/swap.ts +154 -120
  424. package/src/utils/time.ts +1 -1
  425. package/src/utils/wallets.ts +156 -161
  426. package/dist/Wallets.d.ts +0 -17
  427. package/dist/Wallets.d.ts.map +0 -1
  428. package/dist/Widget.d.ts +0 -9
  429. package/dist/Widget.d.ts.map +0 -1
  430. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts +0 -4
  431. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +0 -1
  432. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts +0 -4
  433. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts.map +0 -1
  434. package/dist/components/NoRoutes/NoRoutes.d.ts +0 -4
  435. package/dist/components/NoRoutes/NoRoutes.d.ts.map +0 -1
  436. package/dist/components/NoRoutes/NoRoutes.helper.d.ts +0 -3
  437. package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +0 -1
  438. package/dist/components/NoRoutes/NoRoutes.types.d.ts.map +0 -1
  439. package/dist/components/NoRoutes/index.d.ts +0 -2
  440. package/dist/components/NoRoutes/index.d.ts.map +0 -1
  441. package/dist/components/RouteErrors/RouteErrors.d.ts +0 -4
  442. package/dist/components/RouteErrors/RouteErrors.d.ts.map +0 -1
  443. package/dist/components/RouteErrors/RouteErrors.styles.d.ts.map +0 -1
  444. package/dist/components/RouteErrors/RouteErrors.types.d.ts +0 -24
  445. package/dist/components/RouteErrors/RouteErrors.types.d.ts.map +0 -1
  446. package/dist/components/RouteErrors/RouteErrorsModal.d.ts +0 -4
  447. package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +0 -1
  448. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts +0 -4
  449. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts.map +0 -1
  450. package/dist/components/RouteErrors/index.d.ts +0 -2
  451. package/dist/components/RouteErrors/index.d.ts.map +0 -1
  452. package/dist/hooks/useConfirmSwap.d.ts.map +0 -1
  453. package/dist/hooks/useFetchBestRoute.d.ts.map +0 -1
  454. package/dist/store/bestRoute.d.ts +0 -77
  455. package/dist/store/bestRoute.d.ts.map +0 -1
  456. package/dist/store/meta.d.ts +0 -23
  457. package/dist/store/meta.d.ts.map +0 -1
  458. package/dist/store/settings.d.ts +0 -81
  459. package/dist/store/settings.d.ts.map +0 -1
  460. package/dist/types/routing.d.ts +0 -65
  461. package/dist/types/routing.d.ts.map +0 -1
  462. package/dist/utils/routing.d.ts +0 -28
  463. package/dist/utils/routing.d.ts.map +0 -1
  464. package/src/Widget.tsx +0 -119
  465. package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +0 -41
  466. package/src/components/LoadingSwapDetails/LoadingSwapDetails.types.ts +0 -3
  467. package/src/components/NoRoutes/index.ts +0 -1
  468. package/src/components/RouteErrors/RouteErrors.tsx +0 -79
  469. package/src/components/RouteErrors/RouteErrors.types.ts +0 -29
  470. package/src/components/RouteErrors/RouteErrorsModal.tsx +0 -129
  471. package/src/components/RouteErrors/index.ts +0 -1
  472. package/src/hooks/useConfirmSwap.ts +0 -303
  473. package/src/store/meta.ts +0 -39
  474. package/src/store/settings.ts +0 -158
  475. package/src/types/routing.ts +0 -77
  476. package/src/utils/routing.ts +0 -321
@@ -23,32 +23,22 @@ import {
23
23
  NotFoundContainer,
24
24
  SettingsContainer,
25
25
  } from '../components/SettingsContainer';
26
- import { navigationRoutes } from '../constants/navigationRoutes';
27
- import { useNavigateBack } from '../hooks/useNavigateBack';
28
- import { useMetaStore } from '../store/meta';
29
- import { useSettingsStore } from '../store/settings';
26
+ import { useAppStore } from '../store/AppStore';
30
27
  import { containsText } from '../utils/numbers';
31
- import {
32
- getUniqueSwappersGroups,
33
- sortLiquiditySourcesByGroupTitle,
34
- } from '../utils/settings';
28
+ import { getUniqueSwappersGroups } from '../utils/settings';
35
29
 
36
30
  interface PropTypes {
37
- supportedSwappers?: string[];
38
31
  sourceType: 'Exchanges' | 'Bridges';
39
32
  }
40
33
 
41
- export function LiquiditySourcePage({
42
- supportedSwappers,
43
- sourceType,
44
- }: PropTypes) {
34
+ export function LiquiditySourcePage({ sourceType }: PropTypes) {
35
+ const fetchStatus = useAppStore().fetchStatus;
36
+ const swappers = useAppStore().swappers();
37
+ const disabledLiquiditySources = useAppStore().disabledLiquiditySources;
45
38
  const [searchedFor, setSearchedFor] = useState<string>('');
46
- const toggleLiquiditySource = useSettingsStore.use.toggleLiquiditySource();
47
- const { navigateBackFrom } = useNavigateBack();
48
- const loadingMetaStatus = useMetaStore.use.loadingStatus();
49
-
39
+ const toggleLiquiditySource = useAppStore().toggleLiquiditySource;
50
40
  const supportedUniqueSwappersGroups: Array<UniqueSwappersGroupType> =
51
- getUniqueSwappersGroups(supportedSwappers);
41
+ getUniqueSwappersGroups(swappers, disabledLiquiditySources);
52
42
 
53
43
  const validTypes: Array<LiquiditySourceType> = [];
54
44
  if (sourceType === 'Exchanges') {
@@ -79,22 +69,20 @@ export function LiquiditySourcePage({
79
69
  });
80
70
  };
81
71
 
82
- const list = liquiditySources
83
- .sort(sortLiquiditySourcesByGroupTitle)
84
- .map((sourceItem) => {
85
- const { selected, groupTitle, logo } = sourceItem;
86
- return {
87
- start: <Image src={logo} size={22} type="circular" />,
88
- onClick: () => toggleLiquiditySource(groupTitle),
89
- end: <Checkbox checked={selected} />,
90
- title: (
91
- <Typography variant="title" size="xmedium">
92
- {i18n.t(groupTitle)}
93
- </Typography>
94
- ),
95
- ...sourceItem,
96
- };
97
- });
72
+ const list = liquiditySources.map((sourceItem) => {
73
+ const { selected, groupTitle, logo } = sourceItem;
74
+ return {
75
+ start: <Image src={logo} size={22} type="circular" />,
76
+ onClick: () => toggleLiquiditySource(groupTitle),
77
+ end: <Checkbox checked={selected} />,
78
+ title: (
79
+ <Typography variant="title" size="xmedium">
80
+ {i18n.t(groupTitle)}
81
+ </Typography>
82
+ ),
83
+ ...sourceItem,
84
+ };
85
+ });
98
86
 
99
87
  const searchHandler = (event: React.ChangeEvent<HTMLInputElement>) => {
100
88
  const value = event.target.value;
@@ -111,7 +99,6 @@ export function LiquiditySourcePage({
111
99
  return (
112
100
  <Layout
113
101
  header={{
114
- onBack: navigateBackFrom.bind(null, navigationRoutes.settings),
115
102
  title: i18n.t(sourceType),
116
103
  suffix: (
117
104
  <LiquiditySourceSuffix>
@@ -131,7 +118,7 @@ export function LiquiditySourcePage({
131
118
  placeholder={i18n.t('Search {sourceType}', { sourceType })}
132
119
  onChange={searchHandler}
133
120
  />
134
- {loadingMetaStatus === 'loading' && <LoadingLiquiditySourceList />}
121
+ {fetchStatus === 'loading' && <LoadingLiquiditySourceList />}
135
122
 
136
123
  {!filteredList.length && !!searchedFor ? (
137
124
  <NotFoundContainer>
@@ -141,7 +128,7 @@ export function LiquiditySourcePage({
141
128
  />
142
129
  </NotFoundContainer>
143
130
  ) : (
144
- loadingMetaStatus === 'success' && (
131
+ fetchStatus === 'success' && (
145
132
  <LiquiditySourceList>
146
133
  {filteredList.map((sourceItem) => {
147
134
  return (
@@ -1,15 +1,17 @@
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 { useBestRouteStore } from '../store/bestRoute';
12
- import { useMetaStore } from '../store/meta';
13
+ import { useAppStore } from '../store/AppStore';
14
+ import { useQuoteStore } from '../store/quote';
13
15
 
14
16
  interface PropTypes {
15
17
  type: 'source' | 'destination';
@@ -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
- const setToBlockchain = useBestRouteStore.use.setToBlockchain();
24
- const setFromBlockchain = useBestRouteStore.use.setFromBlockchain();
25
- const { loadingStatus } = useMetaStore();
25
+ const setToBlockchain = useQuoteStore.use.setToBlockchain();
26
+ const setFromBlockchain = useQuoteStore.use.setFromBlockchain();
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';
15
- import { useBestRouteStore } from '../store/bestRoute';
14
+ import { useAppStore } from '../store/AppStore';
15
+ import { useQuoteStore } from '../store/quote';
16
16
  import { useWalletsStore } from '../store/wallets';
17
- import { getTokensBalanceFromWalletAndSort } from '../utils/wallets';
17
+ import { sortTokens } 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,
@@ -31,28 +31,28 @@ export function SelectSwapItemsPage(props: PropTypes) {
31
31
  setToToken,
32
32
  setFromBlockchain,
33
33
  setToBlockchain,
34
- } = useBestRouteStore();
35
- const { connectedWallets } = useWalletsStore();
34
+ } = useQuoteStore();
35
+ const getBalanceFor = useWalletsStore.use.getBalanceFor();
36
36
  const [searchedFor, setSearchedFor] = useState<string>('');
37
+ const { isTokenPinned } = useAppStore();
37
38
 
38
39
  const selectedBlockchain = type === 'source' ? fromBlockchain : toBlockchain;
39
40
  const selectedBlockchainName = selectedBlockchain?.name ?? '';
40
41
 
41
42
  // Tokens & Blockchains list
42
43
  const blockchains = useAppStore().blockchains({
43
- type: type,
44
+ type,
44
45
  });
45
46
  const tokens = useAppStore().tokens({
46
47
  type,
47
48
  blockchain: selectedBlockchainName,
48
49
  searchFor: searchedFor,
49
50
  });
50
- const tokensList = getTokensBalanceFromWalletAndSort(
51
- tokens,
52
- connectedWallets
53
- );
54
51
 
55
- // Actions
52
+ const checkIsTokenPinned = (token: Token) => isTokenPinned(token, type);
53
+
54
+ const tokensList = sortTokens(tokens, getBalanceFor, checkIsTokenPinned);
55
+
56
56
  const updateBlockchain = (blockchain: BlockchainMeta) => {
57
57
  if (type === 'source') {
58
58
  setFromBlockchain(blockchain);
@@ -63,36 +63,22 @@ export function SelectSwapItemsPage(props: PropTypes) {
63
63
 
64
64
  const updateToken = (token: Token) => {
65
65
  if (type === 'source') {
66
- setFromToken(token);
66
+ setFromToken({ token, meta: { blockchains, tokens } });
67
67
  } else {
68
- setToToken(token);
68
+ setToToken({ token, meta: { blockchains, tokens } });
69
69
  }
70
70
  };
71
71
 
72
72
  return (
73
73
  <Layout
74
74
  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
- }),
75
+ title: i18n.t('Swap {type}', { type }),
84
76
  }}>
85
77
  <BlockchainsSection
86
78
  blockchains={blockchains}
87
79
  type={type == 'source' ? 'from' : 'to'}
88
80
  blockchain={type === 'source' ? fromBlockchain : toBlockchain}
89
- onMoreClick={() =>
90
- navigate(
91
- type === 'source'
92
- ? navigationRoutes.fromBlockchain
93
- : navigationRoutes.toBlockchain
94
- )
95
- }
81
+ onMoreClick={() => navigate(navigationRoutes.blockchains)}
96
82
  onChange={(blockchain) => {
97
83
  updateBlockchain(blockchain);
98
84
  }}
@@ -113,6 +99,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
113
99
  list={tokensList}
114
100
  selectedBlockchain={selectedBlockchainName}
115
101
  searchedFor={searchedFor}
102
+ type={type}
116
103
  onChange={(token) => {
117
104
  updateToken(token);
118
105
 
@@ -123,7 +110,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
123
110
  updateBlockchain(tokenBlockchain);
124
111
  }
125
112
 
126
- navigateBackFrom(navigationRoutes.fromSwap);
113
+ navigateBack();
127
114
  }}
128
115
  />
129
116
  </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':
@@ -139,17 +144,18 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
139
144
  title: (
140
145
  <>
141
146
  <Typography variant="title" size="xmedium">
142
- {i18n.t('Infinite Approval')}
147
+ {i18n.t('Infinite approval')}
143
148
  </Typography>
144
149
  <Divider direction="horizontal" size={4} />
145
150
  <Tooltip
146
151
  side="top"
152
+ sideOffset={4}
147
153
  container={getContainer()}
148
154
  content={
149
155
  <TooltipContainer>
150
156
  <Typography variant="label" size="medium" color="neutral700">
151
157
  {i18n.t(
152
- "Enabling the 'Infinite Approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations."
158
+ "Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations."
153
159
  )}
154
160
  </Typography>
155
161
  </TooltipContainer>
@@ -162,12 +168,12 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
162
168
  onClick: toggleInfiniteApprove,
163
169
  };
164
170
 
165
- const settingItems = [
166
- bridgeItem,
167
- exchangeItem,
168
- // languageItem
169
- ];
170
- if (!singleTheme) {
171
+ const settingItems = isLiquidityHidden ? [] : [bridgeItem, exchangeItem];
172
+
173
+ if (!isLanguageHidden) {
174
+ // settingItems.push(languageItem);
175
+ }
176
+ if (!theme?.singleTheme && !isThemeHidden) {
171
177
  settingItems.push(themeItem);
172
178
  }
173
179
  settingItems.push(infiniteApprovalItem);
@@ -175,8 +181,7 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
175
181
  return (
176
182
  <Layout
177
183
  header={{
178
- onBack: navigateBackFrom.bind(null, navigationRoutes.settings),
179
- title: i18n.t('Setting'),
184
+ title: i18n.t('Settings'),
180
185
  }}>
181
186
  <SettingsContainer>
182
187
  <Slippage />
@@ -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.bind(null, 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,24 +6,17 @@ 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
- display: 'grid',
14
+ display: 'flex',
15
+ justifyContent: 'space-evenly',
16
+ alignItems: 'center',
24
17
  gap: '$10',
25
- gridTemplateColumns: ' repeat(3, minmax(0, 1fr))',
26
- alignContent: 'baseline',
27
- paddingTop: '$15',
18
+ flexWrap: 'wrap',
19
+ paddingTop: '$5',
28
20
  height: '100%',
29
21
  });
30
22
 
@@ -35,8 +27,8 @@ const Container = styled('div', {
35
27
  export const TIME_TO_CLOSE_MODAL = 3_000;
36
28
  export const TIME_TO_IGNORE_MODAL = 300;
37
29
 
38
- export function WalletsPage({ config }: PropTypes) {
39
- const { navigateBackFrom } = useNavigateBack();
30
+ export function WalletsPage() {
31
+ const { config, fetchStatus: fetchMetaStatus } = useAppStore();
40
32
  const [openModal, setOpenModal] = useState(false);
41
33
  const [selectedWalletType, setSelectedWalletType] = useState<WalletType>('');
42
34
  let modalTimerId: ReturnType<typeof setTimeout> | null = null;
@@ -59,7 +51,6 @@ export function WalletsPage({ config }: PropTypes) {
59
51
  },
60
52
  });
61
53
 
62
- const loadingMetaStatus = useMetaStore.use.loadingStatus();
63
54
  const selectedWallet = list.find(
64
55
  (wallet) => wallet.type === selectedWalletType
65
56
  );
@@ -71,7 +62,6 @@ export function WalletsPage({ config }: PropTypes) {
71
62
  <Layout
72
63
  header={{
73
64
  title: i18n.t('Connect Wallets'),
74
- onBack: navigateBackFrom.bind(null, navigationRoutes.wallets),
75
65
  }}>
76
66
  <Container>
77
67
  <Typography variant="title" size="xmedium" align="center">
@@ -88,7 +78,7 @@ export function WalletsPage({ config }: PropTypes) {
88
78
  onClick={(type) => {
89
79
  void handleClick(type);
90
80
  }}
91
- isLoading={loadingMetaStatus === 'loading'}
81
+ isLoading={fetchMetaStatus === 'loading'}
92
82
  />
93
83
  </Fragment>
94
84
  );
@@ -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
+ }