@lifi/widget 1.14.1 → 1.16.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 (311) hide show
  1. package/App.js +21 -0
  2. package/cjs/App.js +21 -0
  3. package/cjs/components/ActiveSwaps/ActiveSwapItem.d.ts +5 -0
  4. package/cjs/components/ActiveSwaps/ActiveSwapItem.js +45 -0
  5. package/cjs/components/{SwapInProgress/SwapInProgress.d.ts → ActiveSwaps/ActiveSwaps.d.ts} +1 -1
  6. package/cjs/components/ActiveSwaps/ActiveSwaps.js +30 -0
  7. package/cjs/components/ActiveSwaps/ActiveSwaps.style.d.ts +78 -0
  8. package/cjs/components/ActiveSwaps/ActiveSwaps.style.js +40 -0
  9. package/cjs/components/ActiveSwaps/index.d.ts +2 -0
  10. package/cjs/components/ActiveSwaps/index.js +18 -0
  11. package/cjs/components/Card/Card.d.ts +7 -4
  12. package/cjs/components/Card/Card.js +38 -28
  13. package/cjs/{pages/SelectTokenPage → components/ChainSelect}/ChainSelect.d.ts +1 -1
  14. package/cjs/components/ChainSelect/ChainSelect.js +35 -0
  15. package/cjs/components/{SwapInProgress/SwapInProgress.style.d.ts → ChainSelect/ChainSelect.style.d.ts} +10 -19
  16. package/cjs/components/ChainSelect/ChainSelect.style.js +19 -0
  17. package/cjs/components/ChainSelect/index.d.ts +2 -0
  18. package/cjs/components/ChainSelect/index.js +18 -0
  19. package/cjs/components/ChainSelect/useChainSelect.d.ts +8 -0
  20. package/cjs/components/ChainSelect/useChainSelect.js +33 -0
  21. package/cjs/components/Header/Header.js +3 -11
  22. package/cjs/components/Header/NavigationHeader.js +10 -17
  23. package/cjs/components/Header/WalletHeader.js +4 -5
  24. package/cjs/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  25. package/cjs/components/PoweredBy/PoweredBy.style.js +1 -0
  26. package/cjs/components/ReverseTokensButton/ReverseTokensButton.js +10 -10
  27. package/cjs/components/SelectTokenButton/SelectTokenButton.d.ts +1 -1
  28. package/cjs/components/SelectTokenButton/SelectTokenButton.js +3 -3
  29. package/{components/SwapInProgress/SwapInProgress.d.ts → cjs/components/SendToWallet/SendToWallet.d.ts} +1 -1
  30. package/cjs/components/SendToWallet/SendToWallet.js +53 -0
  31. package/cjs/components/SendToWallet/SendToWallet.style.d.ts +19 -0
  32. package/cjs/components/SendToWallet/SendToWallet.style.js +15 -0
  33. package/cjs/components/SendToWallet/index.d.ts +1 -0
  34. package/cjs/components/{SwapInProgress → SendToWallet}/index.js +1 -1
  35. package/cjs/components/Step/CircularProgress.js +1 -1
  36. package/cjs/components/Step/CircularProgress.style.js +1 -1
  37. package/cjs/components/Step/StepProcess.js +1 -5
  38. package/cjs/components/Step/StepProcess.style.d.ts +1 -1
  39. package/cjs/components/Step/StepTimer.d.ts +1 -0
  40. package/cjs/components/Step/StepTimer.js +6 -6
  41. package/cjs/components/SwapButton/SwapButton.js +10 -14
  42. package/cjs/components/SwapButton/types.d.ts +2 -2
  43. package/cjs/components/SwapInput/FormPriceHelperText.d.ts +1 -1
  44. package/cjs/components/SwapInput/FormPriceHelperText.js +4 -4
  45. package/cjs/components/SwapInput/SwapInput.d.ts +1 -1
  46. package/cjs/components/SwapInput/SwapInput.js +4 -4
  47. package/cjs/components/SwapInput/SwapInputAdornment.d.ts +1 -1
  48. package/cjs/components/SwapInput/SwapInputAdornment.js +4 -4
  49. package/cjs/components/SwapRouteCard/SwapRouteCard.js +5 -4
  50. package/cjs/components/SwapRouteCard/SwapRouteCard.style.js +3 -3
  51. package/cjs/components/TokenAvatar/TokenAvatar.style.js +0 -3
  52. package/cjs/components/TokenList/TokenList.js +14 -11
  53. package/cjs/components/TokenList/types.d.ts +1 -1
  54. package/cjs/config/theme.js +24 -23
  55. package/cjs/config/version.d.ts +1 -1
  56. package/cjs/config/version.js +1 -1
  57. package/cjs/hooks/index.d.ts +3 -0
  58. package/cjs/hooks/index.js +3 -0
  59. package/cjs/hooks/useChains.d.ts +1 -97
  60. package/cjs/hooks/useChains.js +8 -15
  61. package/cjs/hooks/useNavigateBack.d.ts +4 -0
  62. package/cjs/hooks/useNavigateBack.js +18 -0
  63. package/cjs/{components/Step/utils.d.ts → hooks/useProcessMessage.d.ts} +4 -0
  64. package/cjs/{components/Step/utils.js → hooks/useProcessMessage.js} +16 -10
  65. package/cjs/hooks/useRouteExecution.d.ts +1 -1
  66. package/cjs/hooks/useRouteExecution.js +20 -29
  67. package/cjs/hooks/useSwapRoutes.js +18 -7
  68. package/cjs/hooks/useWidgetEvents.d.ts +3 -0
  69. package/cjs/hooks/useWidgetEvents.js +13 -0
  70. package/cjs/i18n/en/translation.json +25 -15
  71. package/cjs/i18n/index.d.ts +20 -10
  72. package/cjs/index.d.ts +1 -0
  73. package/cjs/index.js +3 -1
  74. package/cjs/pages/ActiveSwapsPage/ActiveSwapsEmpty.d.ts +2 -0
  75. package/cjs/pages/ActiveSwapsPage/ActiveSwapsEmpty.js +18 -0
  76. package/cjs/pages/ActiveSwapsPage/ActiveSwapsPage.d.ts +2 -0
  77. package/cjs/pages/ActiveSwapsPage/ActiveSwapsPage.js +21 -0
  78. package/cjs/pages/ActiveSwapsPage/index.d.ts +1 -0
  79. package/cjs/pages/ActiveSwapsPage/index.js +17 -0
  80. package/cjs/pages/MainPage/MainPage.js +2 -2
  81. package/cjs/pages/MainPage/MainSwapButton.js +3 -1
  82. package/cjs/pages/MainPage/SwapRoutes.js +4 -1
  83. package/cjs/pages/SelectChainPage/SelectChainPage.d.ts +3 -0
  84. package/cjs/pages/SelectChainPage/SelectChainPage.js +33 -0
  85. package/cjs/pages/SelectChainPage/SelectChainPage.style.d.ts +21 -0
  86. package/cjs/pages/SelectChainPage/SelectChainPage.style.js +20 -0
  87. package/cjs/pages/SelectChainPage/index.d.ts +1 -0
  88. package/cjs/pages/SelectChainPage/index.js +17 -0
  89. package/cjs/pages/SelectTokenPage/SearchTokenInput.js +3 -3
  90. package/cjs/pages/SelectTokenPage/SelectTokenPage.d.ts +2 -4
  91. package/cjs/pages/SelectTokenPage/SelectTokenPage.js +4 -8
  92. package/cjs/pages/SelectWalletPage/SelectWalletPage.js +10 -10
  93. package/cjs/pages/SelectWalletPage/SelectWalletPage.style.d.ts +2 -27
  94. package/cjs/pages/SelectWalletPage/SelectWalletPage.style.js +4 -14
  95. package/cjs/pages/SettingsPage/AdvancedPreferences.js +2 -2
  96. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.js +2 -2
  97. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +1 -1
  98. package/cjs/pages/SettingsPage/EnabledBridgesSelect.js +3 -6
  99. package/cjs/pages/SettingsPage/EnabledExchangesSelect.js +3 -5
  100. package/cjs/pages/SettingsPage/RoutePrioritySelect.js +5 -1
  101. package/cjs/pages/SettingsPage/SettingsPage.js +2 -1
  102. package/cjs/pages/SettingsPage/ShowDestinationWallet.d.ts +2 -0
  103. package/cjs/pages/SettingsPage/ShowDestinationWallet.js +22 -0
  104. package/cjs/pages/SwapDetailsPage/SwapDetailsPage.js +4 -3
  105. package/cjs/pages/SwapHistoryPage/SwapHistoryPage.js +2 -2
  106. package/cjs/pages/SwapPage/StatusBottomSheet.js +29 -41
  107. package/cjs/pages/SwapPage/SwapPage.js +7 -3
  108. package/cjs/pages/SwapRoutesPage/SwapRoutesPage.js +1 -1
  109. package/cjs/providers/SwapFormProvider/SwapFormProvider.d.ts +1 -0
  110. package/cjs/providers/SwapFormProvider/SwapFormProvider.js +43 -9
  111. package/cjs/providers/SwapFormProvider/types.d.ts +3 -1
  112. package/cjs/providers/SwapFormProvider/types.js +1 -0
  113. package/cjs/providers/WalletProvider/WalletProvider.js +10 -4
  114. package/cjs/providers/WalletProvider/types.d.ts +4 -2
  115. package/cjs/providers/WidgetProvider/WidgetProvider.js +3 -7
  116. package/cjs/providers/index.d.ts +4 -0
  117. package/cjs/providers/index.js +20 -0
  118. package/cjs/stores/chains/index.d.ts +4 -0
  119. package/cjs/stores/chains/index.js +20 -0
  120. package/cjs/stores/chains/types.d.ts +8 -0
  121. package/cjs/stores/chains/types.js +2 -0
  122. package/cjs/stores/chains/useChainOrder.d.ts +1 -0
  123. package/cjs/stores/chains/useChainOrder.js +12 -0
  124. package/cjs/stores/chains/useChainOrderStore.d.ts +19 -0
  125. package/cjs/stores/chains/useChainOrderStore.js +42 -0
  126. package/cjs/stores/chains/useInitializeChainOrder.d.ts +1 -0
  127. package/cjs/stores/chains/useInitializeChainOrder.js +12 -0
  128. package/cjs/stores/route/index.d.ts +2 -1
  129. package/cjs/stores/route/index.js +2 -1
  130. package/cjs/stores/route/useExecutingRoutesIds.d.ts +1 -0
  131. package/cjs/stores/route/useExecutingRoutesIds.js +20 -0
  132. package/cjs/stores/route/useRouteStore.js +5 -4
  133. package/cjs/stores/route/utils.d.ts +4 -0
  134. package/cjs/stores/route/utils.js +21 -0
  135. package/cjs/stores/settings/types.d.ts +2 -1
  136. package/cjs/stores/settings/useSettingsStore.d.ts +4 -2
  137. package/cjs/stores/settings/useSettingsStore.js +6 -2
  138. package/cjs/types/events.d.ts +5 -0
  139. package/cjs/types/events.js +9 -0
  140. package/cjs/types/index.d.ts +1 -0
  141. package/cjs/types/index.js +1 -0
  142. package/cjs/types/widget.d.ts +3 -1
  143. package/cjs/utils/format.js +7 -2
  144. package/cjs/utils/navigationRoutes.d.ts +5 -0
  145. package/cjs/utils/navigationRoutes.js +31 -4
  146. package/components/ActiveSwaps/ActiveSwapItem.d.ts +5 -0
  147. package/components/ActiveSwaps/ActiveSwapItem.js +41 -0
  148. package/components/ActiveSwaps/ActiveSwaps.d.ts +3 -0
  149. package/components/ActiveSwaps/ActiveSwaps.js +26 -0
  150. package/components/ActiveSwaps/ActiveSwaps.style.d.ts +78 -0
  151. package/components/ActiveSwaps/ActiveSwaps.style.js +37 -0
  152. package/components/ActiveSwaps/index.d.ts +2 -0
  153. package/components/ActiveSwaps/index.js +2 -0
  154. package/components/Card/Card.d.ts +7 -4
  155. package/components/Card/Card.js +39 -29
  156. package/{pages/SelectTokenPage → components/ChainSelect}/ChainSelect.d.ts +1 -1
  157. package/components/ChainSelect/ChainSelect.js +31 -0
  158. package/components/{SwapInProgress/SwapInProgress.style.d.ts → ChainSelect/ChainSelect.style.d.ts} +10 -19
  159. package/components/ChainSelect/ChainSelect.style.js +16 -0
  160. package/components/ChainSelect/index.d.ts +2 -0
  161. package/components/ChainSelect/index.js +2 -0
  162. package/components/ChainSelect/useChainSelect.d.ts +8 -0
  163. package/components/ChainSelect/useChainSelect.js +29 -0
  164. package/components/Header/Header.js +2 -10
  165. package/components/Header/NavigationHeader.js +11 -18
  166. package/components/Header/WalletHeader.js +1 -2
  167. package/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  168. package/components/PoweredBy/PoweredBy.style.js +1 -0
  169. package/components/ReverseTokensButton/ReverseTokensButton.js +1 -1
  170. package/components/SelectTokenButton/SelectTokenButton.d.ts +1 -1
  171. package/components/SelectTokenButton/SelectTokenButton.js +1 -1
  172. package/components/SendToWallet/SendToWallet.d.ts +3 -0
  173. package/components/SendToWallet/SendToWallet.js +49 -0
  174. package/components/SendToWallet/SendToWallet.style.d.ts +19 -0
  175. package/components/SendToWallet/SendToWallet.style.js +12 -0
  176. package/components/SendToWallet/index.d.ts +1 -0
  177. package/components/SendToWallet/index.js +1 -0
  178. package/components/Step/CircularProgress.js +3 -3
  179. package/components/Step/CircularProgress.style.js +1 -1
  180. package/components/Step/StepProcess.js +2 -6
  181. package/components/Step/StepProcess.style.d.ts +1 -1
  182. package/components/Step/StepTimer.d.ts +1 -0
  183. package/components/Step/StepTimer.js +6 -6
  184. package/components/SwapButton/SwapButton.js +7 -11
  185. package/components/SwapButton/types.d.ts +2 -2
  186. package/components/SwapInput/FormPriceHelperText.d.ts +1 -1
  187. package/components/SwapInput/FormPriceHelperText.js +1 -1
  188. package/components/SwapInput/SwapInput.d.ts +1 -1
  189. package/components/SwapInput/SwapInput.js +1 -1
  190. package/components/SwapInput/SwapInputAdornment.d.ts +1 -1
  191. package/components/SwapInput/SwapInputAdornment.js +1 -1
  192. package/components/SwapRouteCard/SwapRouteCard.js +5 -4
  193. package/components/SwapRouteCard/SwapRouteCard.style.js +3 -3
  194. package/components/TokenAvatar/TokenAvatar.style.js +0 -3
  195. package/components/TokenList/TokenList.js +7 -4
  196. package/components/TokenList/types.d.ts +1 -1
  197. package/config/theme.js +24 -23
  198. package/config/version.d.ts +1 -1
  199. package/config/version.js +1 -1
  200. package/hooks/index.d.ts +3 -0
  201. package/hooks/index.js +3 -0
  202. package/hooks/useChains.d.ts +1 -97
  203. package/hooks/useChains.js +8 -15
  204. package/hooks/useNavigateBack.d.ts +4 -0
  205. package/hooks/useNavigateBack.js +14 -0
  206. package/{components/Step/utils.d.ts → hooks/useProcessMessage.d.ts} +4 -0
  207. package/{pages/SwapPage/utils.js → hooks/useProcessMessage.js} +15 -10
  208. package/hooks/useRouteExecution.d.ts +1 -1
  209. package/hooks/useRouteExecution.js +21 -30
  210. package/hooks/useSwapRoutes.js +18 -7
  211. package/hooks/useWidgetEvents.d.ts +3 -0
  212. package/hooks/useWidgetEvents.js +6 -0
  213. package/i18n/en/translation.json +25 -15
  214. package/i18n/index.d.ts +20 -10
  215. package/index.d.ts +1 -0
  216. package/index.js +1 -0
  217. package/package.json +17 -19
  218. package/pages/ActiveSwapsPage/ActiveSwapsEmpty.d.ts +2 -0
  219. package/pages/ActiveSwapsPage/ActiveSwapsEmpty.js +14 -0
  220. package/pages/ActiveSwapsPage/ActiveSwapsPage.d.ts +2 -0
  221. package/pages/ActiveSwapsPage/ActiveSwapsPage.js +17 -0
  222. package/pages/ActiveSwapsPage/index.d.ts +1 -0
  223. package/pages/ActiveSwapsPage/index.js +1 -0
  224. package/pages/MainPage/MainPage.js +2 -2
  225. package/pages/MainPage/MainSwapButton.js +3 -1
  226. package/pages/MainPage/SwapRoutes.js +4 -1
  227. package/pages/SelectChainPage/SelectChainPage.d.ts +3 -0
  228. package/pages/SelectChainPage/SelectChainPage.js +29 -0
  229. package/pages/SelectChainPage/SelectChainPage.style.d.ts +21 -0
  230. package/pages/SelectChainPage/SelectChainPage.style.js +17 -0
  231. package/pages/SelectChainPage/index.d.ts +1 -0
  232. package/pages/SelectChainPage/index.js +1 -0
  233. package/pages/SelectTokenPage/SearchTokenInput.js +1 -1
  234. package/pages/SelectTokenPage/SelectTokenPage.d.ts +2 -4
  235. package/pages/SelectTokenPage/SelectTokenPage.js +5 -9
  236. package/pages/SelectWalletPage/SelectWalletPage.js +10 -10
  237. package/pages/SelectWalletPage/SelectWalletPage.style.d.ts +2 -27
  238. package/pages/SelectWalletPage/SelectWalletPage.style.js +4 -14
  239. package/pages/SettingsPage/AdvancedPreferences.js +2 -2
  240. package/pages/SettingsPage/ColorSchemeButtonGroup.js +1 -1
  241. package/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +1 -1
  242. package/pages/SettingsPage/EnabledBridgesSelect.js +4 -7
  243. package/pages/SettingsPage/EnabledExchangesSelect.js +4 -6
  244. package/pages/SettingsPage/RoutePrioritySelect.js +5 -1
  245. package/pages/SettingsPage/SettingsPage.js +2 -1
  246. package/pages/SettingsPage/ShowDestinationWallet.d.ts +2 -0
  247. package/pages/SettingsPage/ShowDestinationWallet.js +18 -0
  248. package/pages/SwapDetailsPage/SwapDetailsPage.js +5 -4
  249. package/pages/SwapHistoryPage/SwapHistoryPage.js +1 -1
  250. package/pages/SwapPage/StatusBottomSheet.js +30 -42
  251. package/pages/SwapPage/SwapPage.js +9 -5
  252. package/pages/SwapRoutesPage/SwapRoutesPage.js +1 -1
  253. package/providers/SwapFormProvider/SwapFormProvider.d.ts +1 -0
  254. package/providers/SwapFormProvider/SwapFormProvider.js +43 -9
  255. package/providers/SwapFormProvider/types.d.ts +3 -1
  256. package/providers/SwapFormProvider/types.js +1 -0
  257. package/providers/WalletProvider/WalletProvider.js +10 -4
  258. package/providers/WalletProvider/types.d.ts +4 -2
  259. package/providers/WidgetProvider/WidgetProvider.js +3 -7
  260. package/providers/index.d.ts +4 -0
  261. package/providers/index.js +4 -0
  262. package/stores/chains/index.d.ts +4 -0
  263. package/stores/chains/index.js +4 -0
  264. package/stores/chains/types.d.ts +8 -0
  265. package/stores/chains/types.js +1 -0
  266. package/stores/chains/useChainOrder.d.ts +1 -0
  267. package/stores/chains/useChainOrder.js +5 -0
  268. package/stores/chains/useChainOrderStore.d.ts +19 -0
  269. package/stores/chains/useChainOrderStore.js +36 -0
  270. package/stores/chains/useInitializeChainOrder.d.ts +1 -0
  271. package/stores/chains/useInitializeChainOrder.js +5 -0
  272. package/stores/route/index.d.ts +2 -1
  273. package/stores/route/index.js +2 -1
  274. package/stores/route/useExecutingRoutesIds.d.ts +1 -0
  275. package/stores/route/useExecutingRoutesIds.js +13 -0
  276. package/stores/route/useRouteStore.js +5 -4
  277. package/stores/route/utils.d.ts +4 -0
  278. package/stores/route/utils.js +15 -0
  279. package/stores/settings/types.d.ts +2 -1
  280. package/stores/settings/useSettingsStore.d.ts +4 -2
  281. package/stores/settings/useSettingsStore.js +6 -2
  282. package/tsconfig.cjs.tsbuildinfo +1 -1
  283. package/types/events.d.ts +5 -0
  284. package/types/events.js +6 -0
  285. package/types/index.d.ts +1 -0
  286. package/types/index.js +1 -0
  287. package/types/widget.d.ts +3 -1
  288. package/utils/format.js +7 -2
  289. package/utils/navigationRoutes.d.ts +5 -0
  290. package/utils/navigationRoutes.js +30 -3
  291. package/cjs/components/SwapButton/SwapButton.style.d.ts +0 -65
  292. package/cjs/components/SwapButton/SwapButton.style.js +0 -15
  293. package/cjs/components/SwapInProgress/SwapInProgress.js +0 -29
  294. package/cjs/components/SwapInProgress/SwapInProgress.style.js +0 -17
  295. package/cjs/components/SwapInProgress/index.d.ts +0 -1
  296. package/cjs/pages/SelectTokenPage/ChainSelect.js +0 -32
  297. package/cjs/pages/SwapPage/utils.d.ts +0 -6
  298. package/cjs/pages/SwapPage/utils.js +0 -93
  299. package/cjs/stores/route/useExecutingRoutes.d.ts +0 -2
  300. package/cjs/stores/route/useExecutingRoutes.js +0 -13
  301. package/components/Step/utils.js +0 -89
  302. package/components/SwapButton/SwapButton.style.d.ts +0 -65
  303. package/components/SwapButton/SwapButton.style.js +0 -12
  304. package/components/SwapInProgress/SwapInProgress.js +0 -25
  305. package/components/SwapInProgress/SwapInProgress.style.js +0 -14
  306. package/components/SwapInProgress/index.d.ts +0 -1
  307. package/components/SwapInProgress/index.js +0 -1
  308. package/pages/SelectTokenPage/ChainSelect.js +0 -28
  309. package/pages/SwapPage/utils.d.ts +0 -6
  310. package/stores/route/useExecutingRoutes.d.ts +0 -2
  311. package/stores/route/useExecutingRoutes.js +0 -6
@@ -23,20 +23,21 @@ const SwapRouteCard = (_a) => {
23
23
  var _b, _c;
24
24
  var { route, active, dense } = _a, other = __rest(_a, ["route", "active", "dense"]);
25
25
  const { t } = (0, react_i18next_1.useTranslation)();
26
+ const alternativeTag = t(`swap.tags.ALTERNATIVE`);
26
27
  const label = ((_b = route.tags) === null || _b === void 0 ? void 0 : _b.length)
27
- ? t(`swap.tags.${route.tags[0].toLowerCase()}`).toUpperCase()
28
- : t(`swap.tags.general`).toUpperCase();
28
+ ? t(`swap.tags.${route.tags[0]}`)
29
+ : alternativeTag;
29
30
  return ((0, jsx_runtime_1.jsxs)(Card_1.Card, Object.assign({ dense: dense, indented: true }, other, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ sx: {
30
31
  display: 'flex',
31
32
  alignItems: 'center',
32
33
  justifyContent: 'space-between',
33
- }, mb: 2 }, { children: (0, jsx_runtime_1.jsx)(SwapRouteCard_style_1.Label, Object.assign({ active: active }, { children: label })) })), (0, jsx_runtime_1.jsx)(Token_1.Token, { token: Object.assign(Object.assign({}, route.toToken), { amount: route.toAmount }), mb: 2 }), !dense
34
+ }, mb: 2 }, { children: (0, jsx_runtime_1.jsx)(SwapRouteCard_style_1.Label, Object.assign({ active: active !== null && active !== void 0 ? active : label !== alternativeTag }, { children: label })) })), (0, jsx_runtime_1.jsx)(Token_1.Token, { token: Object.assign(Object.assign({}, route.toToken), { amount: route.toAmount }), mb: 2 }), !dense
34
35
  ? route.steps.map((step) => ((0, jsx_runtime_1.jsx)(StepActions_1.StepActions, { step: step, mb: 2 }, step.id)))
35
36
  : null, (0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ sx: {
36
37
  display: 'flex',
37
38
  justifyContent: 'space-between',
38
39
  } }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ fontSize: 18, fontWeight: "500", lineHeight: 1, pt: 0.25 }, { children: t(`swap.currency`, { value: (_c = route.gasCostUSD) !== null && _c !== void 0 ? _c : 0 }) })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ fontSize: 12, color: "text.secondary", lineHeight: 1, mt: 0.5 }, { children: t(`swap.gas`) }))] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { children: [(0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ fontSize: 18, fontWeight: "500", display: "flex", justifyContent: "flex-end", lineHeight: 1, pt: 0.25 }, { children: ["~", (route.steps
39
40
  .map((step) => step.estimate.executionDuration)
40
- .reduce((cumulated, x) => cumulated + x) / 60).toFixed(0)] })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ fontSize: 12, color: "text.secondary", textAlign: "end", lineHeight: 1, mt: 0.5 }, { children: t(`swap.minutes`) }))] })] }))] })));
41
+ .reduce((duration, x) => duration + x) / 60).toFixed(0)] })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ fontSize: 12, color: "text.secondary", textAlign: "end", lineHeight: 1, mt: 0.5 }, { children: t(`swap.minutes`) }))] })] }))] })));
41
42
  };
42
43
  exports.SwapRouteCard = SwapRouteCard;
@@ -7,16 +7,16 @@ const utils_1 = require("../../utils");
7
7
  exports.Label = (0, styles_1.styled)(material_1.Typography, {
8
8
  shouldForwardProp: (prop) => prop !== 'active',
9
9
  })(({ theme, active }) => ({
10
- backgroundColor: active ? theme.palette.primary.main : 'transparent',
10
+ backgroundColor: active ? theme.palette.secondary.main : 'transparent',
11
11
  border: '1px solid',
12
12
  borderColor: active
13
- ? theme.palette.primary.main
13
+ ? theme.palette.secondary.main
14
14
  : theme.palette.mode === 'light'
15
15
  ? theme.palette.grey[500]
16
16
  : theme.palette.grey[600],
17
17
  borderRadius: theme.shape.borderRadiusSecondary,
18
18
  color: active
19
- ? (0, utils_1.getContrastTextColor)(theme, theme.palette.primary.main)
19
+ ? (0, utils_1.getContrastTextColor)(theme, theme.palette.secondary.main)
20
20
  : theme.palette.text.secondary,
21
21
  padding: theme.spacing(0.75),
22
22
  fontSize: 12,
@@ -6,9 +6,6 @@ const Avatar_1 = require("@mui/material/Avatar");
6
6
  const Badge_1 = require("@mui/material/Badge");
7
7
  const styles_1 = require("@mui/material/styles");
8
8
  exports.TokenAvatarGroup = (0, styles_1.styled)(material_1.AvatarGroup)(({ theme }) => ({
9
- [`& .${Avatar_1.avatarClasses.root}`]: {
10
- background: theme.palette.background.paper,
11
- },
12
9
  [`& .${Badge_1.badgeClasses.badge}:last-child .${Avatar_1.avatarClasses.root}`]: {
13
10
  marginLeft: theme.spacing(-1),
14
11
  boxSizing: 'border-box',
@@ -6,19 +6,18 @@ const material_1 = require("@mui/material");
6
6
  const react_1 = require("react");
7
7
  const react_hook_form_1 = require("react-hook-form");
8
8
  const hooks_1 = require("../../hooks");
9
- const SwapFormProvider_1 = require("../../providers/SwapFormProvider");
10
- const WalletProvider_1 = require("../../providers/WalletProvider");
9
+ const providers_1 = require("../../providers");
11
10
  const TokenNotFound_1 = require("./TokenNotFound");
12
11
  const VirtualizedTokenList_1 = require("./VirtualizedTokenList");
13
12
  const TokenList = ({ formType, height, onClick, }) => {
14
13
  var _a, _b;
15
14
  const parentRef = (0, react_1.useRef)(null);
16
- const { account } = (0, WalletProvider_1.useWallet)();
15
+ const { account } = (0, providers_1.useWallet)();
17
16
  const { setValue, getValues } = (0, react_hook_form_1.useFormContext)();
18
17
  const [selectedChainId] = (0, react_hook_form_1.useWatch)({
19
- name: [SwapFormProvider_1.SwapFormKeyHelper.getChainKey(formType)],
18
+ name: [providers_1.SwapFormKeyHelper.getChainKey(formType)],
20
19
  });
21
- const [tokenSearchFilter] = (0, hooks_1.useDebouncedWatch)([SwapFormProvider_1.SwapFormKey.TokenSearchFilter], 250);
20
+ const [tokenSearchFilter] = (0, hooks_1.useDebouncedWatch)([providers_1.SwapFormKey.TokenSearchFilter], 250);
22
21
  const { tokens: chainTokens, tokensWithBalance, isLoading: isTokensLoading, isBalanceLoading, featuredTokens, } = (0, hooks_1.useTokenBalances)(selectedChainId);
23
22
  let filteredTokens = ((_a = tokensWithBalance !== null && tokensWithBalance !== void 0 ? tokensWithBalance : chainTokens) !== null && _a !== void 0 ? _a : []);
24
23
  const searchFilter = (_b = tokenSearchFilter === null || tokenSearchFilter === void 0 ? void 0 : tokenSearchFilter.toUpperCase()) !== null && _b !== void 0 ? _b : '';
@@ -36,17 +35,21 @@ const TokenList = ({ formType, height, onClick, }) => {
36
35
  ? [searchedToken]
37
36
  : filteredTokens;
38
37
  const handleTokenClick = (0, react_1.useCallback)((tokenAddress) => {
39
- setValue(SwapFormProvider_1.SwapFormKeyHelper.getTokenKey(formType), tokenAddress);
40
- setValue(SwapFormProvider_1.SwapFormKeyHelper.getAmountKey(formType), '');
38
+ setValue(providers_1.SwapFormKeyHelper.getTokenKey(formType), tokenAddress, {
39
+ shouldDirty: true,
40
+ });
41
+ setValue(providers_1.SwapFormKeyHelper.getAmountKey(formType), '');
41
42
  const oppositeFormType = formType === 'from' ? 'to' : 'from';
42
43
  const [selectedOppositeToken, selectedOppositeChain, selectedChain] = getValues([
43
- SwapFormProvider_1.SwapFormKeyHelper.getTokenKey(oppositeFormType),
44
- SwapFormProvider_1.SwapFormKeyHelper.getChainKey(oppositeFormType),
45
- SwapFormProvider_1.SwapFormKeyHelper.getChainKey(formType),
44
+ providers_1.SwapFormKeyHelper.getTokenKey(oppositeFormType),
45
+ providers_1.SwapFormKeyHelper.getChainKey(oppositeFormType),
46
+ providers_1.SwapFormKeyHelper.getChainKey(formType),
46
47
  ]);
47
48
  if (selectedOppositeToken === tokenAddress &&
48
49
  selectedOppositeChain === selectedChain) {
49
- setValue(SwapFormProvider_1.SwapFormKeyHelper.getTokenKey(oppositeFormType), '');
50
+ setValue(providers_1.SwapFormKeyHelper.getTokenKey(oppositeFormType), '', {
51
+ shouldDirty: false,
52
+ });
50
53
  }
51
54
  onClick === null || onClick === void 0 ? void 0 : onClick();
52
55
  }, [formType, getValues, onClick, setValue]);
@@ -1,6 +1,6 @@
1
1
  import type { TokenAmount } from '@lifi/sdk';
2
2
  import type { MutableRefObject } from 'react';
3
- import type { SwapFormDirection } from '../../providers/SwapFormProvider';
3
+ import type { SwapFormDirection } from '../../providers';
4
4
  import type { Token } from '../../types';
5
5
  export interface TokenListProps {
6
6
  formType: SwapFormDirection;
@@ -88,7 +88,29 @@ const createTheme = (mode, theme = {}) => {
88
88
  defaultProps: {
89
89
  disableElevation: true,
90
90
  },
91
- styleOverrides: Object.assign(Object.assign({}, (mode === 'dark'
91
+ styleOverrides: Object.assign({ root: {
92
+ borderRadius: (_v = (_u = theme.shape) === null || _u === void 0 ? void 0 : _u.borderRadiusSecondary) !== null && _v !== void 0 ? _v : shape.borderRadiusSecondary,
93
+ textTransform: 'none',
94
+ fontSize: '1rem',
95
+ '&.Mui-disabled, &.Mui-disabled:hover': {
96
+ color: mode === 'light'
97
+ ? 'rgb(0 0 0 / 70%)'
98
+ : 'rgb(255 255 255 / 70%)',
99
+ cursor: 'not-allowed',
100
+ pointerEvents: 'auto',
101
+ },
102
+ }, contained: {
103
+ '&:hover': {
104
+ color: (0, styles_1.getContrastRatio)(colors_1.common.white, primaryMainColor) >= 3
105
+ ? colors_1.common.white
106
+ : colors_1.common.black,
107
+ },
108
+ }, sizeMedium: {
109
+ padding: '10px 16px',
110
+ [`.${DialogActions_1.dialogActionsClasses.root} &`]: {
111
+ padding: '6px 12px',
112
+ },
113
+ } }, (mode === 'dark'
92
114
  ? {
93
115
  outlined: {
94
116
  color: primaryLightColor,
@@ -106,28 +128,7 @@ const createTheme = (mode, theme = {}) => {
106
128
  },
107
129
  },
108
130
  }
109
- : {})), { root: {
110
- borderRadius: (_v = (_u = theme.shape) === null || _u === void 0 ? void 0 : _u.borderRadiusSecondary) !== null && _v !== void 0 ? _v : shape.borderRadiusSecondary,
111
- textTransform: 'none',
112
- fontSize: '1rem',
113
- padding: '10px 16px',
114
- [`.${DialogActions_1.dialogActionsClasses.root} &`]: {
115
- padding: '6px 12px',
116
- },
117
- '&.Mui-disabled, &.Mui-disabled:hover': {
118
- color: mode === 'light'
119
- ? 'rgb(0 0 0 / 70%)'
120
- : 'rgb(255 255 255 / 70%)',
121
- cursor: 'not-allowed',
122
- pointerEvents: 'auto',
123
- },
124
- }, contained: {
125
- '&:hover': {
126
- color: (0, styles_1.getContrastRatio)(colors_1.common.white, primaryMainColor) >= 3
127
- ? colors_1.common.white
128
- : colors_1.common.black,
129
- },
130
- } }),
131
+ : {})),
131
132
  },
132
133
  MuiIconButton: {
133
134
  styleOverrides: {
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "1.14.1";
2
+ export declare const version = "1.16.0";
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = '@lifi/widget';
5
- exports.version = '1.14.1';
5
+ exports.version = '1.16.0';
@@ -5,6 +5,8 @@ export * from './useDebouncedWatch';
5
5
  export * from './useFeaturedTokens';
6
6
  export * from './useGasSufficiency';
7
7
  export * from './useInitializer';
8
+ export * from './useNavigateBack';
9
+ export * from './useProcessMessage';
8
10
  export * from './useRouteExecution';
9
11
  export * from './useScrollableContainer';
10
12
  export * from './useSwapRoutes';
@@ -15,3 +17,4 @@ export * from './useTokenBalances';
15
17
  export * from './useTokens';
16
18
  export * from './useTokenSearch';
17
19
  export * from './useTools';
20
+ export * from './useWidgetEvents';
@@ -21,6 +21,8 @@ __exportStar(require("./useDebouncedWatch"), exports);
21
21
  __exportStar(require("./useFeaturedTokens"), exports);
22
22
  __exportStar(require("./useGasSufficiency"), exports);
23
23
  __exportStar(require("./useInitializer"), exports);
24
+ __exportStar(require("./useNavigateBack"), exports);
25
+ __exportStar(require("./useProcessMessage"), exports);
24
26
  __exportStar(require("./useRouteExecution"), exports);
25
27
  __exportStar(require("./useScrollableContainer"), exports);
26
28
  __exportStar(require("./useSwapRoutes"), exports);
@@ -31,3 +33,4 @@ __exportStar(require("./useTokenBalances"), exports);
31
33
  __exportStar(require("./useTokens"), exports);
32
34
  __exportStar(require("./useTokenSearch"), exports);
33
35
  __exportStar(require("./useTools"), exports);
36
+ __exportStar(require("./useWidgetEvents"), exports);
@@ -1,101 +1,5 @@
1
1
  export declare const useChains: () => {
2
- error: unknown;
3
- isError: true;
4
- isLoading: false;
5
- isLoadingError: false;
6
- isRefetchError: true;
7
- isSuccess: false;
8
- status: "error";
9
- dataUpdatedAt: number;
10
- errorUpdatedAt: number;
11
- failureCount: number;
12
- errorUpdateCount: number;
13
- isFetched: boolean;
14
- isFetchedAfterMount: boolean;
15
- isFetching: boolean;
16
- isPaused: boolean;
17
- isPlaceholderData: boolean;
18
- isPreviousData: boolean;
19
- isRefetching: boolean;
20
- isStale: boolean;
21
- refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@lifi/types").EVMChain[], unknown>>;
22
- remove: () => void;
23
- fetchStatus: import("@tanstack/react-query").FetchStatus;
24
- chains: import("@lifi/types").EVMChain[] | undefined;
25
- getChainById: (chainId: number) => import("@lifi/types").EVMChain | undefined;
26
- } | {
27
- error: null;
28
- isError: false;
29
- isLoading: false;
30
- isLoadingError: false;
31
- isRefetchError: false;
32
- isSuccess: true;
33
- status: "success";
34
- dataUpdatedAt: number;
35
- errorUpdatedAt: number;
36
- failureCount: number;
37
- errorUpdateCount: number;
38
- isFetched: boolean;
39
- isFetchedAfterMount: boolean;
40
- isFetching: boolean;
41
- isPaused: boolean;
42
- isPlaceholderData: boolean;
43
- isPreviousData: boolean;
44
- isRefetching: boolean;
45
- isStale: boolean;
46
- refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@lifi/types").EVMChain[], unknown>>;
47
- remove: () => void;
48
- fetchStatus: import("@tanstack/react-query").FetchStatus;
49
- chains: import("@lifi/types").EVMChain[] | undefined;
50
- getChainById: (chainId: number) => import("@lifi/types").EVMChain | undefined;
51
- } | {
52
- error: unknown;
53
- isError: true;
54
- isLoading: false;
55
- isLoadingError: true;
56
- isRefetchError: false;
57
- isSuccess: false;
58
- status: "error";
59
- dataUpdatedAt: number;
60
- errorUpdatedAt: number;
61
- failureCount: number;
62
- errorUpdateCount: number;
63
- isFetched: boolean;
64
- isFetchedAfterMount: boolean;
65
- isFetching: boolean;
66
- isPaused: boolean;
67
- isPlaceholderData: boolean;
68
- isPreviousData: boolean;
69
- isRefetching: boolean;
70
- isStale: boolean;
71
- refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@lifi/types").EVMChain[], unknown>>;
72
- remove: () => void;
73
- fetchStatus: import("@tanstack/react-query").FetchStatus;
74
- chains: import("@lifi/types").EVMChain[] | undefined;
75
- getChainById: (chainId: number) => import("@lifi/types").EVMChain | undefined;
76
- } | {
77
- error: null;
78
- isError: false;
79
- isLoading: true;
80
- isLoadingError: false;
81
- isRefetchError: false;
82
- isSuccess: false;
83
- status: "loading";
84
- dataUpdatedAt: number;
85
- errorUpdatedAt: number;
86
- failureCount: number;
87
- errorUpdateCount: number;
88
- isFetched: boolean;
89
- isFetchedAfterMount: boolean;
90
- isFetching: boolean;
91
- isPaused: boolean;
92
- isPlaceholderData: boolean;
93
- isPreviousData: boolean;
94
- isRefetching: boolean;
95
- isStale: boolean;
96
- refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@lifi/types").EVMChain[], unknown>>;
97
- remove: () => void;
98
- fetchStatus: import("@tanstack/react-query").FetchStatus;
99
2
  chains: import("@lifi/types").EVMChain[] | undefined;
100
3
  getChainById: (chainId: number) => import("@lifi/types").EVMChain | undefined;
4
+ isLoading: boolean;
101
5
  };
@@ -8,29 +8,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
11
  Object.defineProperty(exports, "__esModule", { value: true });
23
12
  exports.useChains = void 0;
24
13
  const react_query_1 = require("@tanstack/react-query");
25
14
  const react_1 = require("react");
26
15
  const lifi_1 = require("../config/lifi");
27
16
  const WidgetProvider_1 = require("../providers/WidgetProvider");
17
+ const chains_1 = require("../stores/chains");
28
18
  const useChains = () => {
29
19
  const { disabledChains } = (0, WidgetProvider_1.useWidgetConfig)();
30
- const _a = (0, react_query_1.useQuery)(['chains'], () => __awaiter(void 0, void 0, void 0, function* () {
20
+ const [, initializeChains] = (0, chains_1.useSetChainOrder)();
21
+ const { data, isLoading } = (0, react_query_1.useQuery)(['chains'], () => __awaiter(void 0, void 0, void 0, function* () {
31
22
  const chains = yield lifi_1.LiFi.getChains();
32
- return chains.filter((chain) => !(disabledChains === null || disabledChains === void 0 ? void 0 : disabledChains.includes(chain.id)));
33
- })), { data } = _a, other = __rest(_a, ["data"]);
23
+ const filteredChains = chains.filter((chain) => !(disabledChains === null || disabledChains === void 0 ? void 0 : disabledChains.includes(chain.id)));
24
+ initializeChains(filteredChains.map((chain) => chain.id));
25
+ return filteredChains;
26
+ }));
34
27
  const getChainById = (0, react_1.useCallback)((chainId) => {
35
28
  const chain = data === null || data === void 0 ? void 0 : data.find((chain) => chain.id === chainId);
36
29
  // if (!chain) {
@@ -38,6 +31,6 @@ const useChains = () => {
38
31
  // }
39
32
  return chain;
40
33
  }, [data]);
41
- return Object.assign({ chains: data, getChainById }, other);
34
+ return { chains: data, getChainById, isLoading };
42
35
  };
43
36
  exports.useChains = useChains;
@@ -0,0 +1,4 @@
1
+ export declare const useNavigateBack: () => {
2
+ navigateBack: () => void;
3
+ navigate: import("react-router-dom").NavigateFunction;
4
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNavigateBack = void 0;
4
+ const react_1 = require("react");
5
+ const react_router_dom_1 = require("react-router-dom");
6
+ const useNavigateBack = () => {
7
+ const navigate = (0, react_router_dom_1.useNavigate)();
8
+ const navigateBack = (0, react_1.useCallback)(() => {
9
+ if (window.history.state && window.history.state.idx > 0) {
10
+ navigate(-1);
11
+ }
12
+ else {
13
+ navigate(window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/')) || '/', { replace: true });
14
+ }
15
+ }, [navigate]);
16
+ return { navigateBack, navigate };
17
+ };
18
+ exports.useNavigateBack = useNavigateBack;
@@ -1,5 +1,9 @@
1
1
  import type { EVMChain, Process, Step } from '@lifi/sdk';
2
2
  import type { TFunction } from 'react-i18next';
3
+ export declare const useProcessMessage: (step?: Step, process?: Process) => {
4
+ title?: string | undefined;
5
+ message?: string | undefined;
6
+ };
3
7
  export declare function getProcessMessage(t: TFunction<'translation', undefined>, getChainById: (chainId: number) => EVMChain | undefined, step: Step, process: Process): {
4
8
  title?: string;
5
9
  message?: string;
@@ -1,13 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProcessMessage = void 0;
3
+ exports.getProcessMessage = exports.useProcessMessage = void 0;
4
4
  const sdk_1 = require("@lifi/sdk");
5
- const utils_1 = require("../../utils");
6
- const formatProcessMessage = (initialMessage, args = {}) => {
7
- return Object.keys(args).reduce((message, key) => {
8
- return message.replace(`{${key}}`, args[key]);
9
- }, initialMessage);
5
+ const react_i18next_1 = require("react-i18next");
6
+ const utils_1 = require("../utils");
7
+ const useChains_1 = require("./useChains");
8
+ const useProcessMessage = (step, process) => {
9
+ const { t } = (0, react_i18next_1.useTranslation)();
10
+ const { getChainById } = (0, useChains_1.useChains)();
11
+ if (!step || !process) {
12
+ return {};
13
+ }
14
+ return getProcessMessage(t, getChainById, step, process);
10
15
  };
16
+ exports.useProcessMessage = useProcessMessage;
11
17
  const processMessages = {
12
18
  TOKEN_ALLOWANCE: {
13
19
  STARTED: (t) => t(`swap.process.tokenAllowance.started`),
@@ -15,7 +21,7 @@ const processMessages = {
15
21
  DONE: (t) => t(`swap.process.tokenAllowance.done`),
16
22
  },
17
23
  SWITCH_CHAIN: {
18
- PENDING: (t) => t(`swap.process.switchChain.pending`),
24
+ ACTION_REQUIRED: (t) => t(`swap.process.switchChain.actionRequired`),
19
25
  DONE: (t) => t(`swap.process.switchChain.done`),
20
26
  },
21
27
  SWAP: {
@@ -70,9 +76,9 @@ function getProcessMessage(t, getChainById, step, process) {
70
76
  title = t(`swap.error.title.slippageTooLarge`);
71
77
  message = t(`swap.error.message.slippageTooLarge`);
72
78
  break;
73
- case sdk_1.MetaMaskProviderErrorCode.userRejectedRequest:
74
- title = t(`swap.error.title.userRejectedSignatureRequest`);
75
- message = t(`swap.error.message.signatureRequired`, {
79
+ case sdk_1.LifiErrorCode.TransactionRejected:
80
+ title = t(`swap.error.title.transactionRejected`);
81
+ message = t(`swap.error.message.transactionRejected`, {
76
82
  amount: (0, utils_1.formatTokenAmount)(step.action.fromAmount, step.action.fromToken.decimals),
77
83
  tokenSymbol: step.action.fromToken.symbol,
78
84
  chainName: (_b = (_a = getChainById(step.action.fromChainId)) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',
@@ -1,5 +1,5 @@
1
1
  import type { Route } from '@lifi/sdk';
2
- export declare const useRouteExecution: (routeId: string) => {
2
+ export declare const useRouteExecution: (routeId: string, executeInBackground?: boolean) => {
3
3
  executeRoute: () => void;
4
4
  restartRoute: () => void;
5
5
  deleteRoute: () => void;
@@ -19,16 +19,25 @@ const shallow_1 = __importDefault(require("zustand/shallow"));
19
19
  const lifi_1 = require("../config/lifi");
20
20
  const WalletProvider_1 = require("../providers/WalletProvider");
21
21
  const stores_1 = require("../stores");
22
+ const events_1 = require("../types/events");
22
23
  const utils_1 = require("../utils");
23
- const useRouteExecution = (routeId) => {
24
+ const useWidgetEvents_1 = require("./useWidgetEvents");
25
+ const useRouteExecution = (routeId, executeInBackground) => {
24
26
  const { account, switchChain } = (0, WalletProvider_1.useWallet)();
25
27
  const resumedAfterMount = (0, react_1.useRef)(false);
28
+ const emitter = (0, useWidgetEvents_1.useWidgetEvents)();
26
29
  const routeExecution = (0, stores_1.useRouteStore)((state) => state.routes[routeId]);
27
30
  const [updateRoute, restartRoute, deleteRoute] = (0, stores_1.useRouteStore)((state) => [state.updateRoute, state.restartRoute, state.deleteRoute], shallow_1.default);
28
31
  const updateCallback = (updatedRoute) => {
29
32
  const clonedUpdatedRoute = (0, utils_1.deepClone)(updatedRoute);
30
33
  console.log('Route updated.', clonedUpdatedRoute);
31
34
  updateRoute(clonedUpdatedRoute);
35
+ if ((0, stores_1.isRouteCompleted)(clonedUpdatedRoute)) {
36
+ emitter.emit(events_1.WidgetEvent.SwapCompleted);
37
+ }
38
+ if ((0, stores_1.isRouteFailed)(clonedUpdatedRoute)) {
39
+ emitter.emit(events_1.WidgetEvent.SwapFailed);
40
+ }
32
41
  };
33
42
  const switchChainHook = (requiredChainId) => __awaiter(void 0, void 0, void 0, function* () {
34
43
  if (!account.isActive || !account.signer) {
@@ -54,16 +63,12 @@ const useRouteExecution = (routeId) => {
54
63
  updateCallback,
55
64
  switchChainHook,
56
65
  infiniteApproval: false,
66
+ executeInBackground,
57
67
  });
58
68
  }, {
59
69
  onMutate: () => {
60
70
  console.log('Execution started.', routeId);
61
- },
62
- onError: () => {
63
- console.warn('Execution failed.', routeId);
64
- },
65
- onSuccess: (route) => {
66
- console.log('Executed successfully.', routeId);
71
+ emitter.emit(events_1.WidgetEvent.SwapStarted);
67
72
  },
68
73
  });
69
74
  const resumeRouteMutation = (0, react_query_1.useMutation)((resumedRoute) => {
@@ -77,26 +82,21 @@ const useRouteExecution = (routeId) => {
77
82
  updateCallback,
78
83
  switchChainHook,
79
84
  infiniteApproval: false,
85
+ executeInBackground,
80
86
  });
81
87
  }, {
82
88
  onMutate: () => {
83
89
  console.log('Resumed to execution.', routeId);
84
90
  },
85
- onError: () => {
86
- console.warn('Resumed execution failed.', routeId);
87
- },
88
- onSuccess: (route) => {
89
- console.log('Resumed execution successful.', route);
90
- },
91
91
  });
92
92
  const executeRoute = (0, react_1.useCallback)(() => {
93
93
  executeRouteMutation.mutateAsync(undefined, {
94
94
  onError: () => {
95
- console.warn('Real execution failed!', routeId);
95
+ console.warn('Execution failed!', routeId);
96
96
  // Notification.showNotification(NotificationType.SwapExecution_ERROR);
97
97
  },
98
98
  onSuccess: (route) => {
99
- console.log('Real execution successfully!', route);
99
+ console.log('Executed successfully!', route);
100
100
  // Notification.showNotification(NotificationType.TRANSACTION_SUCCESSFULL);
101
101
  },
102
102
  });
@@ -104,10 +104,10 @@ const useRouteExecution = (routeId) => {
104
104
  const resumeRoute = (0, react_1.useCallback)((route) => {
105
105
  resumeRouteMutation.mutateAsync(route, {
106
106
  onError: () => {
107
- console.warn('Real resumed execution failed.', routeId);
107
+ console.warn('Resumed execution failed.', routeId);
108
108
  },
109
109
  onSuccess: (route) => {
110
- console.log('Real resumed execution successful.', route);
110
+ console.log('Resumed execution successful.', route);
111
111
  },
112
112
  });
113
113
  }, [resumeRouteMutation, routeId]);
@@ -123,7 +123,7 @@ const useRouteExecution = (routeId) => {
123
123
  // Resume route execution after page reload
124
124
  (0, react_1.useEffect)(() => {
125
125
  // Check if route is eligible for automatic resuming
126
- if (isActiveRoute(routeExecution === null || routeExecution === void 0 ? void 0 : routeExecution.route) &&
126
+ if ((0, stores_1.isRouteActive)(routeExecution === null || routeExecution === void 0 ? void 0 : routeExecution.route) &&
127
127
  account.isActive &&
128
128
  !resumedAfterMount.current) {
129
129
  resumedAfterMount.current = true;
@@ -135,10 +135,10 @@ const useRouteExecution = (routeId) => {
135
135
  return () => {
136
136
  var _a;
137
137
  const route = (_a = stores_1.useRouteStore.getState().routes[routeId]) === null || _a === void 0 ? void 0 : _a.route;
138
- if (!route || !isActiveRoute(route)) {
138
+ if (!route || !(0, stores_1.isRouteActive)(route)) {
139
139
  return;
140
140
  }
141
- lifi_1.LiFi.moveExecutionToBackground(route);
141
+ lifi_1.LiFi.updateRouteExecution(route, { executeInBackground: true });
142
142
  console.log('Move route execution to background.', routeId);
143
143
  resumedAfterMount.current = false;
144
144
  };
@@ -152,12 +152,3 @@ const useRouteExecution = (routeId) => {
152
152
  };
153
153
  };
154
154
  exports.useRouteExecution = useRouteExecution;
155
- const isActiveRoute = (route) => {
156
- if (!route) {
157
- return false;
158
- }
159
- const allDone = route.steps.every((step) => { var _a; return ((_a = step.execution) === null || _a === void 0 ? void 0 : _a.status) === 'DONE'; });
160
- const isFailed = route.steps.some((step) => { var _a; return ((_a = step.execution) === null || _a === void 0 ? void 0 : _a.status) === 'FAILED'; });
161
- const alreadyStarted = route.steps.some((step) => step.execution);
162
- return !allDone && !isFailed && alreadyStarted;
163
- };