@lifi/widget 4.0.0-beta.14 → 4.0.0-beta.18

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 (294) hide show
  1. package/dist/esm/AppDefault.js +31 -29
  2. package/dist/esm/AppDefault.js.map +1 -1
  3. package/dist/esm/AppLayout.js +2 -2
  4. package/dist/esm/AppLayout.js.map +1 -1
  5. package/dist/esm/components/AmountInput/AmountInput.js +2 -2
  6. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  7. package/dist/esm/components/AmountInput/AmountInputStartAdornment.js.map +1 -1
  8. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  9. package/dist/esm/components/AppContainer.js +3 -3
  10. package/dist/esm/components/AppContainer.js.map +1 -1
  11. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  12. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  13. package/dist/esm/components/Chains/AllChainsAvatar.js +7 -1
  14. package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -1
  15. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
  16. package/dist/esm/components/ContractComponent/ItemPrice.js +1 -1
  17. package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -1
  18. package/dist/esm/components/ContractComponent/NFT/NFTBase.js +1 -1
  19. package/dist/esm/components/ContractComponent/NFT/NFTBase.js.map +1 -1
  20. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  21. package/dist/esm/components/Expansion/Expansion.js +4 -4
  22. package/dist/esm/components/Expansion/Expansion.js.map +1 -1
  23. package/dist/esm/components/Header/ActivitiesButton.js +1 -1
  24. package/dist/esm/components/Header/ActivitiesButton.js.map +1 -1
  25. package/dist/esm/components/Header/Header.js +2 -2
  26. package/dist/esm/components/Header/Header.js.map +1 -1
  27. package/dist/esm/components/Header/NavigationHeader.js +3 -3
  28. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  29. package/dist/esm/components/Header/WalletHeader.js +3 -3
  30. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  31. package/dist/esm/components/IconCircle/IconCircle.js.map +1 -1
  32. package/dist/esm/components/IconTypography.js.map +1 -1
  33. package/dist/esm/components/Messages/AlertMessage.js +1 -1
  34. package/dist/esm/components/Messages/AlertMessage.js.map +1 -1
  35. package/dist/esm/components/PageEntered.js +2 -2
  36. package/dist/esm/components/PageEntered.js.map +1 -1
  37. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  38. package/dist/esm/components/RouteCard/RouteCard.js +2 -2
  39. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  40. package/dist/esm/components/RouteCard/RouteCardEssentials.js +10 -4
  41. package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
  42. package/dist/esm/components/RouteCard/RouteToken.js +2 -2
  43. package/dist/esm/components/RouteCard/RouteToken.js.map +1 -1
  44. package/dist/esm/components/Routes/RoutesExpanded.js +3 -3
  45. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  46. package/dist/esm/components/SelectChainAndToken.js +8 -5
  47. package/dist/esm/components/SelectChainAndToken.js.map +1 -1
  48. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +1 -2
  49. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -1
  50. package/dist/esm/components/SendToWallet/SendToWalletButton.js +4 -4
  51. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  52. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +3 -3
  53. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  54. package/dist/esm/components/Skeleton/WidgetSkeleton.js.map +1 -1
  55. package/dist/esm/components/Step/Step.js +20 -9
  56. package/dist/esm/components/Step/Step.js.map +1 -1
  57. package/dist/esm/components/Step/StepActions.js +2 -2
  58. package/dist/esm/components/Step/StepActions.js.map +1 -1
  59. package/dist/esm/components/StepActions/StepActions.js +2 -2
  60. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  61. package/dist/esm/components/Tabs/Tabs.style.js.map +1 -1
  62. package/dist/esm/components/Timer/StepTimer.js.map +1 -1
  63. package/dist/esm/components/Timer/TimerContent.js +1 -0
  64. package/dist/esm/components/Timer/TimerContent.js.map +1 -1
  65. package/dist/esm/components/Token/Token.js +2 -2
  66. package/dist/esm/components/Token/Token.js.map +1 -1
  67. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +6 -4
  68. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  69. package/dist/esm/components/TokenList/TokenList.js +2 -2
  70. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  71. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  72. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  73. package/dist/esm/components/TokenList/useTokenSelect.js +2 -2
  74. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  75. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js +2 -3
  76. package/dist/esm/components/TransactionCard/ActiveTransactionCard.js.map +1 -1
  77. package/dist/esm/components/TransactionDetails.js +5 -2
  78. package/dist/esm/components/TransactionDetails.js.map +1 -1
  79. package/dist/esm/config/version.d.ts +1 -1
  80. package/dist/esm/config/version.js +1 -1
  81. package/dist/esm/config/version.js.map +1 -1
  82. package/dist/esm/hooks/timer/time.js.map +1 -1
  83. package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -1
  84. package/dist/esm/hooks/useActionMessage.js +2 -2
  85. package/dist/esm/hooks/useActionMessage.js.map +1 -1
  86. package/dist/esm/hooks/useAddressActivity.js.map +1 -1
  87. package/dist/esm/hooks/useAddressValidation.js +3 -8
  88. package/dist/esm/hooks/useAddressValidation.js.map +1 -1
  89. package/dist/esm/hooks/useAvailableChains.js +2 -1
  90. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  91. package/dist/esm/hooks/useChain.js.map +1 -1
  92. package/dist/esm/hooks/useChains.js.map +1 -1
  93. package/dist/esm/hooks/useContactSupport.js +3 -3
  94. package/dist/esm/hooks/useContactSupport.js.map +1 -1
  95. package/dist/esm/hooks/useDebouncedWatch.js.map +1 -1
  96. package/dist/esm/hooks/useExplorer.js +15 -4
  97. package/dist/esm/hooks/useExplorer.js.map +1 -1
  98. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -1
  99. package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -1
  100. package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
  101. package/dist/esm/hooks/useGasRecommendation.js +2 -2
  102. package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
  103. package/dist/esm/hooks/useGasRefuel.js +2 -2
  104. package/dist/esm/hooks/useGasRefuel.js.map +1 -1
  105. package/dist/esm/hooks/useGasSufficiency.js +2 -2
  106. package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
  107. package/dist/esm/hooks/useHasChainExpansion.js +3 -3
  108. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -1
  109. package/dist/esm/hooks/useIsContractAddress.js.map +1 -1
  110. package/dist/esm/hooks/useListHeight.js +2 -2
  111. package/dist/esm/hooks/useListHeight.js.map +1 -1
  112. package/dist/esm/hooks/useLongPress.js.map +1 -1
  113. package/dist/esm/hooks/useNavigateBack.js.map +1 -1
  114. package/dist/esm/hooks/useRouteExecution.js +5 -7
  115. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  116. package/dist/esm/hooks/useRoutes.js +4 -4
  117. package/dist/esm/hooks/useRoutes.js.map +1 -1
  118. package/dist/esm/hooks/useScrollableContainer.js.map +1 -1
  119. package/dist/esm/hooks/useSwapOnly.js.map +1 -1
  120. package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -1
  121. package/dist/esm/hooks/useToAddressRequirements.js +2 -2
  122. package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
  123. package/dist/esm/hooks/useToAddressReset.js +2 -2
  124. package/dist/esm/hooks/useToAddressReset.js.map +1 -1
  125. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  126. package/dist/esm/hooks/useTokenBalances.js +2 -2
  127. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  128. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -1
  129. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  130. package/dist/esm/hooks/useTokens.js +4 -2
  131. package/dist/esm/hooks/useTokens.js.map +1 -1
  132. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  133. package/dist/esm/hooks/useTransactionHistory.js.map +1 -1
  134. package/dist/esm/hooks/useTransactionList.js +2 -3
  135. package/dist/esm/hooks/useTransactionList.js.map +1 -1
  136. package/dist/esm/hooks/useWidgetEvents.js.map +1 -1
  137. package/dist/esm/i18n/bn.json +3 -0
  138. package/dist/esm/i18n/de.json +3 -0
  139. package/dist/esm/i18n/en.json +3 -0
  140. package/dist/esm/i18n/es.json +3 -0
  141. package/dist/esm/i18n/fr.json +3 -0
  142. package/dist/esm/i18n/hi.json +3 -0
  143. package/dist/esm/i18n/id.json +3 -0
  144. package/dist/esm/i18n/it.json +3 -0
  145. package/dist/esm/i18n/ja.json +3 -0
  146. package/dist/esm/i18n/ko.json +3 -0
  147. package/dist/esm/i18n/pl.json +3 -0
  148. package/dist/esm/i18n/pt.json +3 -0
  149. package/dist/esm/i18n/th.json +3 -0
  150. package/dist/esm/i18n/tr.json +3 -0
  151. package/dist/esm/i18n/uk.json +3 -0
  152. package/dist/esm/i18n/vi.json +3 -0
  153. package/dist/esm/i18n/zh.json +3 -0
  154. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js +1 -2
  155. package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js.map +1 -1
  156. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js +1 -1
  157. package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js.map +1 -1
  158. package/dist/esm/pages/MainPage/MainPage.js +6 -6
  159. package/dist/esm/pages/MainPage/MainPage.js.map +1 -1
  160. package/dist/esm/pages/MainPage/ReviewButton.js +2 -2
  161. package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
  162. package/dist/esm/pages/RoutesPage/RoutesPage.js +3 -3
  163. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  164. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  165. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  166. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +3 -3
  167. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  168. package/dist/esm/pages/SendToWallet/BookmarksPage.js +1 -1
  169. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  170. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +1 -1
  171. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
  172. package/dist/esm/pages/SendToWallet/SendToWalletPage.js +6 -6
  173. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  174. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +2 -2
  175. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  176. package/dist/esm/pages/SettingsPage/LanguageSetting.js +2 -2
  177. package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -1
  178. package/dist/esm/pages/SettingsPage/SettingsPage.js +2 -2
  179. package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -1
  180. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -1
  181. package/dist/esm/pages/SettingsPage/ThemeSettings.js +2 -2
  182. package/dist/esm/pages/SettingsPage/ThemeSettings.js.map +1 -1
  183. package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js.map +1 -1
  184. package/dist/esm/pages/TransactionDetailsPage/StepActionRow.js +2 -2
  185. package/dist/esm/pages/TransactionDetailsPage/StepActionRow.js.map +1 -1
  186. package/dist/esm/pages/TransactionDetailsPage/StepActionsList.js +11 -5
  187. package/dist/esm/pages/TransactionDetailsPage/StepActionsList.js.map +1 -1
  188. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  189. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js +2 -2
  190. package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js.map +1 -1
  191. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js +2 -2
  192. package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js.map +1 -1
  193. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +1 -1
  194. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
  195. package/dist/esm/pages/TransactionPage/StartTransactionButton.js.map +1 -1
  196. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +20 -21
  197. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  198. package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js +5 -6
  199. package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js.map +1 -1
  200. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +14 -4
  201. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  202. package/dist/esm/pages/TransactionPage/TransactionPage.js +15 -19
  203. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  204. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  205. package/dist/esm/providers/I18nProvider/i18n.js.map +1 -1
  206. package/dist/esm/providers/QueryClientProvider.js.map +1 -1
  207. package/dist/esm/providers/ThemeProvider/ThemeProvider.js.map +1 -1
  208. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  209. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +7 -3
  210. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
  211. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  212. package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -1
  213. package/dist/esm/stores/chains/ChainOrderStore.js +2 -2
  214. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  215. package/dist/esm/stores/chains/createChainOrderStore.js +2 -2
  216. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  217. package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
  218. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  219. package/dist/esm/stores/form/createFormStore.js.map +1 -1
  220. package/dist/esm/stores/form/useFieldActions.js +3 -3
  221. package/dist/esm/stores/form/useFieldActions.js.map +1 -1
  222. package/dist/esm/stores/form/useFieldValues.js.map +1 -1
  223. package/dist/esm/stores/form/useFormRef.js +2 -2
  224. package/dist/esm/stores/form/useFormRef.js.map +1 -1
  225. package/dist/esm/stores/form/useTouchedFields.js.map +1 -1
  226. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  227. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  228. package/dist/esm/stores/routes/createRouteExecutionStore.js +8 -9
  229. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  230. package/dist/esm/stores/routes/useRouteExecutionIndicator.js +2 -3
  231. package/dist/esm/stores/routes/useRouteExecutionIndicator.js.map +1 -1
  232. package/dist/esm/stores/routes/utils.js.map +1 -1
  233. package/dist/esm/stores/settings/SettingsStore.js.map +1 -1
  234. package/dist/esm/stores/settings/createSettingsStore.js +1 -5
  235. package/dist/esm/stores/settings/createSettingsStore.js.map +1 -1
  236. package/dist/esm/stores/settings/useSettingsActions.js +2 -2
  237. package/dist/esm/stores/settings/useSettingsActions.js.map +1 -1
  238. package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
  239. package/dist/esm/themes/createTheme.js +4 -4
  240. package/dist/esm/themes/createTheme.js.map +1 -1
  241. package/dist/esm/types/events.d.ts +0 -5
  242. package/dist/esm/types/events.d.ts.map +1 -1
  243. package/dist/esm/types/events.js +0 -4
  244. package/dist/esm/types/events.js.map +1 -1
  245. package/dist/esm/types/widget.d.ts +1 -5
  246. package/dist/esm/types/widget.d.ts.map +1 -1
  247. package/dist/esm/types/widget.js.map +1 -1
  248. package/dist/esm/utils/converters.js.map +1 -1
  249. package/dist/esm/utils/elements.js +5 -12
  250. package/dist/esm/utils/elements.js.map +1 -1
  251. package/dist/esm/utils/format.js.map +1 -1
  252. package/dist/esm/utils/timer.js.map +1 -1
  253. package/dist/esm/utils/token.js.map +1 -1
  254. package/package.json +11 -11
  255. package/src/AppDefault.tsx +9 -11
  256. package/src/components/Chains/AllChainsAvatar.tsx +7 -1
  257. package/src/components/ContractComponent/ItemPrice.tsx +1 -1
  258. package/src/components/ContractComponent/NFT/NFTBase.tsx +1 -1
  259. package/src/components/Header/ActivitiesButton.tsx +1 -1
  260. package/src/components/IconTypography.ts +8 -8
  261. package/src/components/Messages/AlertMessage.tsx +1 -1
  262. package/src/components/RouteCard/RouteCardEssentials.tsx +2 -2
  263. package/src/components/SelectChainAndToken.tsx +1 -1
  264. package/src/components/SendToWallet/SendToWalletButton.tsx +1 -1
  265. package/src/components/Step/Step.tsx +6 -7
  266. package/src/components/Timer/TimerContent.tsx +1 -0
  267. package/src/components/Token/Token.tsx +2 -2
  268. package/src/components/TokenList/TokenDetailsSheetContent.tsx +6 -4
  269. package/src/components/TransactionCard/ActiveTransactionCard.tsx +1 -1
  270. package/src/components/TransactionDetails.tsx +1 -1
  271. package/src/config/version.ts +1 -1
  272. package/src/hooks/useActionMessage.ts +4 -3
  273. package/src/hooks/useAvailableChains.ts +1 -0
  274. package/src/hooks/useExplorer.ts +16 -5
  275. package/src/hooks/useRouteExecution.ts +0 -2
  276. package/src/hooks/useTokens.ts +2 -0
  277. package/src/pages/ActivitiesPage/ActivitiesPageMenuButton.tsx +1 -1
  278. package/src/pages/MainPage/MainPage.tsx +3 -3
  279. package/src/pages/RoutesPage/RoutesPage.tsx +6 -1
  280. package/src/pages/SendToWallet/BookmarksPage.tsx +1 -1
  281. package/src/pages/SendToWallet/RecentWalletsPage.tsx +1 -1
  282. package/src/pages/TransactionDetailsPage/StepActionRow.tsx +3 -2
  283. package/src/pages/TransactionDetailsPage/StepActionsList.tsx +19 -12
  284. package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +1 -1
  285. package/src/pages/TransactionPage/StatusBottomSheet.tsx +1 -1
  286. package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +27 -5
  287. package/src/pages/TransactionPage/TransactionPage.tsx +2 -9
  288. package/src/providers/WalletProvider/useExternalWalletProvider.ts +9 -1
  289. package/src/stores/settings/createSettingsStore.ts +1 -9
  290. package/src/themes/createTheme.ts +4 -6
  291. package/src/types/events.ts +0 -5
  292. package/src/types/widget.ts +1 -4
  293. package/dist/esm/stores/routes/types.js +0 -14
  294. package/dist/esm/stores/routes/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarksPage.js","names":["ListItem","ListItemButton"],"sources":["../../../../src/pages/SendToWallet/BookmarksPage.tsx"],"sourcesContent":["import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport DeleteOutline from '@mui/icons-material/DeleteOutline'\nimport OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'\nimport TurnedIn from '@mui/icons-material/TurnedIn'\nimport { Button, ListItemAvatar, ListItemText } from '@mui/material'\nimport { useNavigate } from '@tanstack/react-router'\nimport { type JSX, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { AccountAvatar } from '../../components/Avatar/AccountAvatar.js'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { ContextMenu } from '../../components/ContextMenu.js'\nimport { ListItem } from '../../components/ListItem/ListItem.js'\nimport { ListItemButton } from '../../components/ListItem//ListItemButton.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { Bookmark } from '../../stores/bookmarks/types.js'\nimport { useBookmarkActions } from '../../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { defaultChainIdsByType } from '../../utils/chainType.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { BookmarkAddressSheet } from './BookmarkAddressSheet.js'\nimport { EmptyListIndicator } from './EmptyListIndicator.js'\nimport {\n BookmarkButtonContainer,\n BookmarksListContainer,\n FullHeightAdjustablePageContainer,\n} from './SendToWalletPage.style.js'\n\nexport const BookmarksPage = (): JSX.Element => {\n const { t } = useTranslation()\n const bookmarkAddressSheetRef = useRef<BottomSheetBase>(null)\n const { bookmarks } = useBookmarks()\n const { requiredToChainType } = useToAddressRequirements()\n const { addBookmark, removeBookmark, setSelectedBookmark } =\n useBookmarkActions()\n const navigate = useNavigate()\n const { setFieldValue } = useFieldActions()\n const { variant } = useWidgetConfig()\n const { getAddressLink } = useExplorer()\n\n useHeader(t('header.bookmarkedWallets'))\n\n const handleAddBookmark = () => {\n bookmarkAddressSheetRef.current?.open()\n }\n\n const handleBookmarkSelected = (bookmark: Bookmark) => {\n setFieldValue('toAddress', bookmark.address, {\n isTouched: true,\n isDirty: true,\n })\n setSelectedBookmark(bookmark)\n navigate({ to: navigationRoutes.home, replace: true })\n }\n\n return (\n <FullHeightAdjustablePageContainer\n disableGutters\n enableFullHeight={variant !== 'drawer'}\n >\n <BookmarksListContainer>\n {bookmarks.map((bookmark) => (\n <ListItem key={bookmark.address} sx={{ position: 'relative' }}>\n <ListItemButton\n onClick={() => handleBookmarkSelected(bookmark)}\n disabled={\n requiredToChainType &&\n requiredToChainType !== bookmark.chainType\n }\n >\n <ListItemAvatar>\n <AccountAvatar\n chainId={defaultChainIdsByType[bookmark.chainType]}\n />\n </ListItemAvatar>\n <ListItemText\n primary={bookmark.name}\n secondary={shortenAddress(bookmark.address)}\n />\n </ListItemButton>\n <ContextMenu\n disabled={\n !!(\n requiredToChainType &&\n requiredToChainType !== bookmark.chainType\n )\n }\n items={[\n {\n icon: <ContentCopyRounded />,\n label: t('button.copyAddress'),\n onClick: () =>\n navigator.clipboard.writeText(bookmark.address),\n },\n {\n icon: <OpenInNewRounded />,\n label: t('button.viewOnExplorer'),\n onClick: () =>\n window.open(\n getAddressLink(\n bookmark.address,\n defaultChainIdsByType[bookmark.chainType]\n ),\n '_blank'\n ),\n },\n {\n icon: <DeleteOutline />,\n label: t('button.delete'),\n onClick: () => removeBookmark(bookmark.address),\n },\n ]}\n />\n </ListItem>\n ))}\n {!bookmarks.length && (\n <EmptyListIndicator icon={<TurnedIn sx={{ fontSize: 48 }} />}>\n {t('sendToWallet.noBookmarkedWallets')}\n </EmptyListIndicator>\n )}\n </BookmarksListContainer>\n <BookmarkButtonContainer>\n <Button variant=\"contained\" onClick={handleAddBookmark}>\n {t('sendToWallet.addBookmark')}\n </Button>\n </BookmarkButtonContainer>\n <BookmarkAddressSheet\n ref={bookmarkAddressSheetRef}\n onAddBookmark={addBookmark}\n />\n </FullHeightAdjustablePageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAa,sBAAmC;CAC9C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,0BAA0B,OAAwB,KAAK;CAC7D,MAAM,EAAE,cAAc,cAAc;CACpC,MAAM,EAAE,wBAAwB,0BAA0B;CAC1D,MAAM,EAAE,aAAa,gBAAgB,wBACnC,oBAAoB;CACtB,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,kBAAkB,iBAAiB;CAC3C,MAAM,EAAE,YAAY,iBAAiB;CACrC,MAAM,EAAE,mBAAmB,aAAa;AAExC,WAAU,EAAE,2BAA2B,CAAC;CAExC,MAAM,0BAA0B;AAC9B,0BAAwB,SAAS,MAAM;;CAGzC,MAAM,0BAA0B,aAAuB;AACrD,gBAAc,aAAa,SAAS,SAAS;GAC3C,WAAW;GACX,SAAS;GACV,CAAC;AACF,sBAAoB,SAAS;AAC7B,WAAS;GAAE,IAAI,iBAAiB;GAAM,SAAS;GAAM,CAAC;;AAGxD,QACE,qBAAC,mCAAD;EACE,gBAAA;EACA,kBAAkB,YAAY;YAFhC;GAIE,qBAAC,wBAAD,EAAA,UAAA,CACG,UAAU,KAAK,aACd,qBAACA,YAAD;IAAiC,IAAI,EAAE,UAAU,YAAY;cAA7D,CACE,qBAACC,kBAAD;KACE,eAAe,uBAAuB,SAAS;KAC/C,UACE,uBACA,wBAAwB,SAAS;eAJrC,CAOE,oBAAC,gBAAD,EAAA,UACE,oBAAC,eAAD,EACE,SAAS,sBAAsB,SAAS,YACxC,CAAA,EACa,CAAA,EACjB,oBAAC,cAAD;MACE,SAAS,SAAS;MAClB,WAAW,eAAe,SAAS,QAAQ;MAC3C,CAAA,CACa;QACjB,oBAAC,aAAD;KACE,UACE,CAAC,EACC,uBACA,wBAAwB,SAAS;KAGrC,OAAO;MACL;OACE,MAAM,oBAAC,oBAAD,EAAsB,CAAA;OAC5B,OAAO,EAAE,qBAAqB;OAC9B,eACE,UAAU,UAAU,UAAU,SAAS,QAAQ;OAClD;MACD;OACE,MAAM,oBAAC,kBAAD,EAAoB,CAAA;OAC1B,OAAO,EAAE,wBAAwB;OACjC,eACE,OAAO,KACL,eACE,SAAS,SACT,sBAAsB,SAAS,WAChC,EACD,SACD;OACJ;MACD;OACE,MAAM,oBAAC,eAAD,EAAiB,CAAA;OACvB,OAAO,EAAE,gBAAgB;OACzB,eAAe,eAAe,SAAS,QAAQ;OAChD;MACF;KACD,CAAA,CACO;MAnDI,SAAS,QAmDb,CACX,EACD,CAAC,UAAU,UACV,oBAAC,oBAAD;IAAoB,MAAM,oBAAC,UAAD,EAAU,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;cACzD,EAAE,mCAAmC;IACnB,CAAA,CAEA,EAAA,CAAA;GACzB,oBAAC,yBAAD,EAAA,UACE,oBAAC,QAAD;IAAQ,SAAQ;IAAY,SAAS;cAClC,EAAE,2BAA2B;IACvB,CAAA,EACe,CAAA;GAC1B,oBAAC,sBAAD;IACE,KAAK;IACL,eAAe;IACf,CAAA;GACgC"}
1
+ {"version":3,"file":"BookmarksPage.js","names":["ListItem","ListItemButton"],"sources":["../../../../src/pages/SendToWallet/BookmarksPage.tsx"],"sourcesContent":["import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport DeleteOutline from '@mui/icons-material/DeleteOutlined'\nimport OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'\nimport TurnedIn from '@mui/icons-material/TurnedIn'\nimport { Button, ListItemAvatar, ListItemText } from '@mui/material'\nimport { useNavigate } from '@tanstack/react-router'\nimport { type JSX, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { AccountAvatar } from '../../components/Avatar/AccountAvatar.js'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { ContextMenu } from '../../components/ContextMenu.js'\nimport { ListItem } from '../../components/ListItem/ListItem.js'\nimport { ListItemButton } from '../../components/ListItem//ListItemButton.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { Bookmark } from '../../stores/bookmarks/types.js'\nimport { useBookmarkActions } from '../../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { defaultChainIdsByType } from '../../utils/chainType.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { BookmarkAddressSheet } from './BookmarkAddressSheet.js'\nimport { EmptyListIndicator } from './EmptyListIndicator.js'\nimport {\n BookmarkButtonContainer,\n BookmarksListContainer,\n FullHeightAdjustablePageContainer,\n} from './SendToWalletPage.style.js'\n\nexport const BookmarksPage = (): JSX.Element => {\n const { t } = useTranslation()\n const bookmarkAddressSheetRef = useRef<BottomSheetBase>(null)\n const { bookmarks } = useBookmarks()\n const { requiredToChainType } = useToAddressRequirements()\n const { addBookmark, removeBookmark, setSelectedBookmark } =\n useBookmarkActions()\n const navigate = useNavigate()\n const { setFieldValue } = useFieldActions()\n const { variant } = useWidgetConfig()\n const { getAddressLink } = useExplorer()\n\n useHeader(t('header.bookmarkedWallets'))\n\n const handleAddBookmark = () => {\n bookmarkAddressSheetRef.current?.open()\n }\n\n const handleBookmarkSelected = (bookmark: Bookmark) => {\n setFieldValue('toAddress', bookmark.address, {\n isTouched: true,\n isDirty: true,\n })\n setSelectedBookmark(bookmark)\n navigate({ to: navigationRoutes.home, replace: true })\n }\n\n return (\n <FullHeightAdjustablePageContainer\n disableGutters\n enableFullHeight={variant !== 'drawer'}\n >\n <BookmarksListContainer>\n {bookmarks.map((bookmark) => (\n <ListItem key={bookmark.address} sx={{ position: 'relative' }}>\n <ListItemButton\n onClick={() => handleBookmarkSelected(bookmark)}\n disabled={\n requiredToChainType &&\n requiredToChainType !== bookmark.chainType\n }\n >\n <ListItemAvatar>\n <AccountAvatar\n chainId={defaultChainIdsByType[bookmark.chainType]}\n />\n </ListItemAvatar>\n <ListItemText\n primary={bookmark.name}\n secondary={shortenAddress(bookmark.address)}\n />\n </ListItemButton>\n <ContextMenu\n disabled={\n !!(\n requiredToChainType &&\n requiredToChainType !== bookmark.chainType\n )\n }\n items={[\n {\n icon: <ContentCopyRounded />,\n label: t('button.copyAddress'),\n onClick: () =>\n navigator.clipboard.writeText(bookmark.address),\n },\n {\n icon: <OpenInNewRounded />,\n label: t('button.viewOnExplorer'),\n onClick: () =>\n window.open(\n getAddressLink(\n bookmark.address,\n defaultChainIdsByType[bookmark.chainType]\n ),\n '_blank'\n ),\n },\n {\n icon: <DeleteOutline />,\n label: t('button.delete'),\n onClick: () => removeBookmark(bookmark.address),\n },\n ]}\n />\n </ListItem>\n ))}\n {!bookmarks.length && (\n <EmptyListIndicator icon={<TurnedIn sx={{ fontSize: 48 }} />}>\n {t('sendToWallet.noBookmarkedWallets')}\n </EmptyListIndicator>\n )}\n </BookmarksListContainer>\n <BookmarkButtonContainer>\n <Button variant=\"contained\" onClick={handleAddBookmark}>\n {t('sendToWallet.addBookmark')}\n </Button>\n </BookmarkButtonContainer>\n <BookmarkAddressSheet\n ref={bookmarkAddressSheetRef}\n onAddBookmark={addBookmark}\n />\n </FullHeightAdjustablePageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAa,sBAAmC;CAC9C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,0BAA0B,OAAwB,KAAK;CAC7D,MAAM,EAAE,cAAc,cAAc;CACpC,MAAM,EAAE,wBAAwB,0BAA0B;CAC1D,MAAM,EAAE,aAAa,gBAAgB,wBACnC,oBAAoB;CACtB,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,kBAAkB,iBAAiB;CAC3C,MAAM,EAAE,YAAY,iBAAiB;CACrC,MAAM,EAAE,mBAAmB,aAAa;AAExC,WAAU,EAAE,2BAA2B,CAAC;CAExC,MAAM,0BAA0B;AAC9B,0BAAwB,SAAS,MAAM;;CAGzC,MAAM,0BAA0B,aAAuB;AACrD,gBAAc,aAAa,SAAS,SAAS;GAC3C,WAAW;GACX,SAAS;GACV,CAAC;AACF,sBAAoB,SAAS;AAC7B,WAAS;GAAE,IAAI,iBAAiB;GAAM,SAAS;GAAM,CAAC;;AAGxD,QACE,qBAAC,mCAAD;EACE,gBAAA;EACA,kBAAkB,YAAY;YAFhC;GAIE,qBAAC,wBAAD,EAAA,UAAA,CACG,UAAU,KAAK,aACd,qBAACA,YAAD;IAAiC,IAAI,EAAE,UAAU,YAAY;cAA7D,CACE,qBAACC,kBAAD;KACE,eAAe,uBAAuB,SAAS;KAC/C,UACE,uBACA,wBAAwB,SAAS;eAJrC,CAOE,oBAAC,gBAAD,EAAA,UACE,oBAAC,eAAD,EACE,SAAS,sBAAsB,SAAS,YACxC,CAAA,EACa,CAAA,EACjB,oBAAC,cAAD;MACE,SAAS,SAAS;MAClB,WAAW,eAAe,SAAS,QAAQ;MAC3C,CAAA,CACa;QACjB,oBAAC,aAAD;KACE,UACE,CAAC,EACC,uBACA,wBAAwB,SAAS;KAGrC,OAAO;MACL;OACE,MAAM,oBAAC,oBAAD,EAAsB,CAAA;OAC5B,OAAO,EAAE,qBAAqB;OAC9B,eACE,UAAU,UAAU,UAAU,SAAS,QAAQ;OAClD;MACD;OACE,MAAM,oBAAC,kBAAD,EAAoB,CAAA;OAC1B,OAAO,EAAE,wBAAwB;OACjC,eACE,OAAO,KACL,eACE,SAAS,SACT,sBAAsB,SAAS,WAChC,EACD,SACD;OACJ;MACD;OACE,MAAM,oBAAC,eAAD,EAAiB,CAAA;OACvB,OAAO,EAAE,gBAAgB;OACzB,eAAe,eAAe,SAAS,QAAQ;OAChD;MACF;KACD,CAAA,CACO;MAnDI,SAAS,QAmDb,CACX,EACD,CAAC,UAAU,UACV,oBAAC,oBAAD;IAAoB,MAAM,oBAAC,UAAD,EAAU,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;cACzD,EAAE,mCAAmC;IACnB,CAAA,CAEA,EAAA,CAAA;GACzB,oBAAC,yBAAD,EAAA,UACE,oBAAC,QAAD;IAAQ,SAAQ;IAAY,SAAS;cAClC,EAAE,2BAA2B;IACvB,CAAA,EACe,CAAA;GAC1B,oBAAC,sBAAD;IACE,KAAK;IACL,eAAe;IACf,CAAA;GACgC"}
@@ -22,7 +22,7 @@ import { useTranslation } from "react-i18next";
22
22
  import History from "@mui/icons-material/History";
23
23
  import ContentCopyRounded from "@mui/icons-material/ContentCopyRounded";
24
24
  import OpenInNewRounded from "@mui/icons-material/OpenInNewRounded";
25
- import DeleteOutline from "@mui/icons-material/DeleteOutline";
25
+ import DeleteOutline from "@mui/icons-material/DeleteOutlined";
26
26
  import TurnedInNot from "@mui/icons-material/TurnedInNot";
27
27
  //#region src/pages/SendToWallet/RecentWalletsPage.tsx
28
28
  const RecentWalletsPage = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"RecentWalletsPage.js","names":["ListItem","ListItemButton"],"sources":["../../../../src/pages/SendToWallet/RecentWalletsPage.tsx"],"sourcesContent":["import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport DeleteOutline from '@mui/icons-material/DeleteOutline'\nimport History from '@mui/icons-material/History'\nimport OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'\nimport TurnedInNot from '@mui/icons-material/TurnedInNot'\nimport { ListItemAvatar, ListItemText } from '@mui/material'\nimport { useNavigate } from '@tanstack/react-router'\nimport { type JSX, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { AccountAvatar } from '../../components/Avatar/AccountAvatar.js'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { ContextMenu } from '../../components/ContextMenu.js'\nimport { ListItem } from '../../components/ListItem/ListItem.js'\nimport { ListItemButton } from '../../components/ListItem/ListItemButton.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\nimport type { Bookmark } from '../../stores/bookmarks/types.js'\nimport { useBookmarkActions } from '../../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { defaultChainIdsByType } from '../../utils/chainType.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { BookmarkAddressSheet } from './BookmarkAddressSheet.js'\nimport { EmptyListIndicator } from './EmptyListIndicator.js'\nimport {\n ListContainer,\n SendToWalletPageContainer,\n} from './SendToWalletPage.style.js'\n\nexport const RecentWalletsPage = (): JSX.Element => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const [bookmarkTarget, setBookmarkTarget] = useState<Bookmark>()\n const bookmarkAddressSheetRef = useRef<BottomSheetBase>(null)\n const { recentWallets } = useBookmarks()\n const { requiredToChainType } = useToAddressRequirements()\n const {\n removeRecentWallet,\n addBookmark,\n setSelectedBookmark,\n addRecentWallet,\n } = useBookmarkActions()\n const { setFieldValue } = useFieldActions()\n const { getAddressLink } = useExplorer()\n\n useHeader(t('header.recentWallets'))\n\n const handleRecentSelected = (recentWallet: Bookmark) => {\n addRecentWallet(recentWallet)\n setFieldValue('toAddress', recentWallet.address, {\n isTouched: true,\n isDirty: true,\n })\n setSelectedBookmark(recentWallet)\n navigate({\n to: navigationRoutes.home,\n replace: true,\n })\n }\n\n const handleAddBookmark = (bookmark: Bookmark) => {\n addBookmark(bookmark)\n navigate({ to: navigationRoutes.bookmarks, replace: true })\n }\n\n return (\n <SendToWalletPageContainer disableGutters>\n <ListContainer>\n {recentWallets.map((recentWallet) => (\n <ListItem key={recentWallet.address} sx={{ position: 'relative' }}>\n <ListItemButton\n disabled={\n requiredToChainType &&\n requiredToChainType !== recentWallet.chainType\n }\n onClick={() => handleRecentSelected(recentWallet)}\n >\n <ListItemAvatar>\n <AccountAvatar\n chainId={defaultChainIdsByType[recentWallet.chainType]}\n />\n </ListItemAvatar>\n <ListItemText\n primary={\n recentWallet.name || shortenAddress(recentWallet.address)\n }\n secondary={\n recentWallet.name\n ? shortenAddress(recentWallet.address)\n : undefined\n }\n />\n </ListItemButton>\n <ContextMenu\n disabled={\n !!(\n requiredToChainType &&\n requiredToChainType !== recentWallet.chainType\n )\n }\n items={[\n {\n icon: <ContentCopyRounded />,\n label: t('button.copyAddress'),\n onClick: () =>\n navigator.clipboard.writeText(recentWallet.address),\n },\n {\n icon: <OpenInNewRounded />,\n label: t('button.viewOnExplorer'),\n onClick: () =>\n window.open(\n getAddressLink(\n recentWallet.address,\n defaultChainIdsByType[recentWallet.chainType]\n ),\n '_blank'\n ),\n },\n {\n icon: <TurnedInNot />,\n label: t('button.bookmark'),\n onClick: () => {\n setBookmarkTarget(recentWallet)\n bookmarkAddressSheetRef.current?.open()\n },\n },\n {\n icon: <DeleteOutline />,\n label: t('button.delete'),\n onClick: () => removeRecentWallet(recentWallet.address),\n },\n ]}\n />\n </ListItem>\n ))}\n {!recentWallets.length && (\n <EmptyListIndicator icon={<History sx={{ fontSize: 48 }} />}>\n {t('sendToWallet.noRecentWallets')}\n </EmptyListIndicator>\n )}\n </ListContainer>\n <BookmarkAddressSheet\n ref={bookmarkAddressSheetRef}\n validatedWallet={bookmarkTarget}\n onAddBookmark={handleAddBookmark}\n />\n </SendToWalletPageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,0BAAuC;CAClD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,CAAC,gBAAgB,qBAAqB,UAAoB;CAChE,MAAM,0BAA0B,OAAwB,KAAK;CAC7D,MAAM,EAAE,kBAAkB,cAAc;CACxC,MAAM,EAAE,wBAAwB,0BAA0B;CAC1D,MAAM,EACJ,oBACA,aACA,qBACA,oBACE,oBAAoB;CACxB,MAAM,EAAE,kBAAkB,iBAAiB;CAC3C,MAAM,EAAE,mBAAmB,aAAa;AAExC,WAAU,EAAE,uBAAuB,CAAC;CAEpC,MAAM,wBAAwB,iBAA2B;AACvD,kBAAgB,aAAa;AAC7B,gBAAc,aAAa,aAAa,SAAS;GAC/C,WAAW;GACX,SAAS;GACV,CAAC;AACF,sBAAoB,aAAa;AACjC,WAAS;GACP,IAAI,iBAAiB;GACrB,SAAS;GACV,CAAC;;CAGJ,MAAM,qBAAqB,aAAuB;AAChD,cAAY,SAAS;AACrB,WAAS;GAAE,IAAI,iBAAiB;GAAW,SAAS;GAAM,CAAC;;AAG7D,QACE,qBAAC,2BAAD;EAA2B,gBAAA;YAA3B,CACE,qBAAC,eAAD,EAAA,UAAA,CACG,cAAc,KAAK,iBAClB,qBAACA,YAAD;GAAqC,IAAI,EAAE,UAAU,YAAY;aAAjE,CACE,qBAACC,kBAAD;IACE,UACE,uBACA,wBAAwB,aAAa;IAEvC,eAAe,qBAAqB,aAAa;cALnD,CAOE,oBAAC,gBAAD,EAAA,UACE,oBAAC,eAAD,EACE,SAAS,sBAAsB,aAAa,YAC5C,CAAA,EACa,CAAA,EACjB,oBAAC,cAAD;KACE,SACE,aAAa,QAAQ,eAAe,aAAa,QAAQ;KAE3D,WACE,aAAa,OACT,eAAe,aAAa,QAAQ,GACpC,KAAA;KAEN,CAAA,CACa;OACjB,oBAAC,aAAD;IACE,UACE,CAAC,EACC,uBACA,wBAAwB,aAAa;IAGzC,OAAO;KACL;MACE,MAAM,oBAAC,oBAAD,EAAsB,CAAA;MAC5B,OAAO,EAAE,qBAAqB;MAC9B,eACE,UAAU,UAAU,UAAU,aAAa,QAAQ;MACtD;KACD;MACE,MAAM,oBAAC,kBAAD,EAAoB,CAAA;MAC1B,OAAO,EAAE,wBAAwB;MACjC,eACE,OAAO,KACL,eACE,aAAa,SACb,sBAAsB,aAAa,WACpC,EACD,SACD;MACJ;KACD;MACE,MAAM,oBAAC,aAAD,EAAe,CAAA;MACrB,OAAO,EAAE,kBAAkB;MAC3B,eAAe;AACb,yBAAkB,aAAa;AAC/B,+BAAwB,SAAS,MAAM;;MAE1C;KACD;MACE,MAAM,oBAAC,eAAD,EAAiB,CAAA;MACvB,OAAO,EAAE,gBAAgB;MACzB,eAAe,mBAAmB,aAAa,QAAQ;MACxD;KACF;IACD,CAAA,CACO;KAjEI,aAAa,QAiEjB,CACX,EACD,CAAC,cAAc,UACd,oBAAC,oBAAD;GAAoB,MAAM,oBAAC,SAAD,EAAS,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;aACxD,EAAE,+BAA+B;GACf,CAAA,CAET,EAAA,CAAA,EAChB,oBAAC,sBAAD;GACE,KAAK;GACL,iBAAiB;GACjB,eAAe;GACf,CAAA,CACwB"}
1
+ {"version":3,"file":"RecentWalletsPage.js","names":["ListItem","ListItemButton"],"sources":["../../../../src/pages/SendToWallet/RecentWalletsPage.tsx"],"sourcesContent":["import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport DeleteOutline from '@mui/icons-material/DeleteOutlined'\nimport History from '@mui/icons-material/History'\nimport OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'\nimport TurnedInNot from '@mui/icons-material/TurnedInNot'\nimport { ListItemAvatar, ListItemText } from '@mui/material'\nimport { useNavigate } from '@tanstack/react-router'\nimport { type JSX, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { AccountAvatar } from '../../components/Avatar/AccountAvatar.js'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { ContextMenu } from '../../components/ContextMenu.js'\nimport { ListItem } from '../../components/ListItem/ListItem.js'\nimport { ListItemButton } from '../../components/ListItem/ListItemButton.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\nimport type { Bookmark } from '../../stores/bookmarks/types.js'\nimport { useBookmarkActions } from '../../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { defaultChainIdsByType } from '../../utils/chainType.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { shortenAddress } from '../../utils/wallet.js'\nimport { BookmarkAddressSheet } from './BookmarkAddressSheet.js'\nimport { EmptyListIndicator } from './EmptyListIndicator.js'\nimport {\n ListContainer,\n SendToWalletPageContainer,\n} from './SendToWalletPage.style.js'\n\nexport const RecentWalletsPage = (): JSX.Element => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const [bookmarkTarget, setBookmarkTarget] = useState<Bookmark>()\n const bookmarkAddressSheetRef = useRef<BottomSheetBase>(null)\n const { recentWallets } = useBookmarks()\n const { requiredToChainType } = useToAddressRequirements()\n const {\n removeRecentWallet,\n addBookmark,\n setSelectedBookmark,\n addRecentWallet,\n } = useBookmarkActions()\n const { setFieldValue } = useFieldActions()\n const { getAddressLink } = useExplorer()\n\n useHeader(t('header.recentWallets'))\n\n const handleRecentSelected = (recentWallet: Bookmark) => {\n addRecentWallet(recentWallet)\n setFieldValue('toAddress', recentWallet.address, {\n isTouched: true,\n isDirty: true,\n })\n setSelectedBookmark(recentWallet)\n navigate({\n to: navigationRoutes.home,\n replace: true,\n })\n }\n\n const handleAddBookmark = (bookmark: Bookmark) => {\n addBookmark(bookmark)\n navigate({ to: navigationRoutes.bookmarks, replace: true })\n }\n\n return (\n <SendToWalletPageContainer disableGutters>\n <ListContainer>\n {recentWallets.map((recentWallet) => (\n <ListItem key={recentWallet.address} sx={{ position: 'relative' }}>\n <ListItemButton\n disabled={\n requiredToChainType &&\n requiredToChainType !== recentWallet.chainType\n }\n onClick={() => handleRecentSelected(recentWallet)}\n >\n <ListItemAvatar>\n <AccountAvatar\n chainId={defaultChainIdsByType[recentWallet.chainType]}\n />\n </ListItemAvatar>\n <ListItemText\n primary={\n recentWallet.name || shortenAddress(recentWallet.address)\n }\n secondary={\n recentWallet.name\n ? shortenAddress(recentWallet.address)\n : undefined\n }\n />\n </ListItemButton>\n <ContextMenu\n disabled={\n !!(\n requiredToChainType &&\n requiredToChainType !== recentWallet.chainType\n )\n }\n items={[\n {\n icon: <ContentCopyRounded />,\n label: t('button.copyAddress'),\n onClick: () =>\n navigator.clipboard.writeText(recentWallet.address),\n },\n {\n icon: <OpenInNewRounded />,\n label: t('button.viewOnExplorer'),\n onClick: () =>\n window.open(\n getAddressLink(\n recentWallet.address,\n defaultChainIdsByType[recentWallet.chainType]\n ),\n '_blank'\n ),\n },\n {\n icon: <TurnedInNot />,\n label: t('button.bookmark'),\n onClick: () => {\n setBookmarkTarget(recentWallet)\n bookmarkAddressSheetRef.current?.open()\n },\n },\n {\n icon: <DeleteOutline />,\n label: t('button.delete'),\n onClick: () => removeRecentWallet(recentWallet.address),\n },\n ]}\n />\n </ListItem>\n ))}\n {!recentWallets.length && (\n <EmptyListIndicator icon={<History sx={{ fontSize: 48 }} />}>\n {t('sendToWallet.noRecentWallets')}\n </EmptyListIndicator>\n )}\n </ListContainer>\n <BookmarkAddressSheet\n ref={bookmarkAddressSheetRef}\n validatedWallet={bookmarkTarget}\n onAddBookmark={handleAddBookmark}\n />\n </SendToWalletPageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,0BAAuC;CAClD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,CAAC,gBAAgB,qBAAqB,UAAoB;CAChE,MAAM,0BAA0B,OAAwB,KAAK;CAC7D,MAAM,EAAE,kBAAkB,cAAc;CACxC,MAAM,EAAE,wBAAwB,0BAA0B;CAC1D,MAAM,EACJ,oBACA,aACA,qBACA,oBACE,oBAAoB;CACxB,MAAM,EAAE,kBAAkB,iBAAiB;CAC3C,MAAM,EAAE,mBAAmB,aAAa;AAExC,WAAU,EAAE,uBAAuB,CAAC;CAEpC,MAAM,wBAAwB,iBAA2B;AACvD,kBAAgB,aAAa;AAC7B,gBAAc,aAAa,aAAa,SAAS;GAC/C,WAAW;GACX,SAAS;GACV,CAAC;AACF,sBAAoB,aAAa;AACjC,WAAS;GACP,IAAI,iBAAiB;GACrB,SAAS;GACV,CAAC;;CAGJ,MAAM,qBAAqB,aAAuB;AAChD,cAAY,SAAS;AACrB,WAAS;GAAE,IAAI,iBAAiB;GAAW,SAAS;GAAM,CAAC;;AAG7D,QACE,qBAAC,2BAAD;EAA2B,gBAAA;YAA3B,CACE,qBAAC,eAAD,EAAA,UAAA,CACG,cAAc,KAAK,iBAClB,qBAACA,YAAD;GAAqC,IAAI,EAAE,UAAU,YAAY;aAAjE,CACE,qBAACC,kBAAD;IACE,UACE,uBACA,wBAAwB,aAAa;IAEvC,eAAe,qBAAqB,aAAa;cALnD,CAOE,oBAAC,gBAAD,EAAA,UACE,oBAAC,eAAD,EACE,SAAS,sBAAsB,aAAa,YAC5C,CAAA,EACa,CAAA,EACjB,oBAAC,cAAD;KACE,SACE,aAAa,QAAQ,eAAe,aAAa,QAAQ;KAE3D,WACE,aAAa,OACT,eAAe,aAAa,QAAQ,GACpC,KAAA;KAEN,CAAA,CACa;OACjB,oBAAC,aAAD;IACE,UACE,CAAC,EACC,uBACA,wBAAwB,aAAa;IAGzC,OAAO;KACL;MACE,MAAM,oBAAC,oBAAD,EAAsB,CAAA;MAC5B,OAAO,EAAE,qBAAqB;MAC9B,eACE,UAAU,UAAU,UAAU,aAAa,QAAQ;MACtD;KACD;MACE,MAAM,oBAAC,kBAAD,EAAoB,CAAA;MAC1B,OAAO,EAAE,wBAAwB;MACjC,eACE,OAAO,KACL,eACE,aAAa,SACb,sBAAsB,aAAa,WACpC,EACD,SACD;MACJ;KACD;MACE,MAAM,oBAAC,aAAD,EAAe,CAAA;MACrB,OAAO,EAAE,kBAAkB;MAC3B,eAAe;AACb,yBAAkB,aAAa;AAC/B,+BAAwB,SAAS,MAAM;;MAE1C;KACD;MACE,MAAM,oBAAC,eAAD,EAAiB,CAAA;MACvB,OAAO,EAAE,gBAAgB;MACzB,eAAe,mBAAmB,aAAa,QAAQ;MACxD;KACF;IACD,CAAA,CACO;KAjEI,aAAa,QAiEjB,CACX,EACD,CAAC,cAAc,UACd,oBAAC,oBAAD;GAAoB,MAAM,oBAAC,SAAD,EAAS,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;aACxD,EAAE,+BAA+B;GACf,CAAA,CAET,EAAA,CAAA,EAChB,oBAAC,sBAAD;GACE,KAAK;GACL,iBAAiB;GACjB,eAAe;GACf,CAAA,CACwB"}
@@ -1,5 +1,5 @@
1
1
  import { useWidgetConfig } from "../../providers/WidgetProvider/WidgetProvider.js";
2
- import { HiddenUI, RequiredUI } from "../../types/widget.js";
2
+ import "../../types/widget.js";
3
3
  import { navigationRoutes } from "../../utils/navigationRoutes.js";
4
4
  import { useFieldValues } from "../../stores/form/useFieldValues.js";
5
5
  import { useBookmarkActions } from "../../stores/bookmarks/useBookmarkActions.js";
@@ -7,7 +7,7 @@ import { useBookmarks } from "../../stores/bookmarks/useBookmarks.js";
7
7
  import { useFieldActions } from "../../stores/form/useFieldActions.js";
8
8
  import { useChain } from "../../hooks/useChain.js";
9
9
  import { useToAddressRequirements } from "../../hooks/useToAddressRequirements.js";
10
- import { AddressType, useAddressValidation } from "../../hooks/useAddressValidation.js";
10
+ import { useAddressValidation } from "../../hooks/useAddressValidation.js";
11
11
  import { useHeader } from "../../hooks/useHeader.js";
12
12
  import { ButtonTertiary } from "../../components/ButtonTertiary.js";
13
13
  import { AccountDeployedMessage } from "../../components/Messages/AccountDeployedMessage.js";
@@ -77,7 +77,7 @@ const SendToWalletPage = () => {
77
77
  return;
78
78
  }
79
79
  setValidatedWallet({
80
- name: validationResult.addressType === AddressType.NameService ? inputAddressValue : void 0,
80
+ name: validationResult.addressType === 1 ? inputAddressValue : void 0,
81
81
  address: validationResult.address,
82
82
  chainType: validationResult.chainType
83
83
  });
@@ -99,7 +99,7 @@ const SendToWalletPage = () => {
99
99
  setIsBookmarkButtonLoading(false);
100
100
  if (validationResult.isValid) {
101
101
  setValidatedWallet({
102
- name: validationResult.addressType === AddressType.NameService ? inputAddressValue : void 0,
102
+ name: validationResult.addressType === 1 ? inputAddressValue : void 0,
103
103
  address: validationResult.address,
104
104
  chainType: validationResult.chainType
105
105
  });
@@ -192,7 +192,7 @@ const SendToWalletPage = () => {
192
192
  onAddBookmark: handleAddBookmark
193
193
  })
194
194
  ]
195
- }), requiredUI?.includes(RequiredUI.AccountDeployedMessage) && /* @__PURE__ */ jsx(AccountDeployedMessage, {})]
195
+ }), requiredUI?.includes("accountDeployedMessage") && /* @__PURE__ */ jsx(AccountDeployedMessage, {})]
196
196
  }), /* @__PURE__ */ jsxs(Box, {
197
197
  sx: {
198
198
  display: "flex",
@@ -209,7 +209,7 @@ const SendToWalletPage = () => {
209
209
  children: recentWallets.length
210
210
  })
211
211
  }),
212
- !hiddenUI?.includes(HiddenUI.AddressBookConnectedWallets) && /* @__PURE__ */ jsx(CardButton, {
212
+ !hiddenUI?.includes("addressBookConnectedWallets") && /* @__PURE__ */ jsx(CardButton, {
213
213
  title: t("sendToWallet.connectedWallets"),
214
214
  icon: /* @__PURE__ */ jsx(Wallet, {}),
215
215
  onClick: handleConnectedWalletsClick,
@@ -1 +1 @@
1
- {"version":3,"file":"SendToWalletPage.js","names":[],"sources":["../../../../src/pages/SendToWallet/SendToWalletPage.tsx"],"sourcesContent":["import { useAccount } from '@lifi/wallet-management'\nimport ErrorIcon from '@mui/icons-material/Error'\nimport History from '@mui/icons-material/History'\nimport TurnedIn from '@mui/icons-material/TurnedIn'\nimport Wallet from '@mui/icons-material/Wallet'\nimport { Box, Tooltip, Typography } from '@mui/material'\nimport { useNavigate } from '@tanstack/react-router'\nimport type { ChangeEvent } from 'react'\nimport { useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { ButtonTertiary } from '../../components/ButtonTertiary.js'\nimport { CardButton } from '../../components/Card/CardButton.js'\nimport { AccountDeployedMessage } from '../../components/Messages/AccountDeployedMessage.js'\nimport {\n AddressType,\n useAddressValidation,\n} from '../../hooks/useAddressValidation.js'\nimport { useChain } from '../../hooks/useChain.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { Bookmark } from '../../stores/bookmarks/types.js'\nimport { useBookmarkActions } from '../../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { useFieldValues } from '../../stores/form/useFieldValues.js'\nimport { HiddenUI, RequiredUI } from '../../types/widget.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { BookmarkAddressSheet } from './BookmarkAddressSheet.js'\nimport { ConfirmAddressSheet } from './ConfirmAddressSheet.js'\nimport {\n AddressInput,\n FullHeightAdjustablePageContainer,\n SendToWalletButtonRow,\n SendToWalletCard,\n SendToWalletIconButton,\n ValidationAlert,\n} from './SendToWalletPage.style.js'\n\nexport const SendToWalletPage: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const bookmarkAddressSheetRef = useRef<BottomSheetBase>(null)\n const confirmAddressSheetRef = useRef<BottomSheetBase>(null)\n const { bookmarks, recentWallets } = useBookmarks()\n const {\n addBookmark,\n getBookmark,\n setSelectedBookmark,\n getSelectedBookmark,\n addRecentWallet,\n } = useBookmarkActions()\n const { setFieldValue } = useFieldActions()\n const [inputAddressValue, setInputAddressValue] = useState(\n () => getSelectedBookmark()?.address ?? ''\n )\n const [validatedWallet, setValidatedWallet] = useState<Bookmark>()\n const [errorMessage, setErrorMessage] = useState('')\n const { validateAddress, isValidating } = useAddressValidation()\n const { requiredToChainType } = useToAddressRequirements()\n const [toChainId] = useFieldValues('toChain')\n const { chain: toChain } = useChain(toChainId)\n const [isDoneButtonLoading, setIsDoneButtonLoading] = useState(false)\n const [isBookmarkButtonLoading, setIsBookmarkButtonLoading] = useState(false)\n const { variant, hiddenUI, requiredUI } = useWidgetConfig()\n\n const { accounts } = useAccount()\n const connectedWallets = accounts.filter((account) => account.isConnected)\n\n useHeader(t('header.sendToWallet'))\n\n const handleInputChange = (e: ChangeEvent) => {\n if (errorMessage) {\n setErrorMessage('')\n }\n if (getSelectedBookmark()) {\n setFieldValue('toAddress', '', { isTouched: true })\n setSelectedBookmark()\n }\n setInputAddressValue((e.target as HTMLInputElement).value.trim())\n }\n\n const handleDone = async () => {\n if (isValidating) {\n return\n }\n if (!inputAddressValue) {\n setErrorMessage(t('error.title.walletAddressRequired'))\n return\n }\n setIsDoneButtonLoading(true)\n const validationResult = await validateAddress({\n value: inputAddressValue,\n chainType: requiredToChainType,\n chain: toChain,\n })\n setIsDoneButtonLoading(false)\n if (!validationResult.isValid) {\n setErrorMessage(validationResult.error)\n return\n }\n\n if (\n requiredToChainType &&\n requiredToChainType !== validationResult.chainType\n ) {\n setErrorMessage(\n t('error.title.walletChainTypeInvalid', {\n chainName: toChain?.name,\n })\n )\n return\n }\n\n setValidatedWallet({\n name:\n validationResult.addressType === AddressType.NameService\n ? inputAddressValue\n : undefined,\n address: validationResult.address,\n chainType: validationResult.chainType,\n })\n confirmAddressSheetRef.current?.open()\n }\n\n const handleBookmarkAddress = async () => {\n if (isValidating) {\n return\n }\n if (!inputAddressValue) {\n setErrorMessage(t('error.title.walletAddressRequired'))\n return\n }\n\n const existingBookmarkWallet = getBookmark(inputAddressValue)\n if (existingBookmarkWallet) {\n setErrorMessage(\n t('error.title.bookmarkAlreadyExists', {\n name: existingBookmarkWallet.name,\n })\n )\n return\n }\n setIsBookmarkButtonLoading(true)\n const validationResult = await validateAddress({\n value: inputAddressValue,\n })\n setIsBookmarkButtonLoading(false)\n\n if (validationResult.isValid) {\n setValidatedWallet({\n name:\n validationResult.addressType === AddressType.NameService\n ? inputAddressValue\n : undefined,\n address: validationResult.address,\n chainType: validationResult.chainType,\n })\n bookmarkAddressSheetRef.current?.open()\n } else {\n setErrorMessage(validationResult.error)\n }\n }\n\n const handleRecentWalletsClick = () => {\n navigate({ to: navigationRoutes.recentWallets })\n }\n\n const handleConnectedWalletsClick = () => {\n navigate({ to: navigationRoutes.connectedWallets })\n }\n const handleBookmarkedWalletsClick = () => {\n navigate({ to: navigationRoutes.bookmarks })\n }\n\n const handleAddBookmark = (bookmark: Bookmark) => {\n addBookmark(bookmark)\n navigate({ to: navigationRoutes.bookmarks })\n }\n\n const handleOnConfirm = (confirmedWallet: Bookmark) => {\n setSelectedBookmark(confirmedWallet)\n addRecentWallet(confirmedWallet)\n }\n\n const placeholder = t('sendToWallet.enterAddress', {\n context: 'long',\n })\n\n return (\n <FullHeightAdjustablePageContainer\n bottomGutters\n enableFullHeight={variant !== 'drawer'}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n marginBottom: 6,\n }}\n >\n <SendToWalletCard type={errorMessage ? 'error' : 'default'}>\n <AddressInput\n size=\"small\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n onChange={handleInputChange}\n value={inputAddressValue}\n placeholder={placeholder}\n aria-label={placeholder}\n maxRows={2}\n inputProps={{ maxLength: 128 }}\n multiline\n />\n {errorMessage ? (\n <ValidationAlert icon={<ErrorIcon />} sx={{ pb: 2, paddingX: 2 }}>\n {errorMessage}\n </ValidationAlert>\n ) : null}\n <SendToWalletButtonRow sx={{ paddingX: 2, paddingBottom: 2 }}>\n <ButtonTertiary\n variant=\"text\"\n onClick={handleDone}\n loading={isDoneButtonLoading}\n loadingPosition=\"center\"\n sx={{ flexGrow: 1 }}\n >\n {t('button.done')}\n </ButtonTertiary>\n <Tooltip title={t('button.bookmark')}>\n <SendToWalletIconButton\n onClick={handleBookmarkAddress}\n loading={isBookmarkButtonLoading}\n loadingPosition=\"center\"\n >\n <TurnedIn fontSize=\"small\" />\n </SendToWalletIconButton>\n </Tooltip>\n </SendToWalletButtonRow>\n <ConfirmAddressSheet\n ref={confirmAddressSheetRef}\n validatedBookmark={validatedWallet}\n onConfirm={handleOnConfirm}\n />\n <BookmarkAddressSheet\n ref={bookmarkAddressSheetRef}\n validatedWallet={validatedWallet}\n onAddBookmark={handleAddBookmark}\n />\n </SendToWalletCard>\n {requiredUI?.includes(RequiredUI.AccountDeployedMessage) && (\n <AccountDeployedMessage />\n )}\n </Box>\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n <CardButton\n title={t('header.recentWallets')}\n icon={<History />}\n onClick={handleRecentWalletsClick}\n >\n {!!recentWallets.length && (\n <Typography\n sx={{\n color: 'text.secondary',\n }}\n >\n {recentWallets.length}\n </Typography>\n )}\n </CardButton>\n {!hiddenUI?.includes(HiddenUI.AddressBookConnectedWallets) && (\n <CardButton\n title={t('sendToWallet.connectedWallets')}\n icon={<Wallet />}\n onClick={handleConnectedWalletsClick}\n >\n {!!connectedWallets.length && (\n <Typography\n sx={{\n color: 'text.secondary',\n }}\n >\n {connectedWallets.length}\n </Typography>\n )}\n </CardButton>\n )}\n <CardButton\n title={t('header.bookmarkedWallets')}\n icon={<TurnedIn />}\n onClick={handleBookmarkedWalletsClick}\n >\n {!!bookmarks.length && (\n <Typography\n sx={{\n color: 'text.secondary',\n }}\n >\n {bookmarks.length}\n </Typography>\n )}\n </CardButton>\n </Box>\n </FullHeightAdjustablePageContainer>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SendToWalletPage.js","names":[],"sources":["../../../../src/pages/SendToWallet/SendToWalletPage.tsx"],"sourcesContent":["import { useAccount } from '@lifi/wallet-management'\nimport ErrorIcon from '@mui/icons-material/Error'\nimport History from '@mui/icons-material/History'\nimport TurnedIn from '@mui/icons-material/TurnedIn'\nimport Wallet from '@mui/icons-material/Wallet'\nimport { Box, Tooltip, Typography } from '@mui/material'\nimport { useNavigate } from '@tanstack/react-router'\nimport type { ChangeEvent } from 'react'\nimport { useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { ButtonTertiary } from '../../components/ButtonTertiary.js'\nimport { CardButton } from '../../components/Card/CardButton.js'\nimport { AccountDeployedMessage } from '../../components/Messages/AccountDeployedMessage.js'\nimport {\n AddressType,\n useAddressValidation,\n} from '../../hooks/useAddressValidation.js'\nimport { useChain } from '../../hooks/useChain.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { Bookmark } from '../../stores/bookmarks/types.js'\nimport { useBookmarkActions } from '../../stores/bookmarks/useBookmarkActions.js'\nimport { useBookmarks } from '../../stores/bookmarks/useBookmarks.js'\nimport { useFieldActions } from '../../stores/form/useFieldActions.js'\nimport { useFieldValues } from '../../stores/form/useFieldValues.js'\nimport { HiddenUI, RequiredUI } from '../../types/widget.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { BookmarkAddressSheet } from './BookmarkAddressSheet.js'\nimport { ConfirmAddressSheet } from './ConfirmAddressSheet.js'\nimport {\n AddressInput,\n FullHeightAdjustablePageContainer,\n SendToWalletButtonRow,\n SendToWalletCard,\n SendToWalletIconButton,\n ValidationAlert,\n} from './SendToWalletPage.style.js'\n\nexport const SendToWalletPage: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const bookmarkAddressSheetRef = useRef<BottomSheetBase>(null)\n const confirmAddressSheetRef = useRef<BottomSheetBase>(null)\n const { bookmarks, recentWallets } = useBookmarks()\n const {\n addBookmark,\n getBookmark,\n setSelectedBookmark,\n getSelectedBookmark,\n addRecentWallet,\n } = useBookmarkActions()\n const { setFieldValue } = useFieldActions()\n const [inputAddressValue, setInputAddressValue] = useState(\n () => getSelectedBookmark()?.address ?? ''\n )\n const [validatedWallet, setValidatedWallet] = useState<Bookmark>()\n const [errorMessage, setErrorMessage] = useState('')\n const { validateAddress, isValidating } = useAddressValidation()\n const { requiredToChainType } = useToAddressRequirements()\n const [toChainId] = useFieldValues('toChain')\n const { chain: toChain } = useChain(toChainId)\n const [isDoneButtonLoading, setIsDoneButtonLoading] = useState(false)\n const [isBookmarkButtonLoading, setIsBookmarkButtonLoading] = useState(false)\n const { variant, hiddenUI, requiredUI } = useWidgetConfig()\n\n const { accounts } = useAccount()\n const connectedWallets = accounts.filter((account) => account.isConnected)\n\n useHeader(t('header.sendToWallet'))\n\n const handleInputChange = (e: ChangeEvent) => {\n if (errorMessage) {\n setErrorMessage('')\n }\n if (getSelectedBookmark()) {\n setFieldValue('toAddress', '', { isTouched: true })\n setSelectedBookmark()\n }\n setInputAddressValue((e.target as HTMLInputElement).value.trim())\n }\n\n const handleDone = async () => {\n if (isValidating) {\n return\n }\n if (!inputAddressValue) {\n setErrorMessage(t('error.title.walletAddressRequired'))\n return\n }\n setIsDoneButtonLoading(true)\n const validationResult = await validateAddress({\n value: inputAddressValue,\n chainType: requiredToChainType,\n chain: toChain,\n })\n setIsDoneButtonLoading(false)\n if (!validationResult.isValid) {\n setErrorMessage(validationResult.error)\n return\n }\n\n if (\n requiredToChainType &&\n requiredToChainType !== validationResult.chainType\n ) {\n setErrorMessage(\n t('error.title.walletChainTypeInvalid', {\n chainName: toChain?.name,\n })\n )\n return\n }\n\n setValidatedWallet({\n name:\n validationResult.addressType === AddressType.NameService\n ? inputAddressValue\n : undefined,\n address: validationResult.address,\n chainType: validationResult.chainType,\n })\n confirmAddressSheetRef.current?.open()\n }\n\n const handleBookmarkAddress = async () => {\n if (isValidating) {\n return\n }\n if (!inputAddressValue) {\n setErrorMessage(t('error.title.walletAddressRequired'))\n return\n }\n\n const existingBookmarkWallet = getBookmark(inputAddressValue)\n if (existingBookmarkWallet) {\n setErrorMessage(\n t('error.title.bookmarkAlreadyExists', {\n name: existingBookmarkWallet.name,\n })\n )\n return\n }\n setIsBookmarkButtonLoading(true)\n const validationResult = await validateAddress({\n value: inputAddressValue,\n })\n setIsBookmarkButtonLoading(false)\n\n if (validationResult.isValid) {\n setValidatedWallet({\n name:\n validationResult.addressType === AddressType.NameService\n ? inputAddressValue\n : undefined,\n address: validationResult.address,\n chainType: validationResult.chainType,\n })\n bookmarkAddressSheetRef.current?.open()\n } else {\n setErrorMessage(validationResult.error)\n }\n }\n\n const handleRecentWalletsClick = () => {\n navigate({ to: navigationRoutes.recentWallets })\n }\n\n const handleConnectedWalletsClick = () => {\n navigate({ to: navigationRoutes.connectedWallets })\n }\n const handleBookmarkedWalletsClick = () => {\n navigate({ to: navigationRoutes.bookmarks })\n }\n\n const handleAddBookmark = (bookmark: Bookmark) => {\n addBookmark(bookmark)\n navigate({ to: navigationRoutes.bookmarks })\n }\n\n const handleOnConfirm = (confirmedWallet: Bookmark) => {\n setSelectedBookmark(confirmedWallet)\n addRecentWallet(confirmedWallet)\n }\n\n const placeholder = t('sendToWallet.enterAddress', {\n context: 'long',\n })\n\n return (\n <FullHeightAdjustablePageContainer\n bottomGutters\n enableFullHeight={variant !== 'drawer'}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n marginBottom: 6,\n }}\n >\n <SendToWalletCard type={errorMessage ? 'error' : 'default'}>\n <AddressInput\n size=\"small\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n onChange={handleInputChange}\n value={inputAddressValue}\n placeholder={placeholder}\n aria-label={placeholder}\n maxRows={2}\n inputProps={{ maxLength: 128 }}\n multiline\n />\n {errorMessage ? (\n <ValidationAlert icon={<ErrorIcon />} sx={{ pb: 2, paddingX: 2 }}>\n {errorMessage}\n </ValidationAlert>\n ) : null}\n <SendToWalletButtonRow sx={{ paddingX: 2, paddingBottom: 2 }}>\n <ButtonTertiary\n variant=\"text\"\n onClick={handleDone}\n loading={isDoneButtonLoading}\n loadingPosition=\"center\"\n sx={{ flexGrow: 1 }}\n >\n {t('button.done')}\n </ButtonTertiary>\n <Tooltip title={t('button.bookmark')}>\n <SendToWalletIconButton\n onClick={handleBookmarkAddress}\n loading={isBookmarkButtonLoading}\n loadingPosition=\"center\"\n >\n <TurnedIn fontSize=\"small\" />\n </SendToWalletIconButton>\n </Tooltip>\n </SendToWalletButtonRow>\n <ConfirmAddressSheet\n ref={confirmAddressSheetRef}\n validatedBookmark={validatedWallet}\n onConfirm={handleOnConfirm}\n />\n <BookmarkAddressSheet\n ref={bookmarkAddressSheetRef}\n validatedWallet={validatedWallet}\n onAddBookmark={handleAddBookmark}\n />\n </SendToWalletCard>\n {requiredUI?.includes(RequiredUI.AccountDeployedMessage) && (\n <AccountDeployedMessage />\n )}\n </Box>\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n <CardButton\n title={t('header.recentWallets')}\n icon={<History />}\n onClick={handleRecentWalletsClick}\n >\n {!!recentWallets.length && (\n <Typography\n sx={{\n color: 'text.secondary',\n }}\n >\n {recentWallets.length}\n </Typography>\n )}\n </CardButton>\n {!hiddenUI?.includes(HiddenUI.AddressBookConnectedWallets) && (\n <CardButton\n title={t('sendToWallet.connectedWallets')}\n icon={<Wallet />}\n onClick={handleConnectedWalletsClick}\n >\n {!!connectedWallets.length && (\n <Typography\n sx={{\n color: 'text.secondary',\n }}\n >\n {connectedWallets.length}\n </Typography>\n )}\n </CardButton>\n )}\n <CardButton\n title={t('header.bookmarkedWallets')}\n icon={<TurnedIn />}\n onClick={handleBookmarkedWalletsClick}\n >\n {!!bookmarks.length && (\n <Typography\n sx={{\n color: 'text.secondary',\n }}\n >\n {bookmarks.length}\n </Typography>\n )}\n </CardButton>\n </Box>\n </FullHeightAdjustablePageContainer>\n )\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useSettingsStore } from "../../stores/settings/SettingsStore.js";
2
2
  import { useWidgetConfig } from "../../providers/WidgetProvider/WidgetProvider.js";
3
- import { HiddenUI } from "../../types/widget.js";
3
+ import "../../types/widget.js";
4
4
  import { navigationRoutes } from "../../utils/navigationRoutes.js";
5
5
  import { useSettingMonitor } from "../../hooks/useSettingMonitor.js";
6
6
  import { CardButton } from "../../components/Card/CardButton.js";
@@ -24,7 +24,7 @@ const BridgeAndExchangeSettings = ({ type }) => {
24
24
  return [enabledTools.filter(Boolean).length, enabledTools.length];
25
25
  });
26
26
  const { hiddenUI } = useWidgetConfig();
27
- if (type === "Bridges" && hiddenUI?.includes(HiddenUI.BridgesSettings)) return null;
27
+ if (type === "Bridges" && hiddenUI?.includes("bridgesSettings")) return null;
28
28
  const customisationLookUp = {
29
29
  Bridges: isBridgesChanged,
30
30
  Exchanges: isExchangesChanged
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeAndExchangeSettings.js","names":[],"sources":["../../../../src/pages/SettingsPage/BridgeAndExchangeSettings.tsx"],"sourcesContent":["import AirlineStops from '@mui/icons-material/AirlineStops'\nimport SwapHoriz from '@mui/icons-material/SwapHoriz'\nimport { useNavigate } from '@tanstack/react-router'\nimport { useTranslation } from 'react-i18next'\nimport { CardButton } from '../../components/Card/CardButton.js'\nimport { useSettingMonitor } from '../../hooks/useSettingMonitor.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { useSettingsStore } from '../../stores/settings/SettingsStore.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { BadgedValue } from './SettingsCard/BadgedValue.js'\n\nconst supportedIcons = {\n Bridges: AirlineStops,\n Exchanges: SwapHoriz,\n}\n\nexport const BridgeAndExchangeSettings: React.FC<{\n type: 'Bridges' | 'Exchanges'\n}> = ({ type }) => {\n const { isBridgesChanged, isExchangesChanged } = useSettingMonitor()\n const { t } = useTranslation()\n const navigate = useNavigate()\n const [enabledTools, tools] = useSettingsStore((state) => {\n const enabledTools = Object.values(state[`_enabled${type}`])\n return [enabledTools.filter(Boolean).length, enabledTools.length]\n })\n\n const { hiddenUI } = useWidgetConfig()\n\n if (type === 'Bridges' && hiddenUI?.includes(HiddenUI.BridgesSettings)) {\n return null\n }\n\n const customisationLookUp = {\n Bridges: isBridgesChanged,\n Exchanges: isExchangesChanged,\n }\n\n const handleClick = () => {\n navigate({\n to: navigationRoutes[type.toLowerCase() as 'bridges' | 'exchanges'],\n })\n }\n\n const Icon = supportedIcons[type]\n\n return (\n <CardButton\n onClick={handleClick}\n icon={<Icon />}\n title={t(`settings.enabled${type}`)}\n >\n <BadgedValue\n badgeColor=\"info\"\n showBadge={customisationLookUp[type]}\n >{`${enabledTools}/${tools}`}</BadgedValue>\n </CardButton>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAM,iBAAiB;CACrB,SAAS;CACT,WAAW;CACZ;AAED,MAAa,6BAEP,EAAE,WAAW;CACjB,MAAM,EAAE,kBAAkB,uBAAuB,mBAAmB;CACpE,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,CAAC,cAAc,SAAS,kBAAkB,UAAU;EACxD,MAAM,eAAe,OAAO,OAAO,MAAM,WAAW,QAAQ;AAC5D,SAAO,CAAC,aAAa,OAAO,QAAQ,CAAC,QAAQ,aAAa,OAAO;GACjE;CAEF,MAAM,EAAE,aAAa,iBAAiB;AAEtC,KAAI,SAAS,aAAa,UAAU,SAAS,SAAS,gBAAgB,CACpE,QAAO;CAGT,MAAM,sBAAsB;EAC1B,SAAS;EACT,WAAW;EACZ;CAED,MAAM,oBAAoB;AACxB,WAAS,EACP,IAAI,iBAAiB,KAAK,aAAa,GACxC,CAAC;;CAGJ,MAAM,OAAO,eAAe;AAE5B,QACE,oBAAC,YAAD;EACE,SAAS;EACT,MAAM,oBAAC,MAAD,EAAQ,CAAA;EACd,OAAO,EAAE,mBAAmB,OAAO;YAEnC,oBAAC,aAAD;GACE,YAAW;GACX,WAAW,oBAAoB;aAC/B,GAAG,aAAa,GAAG;GAAsB,CAAA;EAChC,CAAA"}
1
+ {"version":3,"file":"BridgeAndExchangeSettings.js","names":[],"sources":["../../../../src/pages/SettingsPage/BridgeAndExchangeSettings.tsx"],"sourcesContent":["import AirlineStops from '@mui/icons-material/AirlineStops'\nimport SwapHoriz from '@mui/icons-material/SwapHoriz'\nimport { useNavigate } from '@tanstack/react-router'\nimport { useTranslation } from 'react-i18next'\nimport { CardButton } from '../../components/Card/CardButton.js'\nimport { useSettingMonitor } from '../../hooks/useSettingMonitor.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { useSettingsStore } from '../../stores/settings/SettingsStore.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { BadgedValue } from './SettingsCard/BadgedValue.js'\n\nconst supportedIcons = {\n Bridges: AirlineStops,\n Exchanges: SwapHoriz,\n}\n\nexport const BridgeAndExchangeSettings: React.FC<{\n type: 'Bridges' | 'Exchanges'\n}> = ({ type }) => {\n const { isBridgesChanged, isExchangesChanged } = useSettingMonitor()\n const { t } = useTranslation()\n const navigate = useNavigate()\n const [enabledTools, tools] = useSettingsStore((state) => {\n const enabledTools = Object.values(state[`_enabled${type}`])\n return [enabledTools.filter(Boolean).length, enabledTools.length]\n })\n\n const { hiddenUI } = useWidgetConfig()\n\n if (type === 'Bridges' && hiddenUI?.includes(HiddenUI.BridgesSettings)) {\n return null\n }\n\n const customisationLookUp = {\n Bridges: isBridgesChanged,\n Exchanges: isExchangesChanged,\n }\n\n const handleClick = () => {\n navigate({\n to: navigationRoutes[type.toLowerCase() as 'bridges' | 'exchanges'],\n })\n }\n\n const Icon = supportedIcons[type]\n\n return (\n <CardButton\n onClick={handleClick}\n icon={<Icon />}\n title={t(`settings.enabled${type}`)}\n >\n <BadgedValue\n badgeColor=\"info\"\n showBadge={customisationLookUp[type]}\n >{`${enabledTools}/${tools}`}</BadgedValue>\n </CardButton>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAM,iBAAiB;CACrB,SAAS;CACT,WAAW;CACZ;AAED,MAAa,6BAEP,EAAE,WAAW;CACjB,MAAM,EAAE,kBAAkB,uBAAuB,mBAAmB;CACpE,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,CAAC,cAAc,SAAS,kBAAkB,UAAU;EACxD,MAAM,eAAe,OAAO,OAAO,MAAM,WAAW,QAAQ;AAC5D,SAAO,CAAC,aAAa,OAAO,QAAQ,CAAC,QAAQ,aAAa,OAAO;GACjE;CAEF,MAAM,EAAE,aAAa,iBAAiB;AAEtC,KAAI,SAAS,aAAa,UAAU,SAAA,kBAAkC,CACpE,QAAO;CAGT,MAAM,sBAAsB;EAC1B,SAAS;EACT,WAAW;EACZ;CAED,MAAM,oBAAoB;AACxB,WAAS,EACP,IAAI,iBAAiB,KAAK,aAAa,GACxC,CAAC;;CAGJ,MAAM,OAAO,eAAe;AAE5B,QACE,oBAAC,YAAD;EACE,SAAS;EACT,MAAM,oBAAC,MAAD,EAAQ,CAAA;EACd,OAAO,EAAE,mBAAmB,OAAO;YAEnC,oBAAC,aAAD;GACE,YAAW;GACX,WAAW,oBAAoB;aAC/B,GAAG,aAAa,GAAG;GAAsB,CAAA;EAChC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { languageNames } from "../../providers/I18nProvider/constants.js";
2
2
  import { useWidgetConfig } from "../../providers/WidgetProvider/WidgetProvider.js";
3
- import { HiddenUI } from "../../types/widget.js";
3
+ import "../../types/widget.js";
4
4
  import { navigationRoutes } from "../../utils/navigationRoutes.js";
5
5
  import { useLanguages } from "../../hooks/useLanguages.js";
6
6
  import { CardValue } from "../../components/Card/CardButton.style.js";
@@ -15,7 +15,7 @@ const LanguageSetting = () => {
15
15
  const navigate = useNavigate();
16
16
  const { hiddenUI } = useWidgetConfig();
17
17
  const { selectedLanguageCode } = useLanguages();
18
- if (hiddenUI?.includes(HiddenUI.Language)) return null;
18
+ if (hiddenUI?.includes("language")) return null;
19
19
  const handleClick = () => {
20
20
  navigate({ to: navigationRoutes.languages });
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageSetting.js","names":[],"sources":["../../../../src/pages/SettingsPage/LanguageSetting.tsx"],"sourcesContent":["import Language from '@mui/icons-material/Language'\nimport { useNavigate } from '@tanstack/react-router'\nimport { useTranslation } from 'react-i18next'\nimport { CardButton } from '../../components/Card/CardButton.js'\nimport { CardValue } from '../../components/Card/CardButton.style.js'\nimport { useLanguages } from '../../hooks/useLanguages.js'\nimport { languageNames } from '../../providers/I18nProvider/constants.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\n\nexport const LanguageSetting: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const { hiddenUI } = useWidgetConfig()\n const { selectedLanguageCode } = useLanguages()\n\n if (hiddenUI?.includes(HiddenUI.Language)) {\n return null\n }\n\n const handleClick = () => {\n navigate({ to: navigationRoutes.languages })\n }\n\n return (\n <CardButton\n onClick={handleClick}\n icon={<Language />}\n title={t('language.title')}\n >\n <CardValue>\n {languageNames[selectedLanguageCode as keyof typeof languageNames] ||\n t('language.name', {\n lng: selectedLanguageCode,\n }) ||\n selectedLanguageCode}\n </CardValue>\n </CardButton>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,wBAAkC;CAC7C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,aAAa,iBAAiB;CACtC,MAAM,EAAE,yBAAyB,cAAc;AAE/C,KAAI,UAAU,SAAS,SAAS,SAAS,CACvC,QAAO;CAGT,MAAM,oBAAoB;AACxB,WAAS,EAAE,IAAI,iBAAiB,WAAW,CAAC;;AAG9C,QACE,oBAAC,YAAD;EACE,SAAS;EACT,MAAM,oBAAC,UAAD,EAAY,CAAA;EAClB,OAAO,EAAE,iBAAiB;YAE1B,oBAAC,WAAD,EAAA,UACG,cAAc,yBACb,EAAE,iBAAiB,EACjB,KAAK,sBACN,CAAC,IACF,sBACQ,CAAA;EACD,CAAA"}
1
+ {"version":3,"file":"LanguageSetting.js","names":[],"sources":["../../../../src/pages/SettingsPage/LanguageSetting.tsx"],"sourcesContent":["import Language from '@mui/icons-material/Language'\nimport { useNavigate } from '@tanstack/react-router'\nimport { useTranslation } from 'react-i18next'\nimport { CardButton } from '../../components/Card/CardButton.js'\nimport { CardValue } from '../../components/Card/CardButton.style.js'\nimport { useLanguages } from '../../hooks/useLanguages.js'\nimport { languageNames } from '../../providers/I18nProvider/constants.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\n\nexport const LanguageSetting: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const { hiddenUI } = useWidgetConfig()\n const { selectedLanguageCode } = useLanguages()\n\n if (hiddenUI?.includes(HiddenUI.Language)) {\n return null\n }\n\n const handleClick = () => {\n navigate({ to: navigationRoutes.languages })\n }\n\n return (\n <CardButton\n onClick={handleClick}\n icon={<Language />}\n title={t('language.title')}\n >\n <CardValue>\n {languageNames[selectedLanguageCode as keyof typeof languageNames] ||\n t('language.name', {\n lng: selectedLanguageCode,\n }) ||\n selectedLanguageCode}\n </CardValue>\n </CardButton>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,wBAAkC;CAC7C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,aAAa,iBAAiB;CACtC,MAAM,EAAE,yBAAyB,cAAc;AAE/C,KAAI,UAAU,SAAA,WAA2B,CACvC,QAAO;CAGT,MAAM,oBAAoB;AACxB,WAAS,EAAE,IAAI,iBAAiB,WAAW,CAAC;;AAG9C,QACE,oBAAC,YAAD;EACE,SAAS;EACT,MAAM,oBAAC,UAAD,EAAY,CAAA;EAClB,OAAO,EAAE,iBAAiB;YAE1B,oBAAC,WAAD,EAAA,UACG,cAAc,yBACb,EAAE,iBAAiB,EACjB,KAAK,sBACN,CAAC,IACF,sBACQ,CAAA;EACD,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { useWidgetConfig } from "../../providers/WidgetProvider/WidgetProvider.js";
2
- import { HiddenUI } from "../../types/widget.js";
2
+ import "../../types/widget.js";
3
3
  import { PageContainer } from "../../components/PageContainer.js";
4
4
  import { useHeader } from "../../hooks/useHeader.js";
5
5
  import { SettingsList } from "./SettingsCard/SettingCard.style.js";
@@ -27,7 +27,7 @@ const SettingsPage = () => {
27
27
  /* @__PURE__ */ jsx(RoutePrioritySettings, {}),
28
28
  /* @__PURE__ */ jsx(GasPriceSettings, {}),
29
29
  /* @__PURE__ */ jsx(SlippageSettings, {}),
30
- !hiddenUI?.includes(HiddenUI.HideSmallBalances) && /* @__PURE__ */ jsx(SmallBalanceFilterSettings, {}),
30
+ !hiddenUI?.includes("hideSmallBalances") && /* @__PURE__ */ jsx(SmallBalanceFilterSettings, {}),
31
31
  /* @__PURE__ */ jsx(BridgeAndExchangeSettings, { type: "Bridges" }),
32
32
  /* @__PURE__ */ jsx(BridgeAndExchangeSettings, { type: "Exchanges" })
33
33
  ] }) }), /* @__PURE__ */ jsx(ResetSettingsButton, {})]
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPage.js","names":[],"sources":["../../../../src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { PageContainer } from '../../components/PageContainer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { BridgeAndExchangeSettings } from './BridgeAndExchangeSettings.js'\nimport { GasPriceSettings } from './GasPriceSettings.js'\nimport { LanguageSetting } from './LanguageSetting.js'\nimport { ResetSettingsButton } from './ResetSettingsButton.js'\nimport { RoutePrioritySettings } from './RoutePrioritySettings.js'\nimport { SettingsList } from './SettingsCard/SettingCard.style.js'\nimport { SettingsCardAccordion } from './SettingsCard/SettingsAccordian.js'\nimport { SlippageSettings } from './SlippageSettings/SlippageSettings.js'\nimport { SmallBalanceFilterSettings } from './SmallBalanceFilterSettings.js'\nimport { ThemeSettings } from './ThemeSettings.js'\n\nexport const SettingsPage = (): JSX.Element => {\n const { t } = useTranslation()\n const { hiddenUI } = useWidgetConfig()\n useHeader(t('header.settings'))\n\n return (\n <PageContainer bottomGutters>\n <SettingsList>\n <SettingsCardAccordion>\n <ThemeSettings />\n <LanguageSetting />\n <RoutePrioritySettings />\n <GasPriceSettings />\n <SlippageSettings />\n {!hiddenUI?.includes(HiddenUI.HideSmallBalances) && (\n <SmallBalanceFilterSettings />\n )}\n <BridgeAndExchangeSettings type=\"Bridges\" />\n <BridgeAndExchangeSettings type=\"Exchanges\" />\n </SettingsCardAccordion>\n </SettingsList>\n <ResetSettingsButton />\n </PageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAa,qBAAkC;CAC7C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,aAAa,iBAAiB;AACtC,WAAU,EAAE,kBAAkB,CAAC;AAE/B,QACE,qBAAC,eAAD;EAAe,eAAA;YAAf,CACE,oBAAC,cAAD,EAAA,UACE,qBAAC,uBAAD,EAAA,UAAA;GACE,oBAAC,eAAD,EAAiB,CAAA;GACjB,oBAAC,iBAAD,EAAmB,CAAA;GACnB,oBAAC,uBAAD,EAAyB,CAAA;GACzB,oBAAC,kBAAD,EAAoB,CAAA;GACpB,oBAAC,kBAAD,EAAoB,CAAA;GACnB,CAAC,UAAU,SAAS,SAAS,kBAAkB,IAC9C,oBAAC,4BAAD,EAA8B,CAAA;GAEhC,oBAAC,2BAAD,EAA2B,MAAK,WAAY,CAAA;GAC5C,oBAAC,2BAAD,EAA2B,MAAK,aAAc,CAAA;GACxB,EAAA,CAAA,EACX,CAAA,EACf,oBAAC,qBAAD,EAAuB,CAAA,CACT"}
1
+ {"version":3,"file":"SettingsPage.js","names":[],"sources":["../../../../src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { PageContainer } from '../../components/PageContainer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { BridgeAndExchangeSettings } from './BridgeAndExchangeSettings.js'\nimport { GasPriceSettings } from './GasPriceSettings.js'\nimport { LanguageSetting } from './LanguageSetting.js'\nimport { ResetSettingsButton } from './ResetSettingsButton.js'\nimport { RoutePrioritySettings } from './RoutePrioritySettings.js'\nimport { SettingsList } from './SettingsCard/SettingCard.style.js'\nimport { SettingsCardAccordion } from './SettingsCard/SettingsAccordian.js'\nimport { SlippageSettings } from './SlippageSettings/SlippageSettings.js'\nimport { SmallBalanceFilterSettings } from './SmallBalanceFilterSettings.js'\nimport { ThemeSettings } from './ThemeSettings.js'\n\nexport const SettingsPage = (): JSX.Element => {\n const { t } = useTranslation()\n const { hiddenUI } = useWidgetConfig()\n useHeader(t('header.settings'))\n\n return (\n <PageContainer bottomGutters>\n <SettingsList>\n <SettingsCardAccordion>\n <ThemeSettings />\n <LanguageSetting />\n <RoutePrioritySettings />\n <GasPriceSettings />\n <SlippageSettings />\n {!hiddenUI?.includes(HiddenUI.HideSmallBalances) && (\n <SmallBalanceFilterSettings />\n )}\n <BridgeAndExchangeSettings type=\"Bridges\" />\n <BridgeAndExchangeSettings type=\"Exchanges\" />\n </SettingsCardAccordion>\n </SettingsList>\n <ResetSettingsButton />\n </PageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAa,qBAAkC;CAC7C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,aAAa,iBAAiB;AACtC,WAAU,EAAE,kBAAkB,CAAC;AAE/B,QACE,qBAAC,eAAD;EAAe,eAAA;YAAf,CACE,oBAAC,cAAD,EAAA,UACE,qBAAC,uBAAD,EAAA,UAAA;GACE,oBAAC,eAAD,EAAiB,CAAA;GACjB,oBAAC,iBAAD,EAAmB,CAAA;GACnB,oBAAC,uBAAD,EAAyB,CAAA;GACzB,oBAAC,kBAAD,EAAoB,CAAA;GACpB,oBAAC,kBAAD,EAAoB,CAAA;GACnB,CAAC,UAAU,SAAA,oBAAoC,IAC9C,oBAAC,4BAAD,EAA8B,CAAA;GAEhC,oBAAC,2BAAD,EAA2B,MAAK,WAAY,CAAA;GAC5C,oBAAC,2BAAD,EAA2B,MAAK,aAAc,CAAA;GACxB,EAAA,CAAA,EACX,CAAA,EACf,oBAAC,qBAAD,EAAuB,CAAA,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmallBalanceFilterSettings.js","names":["Switch"],"sources":["../../../../src/pages/SettingsPage/SmallBalanceFilterSettings.tsx"],"sourcesContent":["import AttachMoney from '@mui/icons-material/AttachMoney'\nimport { Box } from '@mui/material'\nimport {\n type ChangeEvent,\n type ChangeEventHandler,\n type FocusEventHandler,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Switch } from '../../components/Switch.js'\nimport { useSettings } from '../../stores/settings/useSettings.js'\nimport { useSettingsActions } from '../../stores/settings/useSettingsActions.js'\nimport { formatInputAmount, usdDecimals } from '../../utils/format.js'\nimport {\n SettingCardExpandable,\n type SettingCardExpandableRef,\n} from './SettingsCard/SettingCardExpandable.js'\nimport {\n SettingsCustomInput,\n SettingsFieldSet,\n} from './SlippageSettings/SlippageSettings.style.js'\n\nconst defaultThreshold = '0.01'\n\nexport const SmallBalanceFilterSettings: React.FC = () => {\n const { t } = useTranslation()\n const { smallBalanceThreshold } = useSettings(['smallBalanceThreshold'])\n const { setValue } = useSettingsActions()\n const [inputValue, setInputValue] = useState(\n smallBalanceThreshold ?? defaultThreshold\n )\n const buttonRef = useRef<SettingCardExpandableRef>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const formatAndSetThreshold = (inputValue: string, returnInitial = false) => {\n const value = inputValue.replace('$', '')\n const formattedValue = formatInputAmount(value, usdDecimals, returnInitial)\n if (returnInitial) {\n setInputValue(formattedValue)\n } else {\n const formattedOrDefault = formattedValue || defaultThreshold\n setInputValue(formattedOrDefault)\n setValue('smallBalanceThreshold', formattedOrDefault)\n }\n }\n\n const handleInputUpdate: ChangeEventHandler<HTMLInputElement> = (event) => {\n formatAndSetThreshold(event.target.value, true)\n }\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = (event) => {\n formatAndSetThreshold(event.target.value, false)\n }\n\n const handleHideSmallBalancesChange = (\n event: ChangeEvent<HTMLInputElement>\n ) => {\n setValue(\n 'smallBalanceThreshold',\n event.target.checked ? defaultThreshold : undefined\n )\n if (buttonRef.current) {\n buttonRef.current?.toggleExpanded(event.target.checked)\n }\n }\n\n const handleExpanded = () => {\n if (inputRef.current) {\n inputRef.current.focus()\n }\n }\n\n useEffect(() => {\n setInputValue(smallBalanceThreshold ?? defaultThreshold)\n }, [smallBalanceThreshold])\n\n return (\n <SettingCardExpandable\n ref={buttonRef}\n value={\n <Switch\n checked={!!smallBalanceThreshold}\n onChange={handleHideSmallBalancesChange}\n aria-label={t('settings.hideSmallBalances')}\n />\n }\n icon={<AttachMoney />}\n title={t('settings.hideSmallBalances')}\n disabled={!smallBalanceThreshold}\n keepValueVisible\n onEntered={handleExpanded}\n >\n <Box\n sx={{\n mt: 1.5,\n }}\n >\n <SettingsFieldSet>\n <SettingsCustomInput\n inputRef={inputRef}\n selected\n inputProps={{\n inputMode: 'decimal',\n }}\n onChange={handleInputUpdate}\n onBlur={handleInputBlur}\n value={`$${inputValue}`}\n autoComplete=\"off\"\n />\n </SettingsFieldSet>\n </Box>\n </SettingCardExpandable>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,mBAAmB;AAEzB,MAAa,mCAA6C;CACxD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,0BAA0B,YAAY,CAAC,wBAAwB,CAAC;CACxE,MAAM,EAAE,aAAa,oBAAoB;CACzC,MAAM,CAAC,YAAY,iBAAiB,SAClC,yBAAyB,iBAC1B;CACD,MAAM,YAAY,OAAiC,KAAK;CACxD,MAAM,WAAW,OAAyB,KAAK;CAE/C,MAAM,yBAAyB,YAAoB,gBAAgB,UAAU;EAE3E,MAAM,iBAAiB,kBADT,WAAW,QAAQ,KAAK,GAAG,EAAA,GACoB,cAAc;AAC3E,MAAI,cACF,eAAc,eAAe;OACxB;GACL,MAAM,qBAAqB,kBAAkB;AAC7C,iBAAc,mBAAmB;AACjC,YAAS,yBAAyB,mBAAmB;;;CAIzD,MAAM,qBAA2D,UAAU;AACzE,wBAAsB,MAAM,OAAO,OAAO,KAAK;;CAGjD,MAAM,mBAAwD,UAAU;AACtE,wBAAsB,MAAM,OAAO,OAAO,MAAM;;CAGlD,MAAM,iCACJ,UACG;AACH,WACE,yBACA,MAAM,OAAO,UAAU,mBAAmB,KAAA,EAC3C;AACD,MAAI,UAAU,QACZ,WAAU,SAAS,eAAe,MAAM,OAAO,QAAQ;;CAI3D,MAAM,uBAAuB;AAC3B,MAAI,SAAS,QACX,UAAS,QAAQ,OAAO;;AAI5B,iBAAgB;AACd,gBAAc,yBAAyB,iBAAiB;IACvD,CAAC,sBAAsB,CAAC;AAE3B,QACE,oBAAC,uBAAD;EACE,KAAK;EACL,OACE,oBAACA,UAAD;GACE,SAAS,CAAC,CAAC;GACX,UAAU;GACV,cAAY,EAAE,6BAA6B;GAC3C,CAAA;EAEJ,MAAM,oBAAC,aAAD,EAAe,CAAA;EACrB,OAAO,EAAE,6BAA6B;EACtC,UAAU,CAAC;EACX,kBAAA;EACA,WAAW;YAEX,oBAAC,KAAD;GACE,IAAI,EACF,IAAI,KACL;aAED,oBAAC,kBAAD,EAAA,UACE,oBAAC,qBAAD;IACY;IACV,UAAA;IACA,YAAY,EACV,WAAW,WACZ;IACD,UAAU;IACV,QAAQ;IACR,OAAO,IAAI;IACX,cAAa;IACb,CAAA,EACe,CAAA;GACf,CAAA;EACgB,CAAA"}
1
+ {"version":3,"file":"SmallBalanceFilterSettings.js","names":["Switch"],"sources":["../../../../src/pages/SettingsPage/SmallBalanceFilterSettings.tsx"],"sourcesContent":["import AttachMoney from '@mui/icons-material/AttachMoney'\nimport { Box } from '@mui/material'\nimport {\n type ChangeEvent,\n type ChangeEventHandler,\n type FocusEventHandler,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Switch } from '../../components/Switch.js'\nimport { useSettings } from '../../stores/settings/useSettings.js'\nimport { useSettingsActions } from '../../stores/settings/useSettingsActions.js'\nimport { formatInputAmount, usdDecimals } from '../../utils/format.js'\nimport {\n SettingCardExpandable,\n type SettingCardExpandableRef,\n} from './SettingsCard/SettingCardExpandable.js'\nimport {\n SettingsCustomInput,\n SettingsFieldSet,\n} from './SlippageSettings/SlippageSettings.style.js'\n\nconst defaultThreshold = '0.01'\n\nexport const SmallBalanceFilterSettings: React.FC = () => {\n const { t } = useTranslation()\n const { smallBalanceThreshold } = useSettings(['smallBalanceThreshold'])\n const { setValue } = useSettingsActions()\n const [inputValue, setInputValue] = useState(\n smallBalanceThreshold ?? defaultThreshold\n )\n const buttonRef = useRef<SettingCardExpandableRef>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const formatAndSetThreshold = (inputValue: string, returnInitial = false) => {\n const value = inputValue.replace('$', '')\n const formattedValue = formatInputAmount(value, usdDecimals, returnInitial)\n if (returnInitial) {\n setInputValue(formattedValue)\n } else {\n const formattedOrDefault = formattedValue || defaultThreshold\n setInputValue(formattedOrDefault)\n setValue('smallBalanceThreshold', formattedOrDefault)\n }\n }\n\n const handleInputUpdate: ChangeEventHandler<HTMLInputElement> = (event) => {\n formatAndSetThreshold(event.target.value, true)\n }\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = (event) => {\n formatAndSetThreshold(event.target.value, false)\n }\n\n const handleHideSmallBalancesChange = (\n event: ChangeEvent<HTMLInputElement>\n ) => {\n setValue(\n 'smallBalanceThreshold',\n event.target.checked ? defaultThreshold : undefined\n )\n if (buttonRef.current) {\n buttonRef.current?.toggleExpanded(event.target.checked)\n }\n }\n\n const handleExpanded = () => {\n if (inputRef.current) {\n inputRef.current.focus()\n }\n }\n\n useEffect(() => {\n setInputValue(smallBalanceThreshold ?? defaultThreshold)\n }, [smallBalanceThreshold])\n\n return (\n <SettingCardExpandable\n ref={buttonRef}\n value={\n <Switch\n checked={!!smallBalanceThreshold}\n onChange={handleHideSmallBalancesChange}\n aria-label={t('settings.hideSmallBalances')}\n />\n }\n icon={<AttachMoney />}\n title={t('settings.hideSmallBalances')}\n disabled={!smallBalanceThreshold}\n keepValueVisible\n onEntered={handleExpanded}\n >\n <Box\n sx={{\n mt: 1.5,\n }}\n >\n <SettingsFieldSet>\n <SettingsCustomInput\n inputRef={inputRef}\n selected\n inputProps={{\n inputMode: 'decimal',\n }}\n onChange={handleInputUpdate}\n onBlur={handleInputBlur}\n value={`$${inputValue}`}\n autoComplete=\"off\"\n />\n </SettingsFieldSet>\n </Box>\n </SettingCardExpandable>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,mBAAmB;AAEzB,MAAa,mCAA6C;CACxD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,0BAA0B,YAAY,CAAC,wBAAwB,CAAC;CACxE,MAAM,EAAE,aAAa,oBAAoB;CACzC,MAAM,CAAC,YAAY,iBAAiB,SAClC,yBAAyB,iBAC1B;CACD,MAAM,YAAY,OAAiC,KAAK;CACxD,MAAM,WAAW,OAAyB,KAAK;CAE/C,MAAM,yBAAyB,YAAoB,gBAAgB,UAAU;EAE3E,MAAM,iBAAiB,kBADT,WAAW,QAAQ,KAAK,GACQ,EAAA,GAAe,cAAc;AAC3E,MAAI,cACF,eAAc,eAAe;OACxB;GACL,MAAM,qBAAqB,kBAAkB;AAC7C,iBAAc,mBAAmB;AACjC,YAAS,yBAAyB,mBAAmB;;;CAIzD,MAAM,qBAA2D,UAAU;AACzE,wBAAsB,MAAM,OAAO,OAAO,KAAK;;CAGjD,MAAM,mBAAwD,UAAU;AACtE,wBAAsB,MAAM,OAAO,OAAO,MAAM;;CAGlD,MAAM,iCACJ,UACG;AACH,WACE,yBACA,MAAM,OAAO,UAAU,mBAAmB,KAAA,EAC3C;AACD,MAAI,UAAU,QACZ,WAAU,SAAS,eAAe,MAAM,OAAO,QAAQ;;CAI3D,MAAM,uBAAuB;AAC3B,MAAI,SAAS,QACX,UAAS,QAAQ,OAAO;;AAI5B,iBAAgB;AACd,gBAAc,yBAAyB,iBAAiB;IACvD,CAAC,sBAAsB,CAAC;AAE3B,QACE,oBAAC,uBAAD;EACE,KAAK;EACL,OACE,oBAACA,UAAD;GACE,SAAS,CAAC,CAAC;GACX,UAAU;GACV,cAAY,EAAE,6BAA6B;GAC3C,CAAA;EAEJ,MAAM,oBAAC,aAAD,EAAe,CAAA;EACrB,OAAO,EAAE,6BAA6B;EACtC,UAAU,CAAC;EACX,kBAAA;EACA,WAAW;YAEX,oBAAC,KAAD;GACE,IAAI,EACF,IAAI,KACL;aAED,oBAAC,kBAAD,EAAA,UACE,oBAAC,qBAAD;IACY;IACV,UAAA;IACA,YAAY,EACV,WAAW,WACZ;IACD,UAAU;IACV,QAAQ;IACR,OAAO,IAAI;IACX,cAAa;IACb,CAAA,EACe,CAAA;GACf,CAAA;EACgB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { useWidgetConfig } from "../../providers/WidgetProvider/WidgetProvider.js";
2
- import { HiddenUI } from "../../types/widget.js";
2
+ import "../../types/widget.js";
3
3
  import { CardTabs, Tab as Tab$1 } from "../../components/Tabs/Tabs.style.js";
4
4
  import { CardValue } from "../../components/Card/CardButton.style.js";
5
5
  import { SettingCardExpandable } from "./SettingsCard/SettingCardExpandable.js";
@@ -28,7 +28,7 @@ const ThemeSettings = () => {
28
28
  const { t } = useTranslation();
29
29
  const { mode, setMode } = useColorScheme();
30
30
  const { hiddenUI } = useWidgetConfig();
31
- if (hiddenUI?.includes(HiddenUI.Appearance)) return null;
31
+ if (hiddenUI?.includes("appearance")) return null;
32
32
  const appearance = mode ?? "system";
33
33
  const ThemeIcon = themeIcons[appearance];
34
34
  const handleThemeChange = (_, appearance) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeSettings.js","names":["Tab"],"sources":["../../../../src/pages/SettingsPage/ThemeSettings.tsx"],"sourcesContent":["import BrightnessAuto from '@mui/icons-material/BrightnessAuto'\nimport LightMode from '@mui/icons-material/LightMode'\nimport Nightlight from '@mui/icons-material/Nightlight'\nimport { Tooltip, useColorScheme } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { CardValue } from '../../components/Card/CardButton.style.js'\nimport { CardTabs, Tab } from '../../components/Tabs/Tabs.style.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { Appearance } from '../../types/widget.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { SettingCardExpandable } from './SettingsCard/SettingCardExpandable.js'\n\nconst themeIcons = {\n light: LightMode,\n dark: Nightlight,\n system: BrightnessAuto,\n}\n\ninterface ThemeTabProps {\n title: string\n value: Appearance\n Icon: React.ReactElement\n}\n\n// If the Tab is not the direct child of the Tabs component you can loose the switching\n// The component passes the props to the Tab component so switching isn't lost\nconst ThemeTab: React.FC<ThemeTabProps> = ({\n title,\n value,\n Icon,\n ...props\n}) => (\n <Tooltip title={title}>\n <Tab icon={Icon} value={value} {...props} disableRipple />\n </Tooltip>\n)\n\nexport const ThemeSettings: React.FC = () => {\n const { t } = useTranslation()\n const { mode, setMode } = useColorScheme()\n const { hiddenUI } = useWidgetConfig()\n\n if (hiddenUI?.includes(HiddenUI.Appearance)) {\n return null\n }\n\n const appearance = mode ?? 'system'\n\n const ThemeIcon = themeIcons[appearance]\n\n const handleThemeChange = (\n _: React.SyntheticEvent,\n appearance: Appearance\n ) => {\n setMode(appearance)\n }\n\n return (\n <SettingCardExpandable\n value={<CardValue>{t(`button.${appearance}`)} </CardValue>}\n icon={<ThemeIcon />}\n title={t('settings.appearance')}\n >\n <CardTabs\n value={appearance}\n aria-label=\"tabs\"\n indicatorColor=\"primary\"\n onChange={handleThemeChange}\n sx={{ mt: 1.5 }}\n >\n {Object.entries(themeIcons).map(([theme, Icon]) => {\n const supportedThemeOption = theme as Appearance\n\n return (\n <ThemeTab\n key={supportedThemeOption}\n title={t(`button.${supportedThemeOption}`)}\n value={supportedThemeOption}\n Icon={<Icon />}\n />\n )\n })}\n </CardTabs>\n </SettingCardExpandable>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,aAAa;CACjB,OAAO;CACP,MAAM;CACN,QAAQ;CACT;AAUD,MAAM,YAAqC,EACzC,OACA,OACA,MACA,GAAG,YAEH,oBAAC,SAAD;CAAgB;WACd,oBAACA,OAAD;EAAK,MAAM;EAAa;EAAO,GAAI;EAAO,eAAA;EAAgB,CAAA;CAClD,CAAA;AAGZ,MAAa,sBAAgC;CAC3C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,MAAM,YAAY,gBAAgB;CAC1C,MAAM,EAAE,aAAa,iBAAiB;AAEtC,KAAI,UAAU,SAAS,SAAS,WAAW,CACzC,QAAO;CAGT,MAAM,aAAa,QAAQ;CAE3B,MAAM,YAAY,WAAW;CAE7B,MAAM,qBACJ,GACA,eACG;AACH,UAAQ,WAAW;;AAGrB,QACE,oBAAC,uBAAD;EACE,OAAO,qBAAC,WAAD,EAAA,UAAA,CAAY,EAAE,UAAU,aAAa,EAAC,IAAa,EAAA,CAAA;EAC1D,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,OAAO,EAAE,sBAAsB;YAE/B,oBAAC,UAAD;GACE,OAAO;GACP,cAAW;GACX,gBAAe;GACf,UAAU;GACV,IAAI,EAAE,IAAI,KAAK;aAEd,OAAO,QAAQ,WAAW,CAAC,KAAK,CAAC,OAAO,UAAU;IACjD,MAAM,uBAAuB;AAE7B,WACE,oBAAC,UAAD;KAEE,OAAO,EAAE,UAAU,uBAAuB;KAC1C,OAAO;KACP,MAAM,oBAAC,MAAD,EAAQ,CAAA;KACd,EAJK,qBAIL;KAEJ;GACO,CAAA;EACW,CAAA"}
1
+ {"version":3,"file":"ThemeSettings.js","names":["Tab"],"sources":["../../../../src/pages/SettingsPage/ThemeSettings.tsx"],"sourcesContent":["import BrightnessAuto from '@mui/icons-material/BrightnessAuto'\nimport LightMode from '@mui/icons-material/LightMode'\nimport Nightlight from '@mui/icons-material/Nightlight'\nimport { Tooltip, useColorScheme } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { CardValue } from '../../components/Card/CardButton.style.js'\nimport { CardTabs, Tab } from '../../components/Tabs/Tabs.style.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport type { Appearance } from '../../types/widget.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { SettingCardExpandable } from './SettingsCard/SettingCardExpandable.js'\n\nconst themeIcons = {\n light: LightMode,\n dark: Nightlight,\n system: BrightnessAuto,\n}\n\ninterface ThemeTabProps {\n title: string\n value: Appearance\n Icon: React.ReactElement\n}\n\n// If the Tab is not the direct child of the Tabs component you can loose the switching\n// The component passes the props to the Tab component so switching isn't lost\nconst ThemeTab: React.FC<ThemeTabProps> = ({\n title,\n value,\n Icon,\n ...props\n}) => (\n <Tooltip title={title}>\n <Tab icon={Icon} value={value} {...props} disableRipple />\n </Tooltip>\n)\n\nexport const ThemeSettings: React.FC = () => {\n const { t } = useTranslation()\n const { mode, setMode } = useColorScheme()\n const { hiddenUI } = useWidgetConfig()\n\n if (hiddenUI?.includes(HiddenUI.Appearance)) {\n return null\n }\n\n const appearance = mode ?? 'system'\n\n const ThemeIcon = themeIcons[appearance]\n\n const handleThemeChange = (\n _: React.SyntheticEvent,\n appearance: Appearance\n ) => {\n setMode(appearance)\n }\n\n return (\n <SettingCardExpandable\n value={<CardValue>{t(`button.${appearance}`)} </CardValue>}\n icon={<ThemeIcon />}\n title={t('settings.appearance')}\n >\n <CardTabs\n value={appearance}\n aria-label=\"tabs\"\n indicatorColor=\"primary\"\n onChange={handleThemeChange}\n sx={{ mt: 1.5 }}\n >\n {Object.entries(themeIcons).map(([theme, Icon]) => {\n const supportedThemeOption = theme as Appearance\n\n return (\n <ThemeTab\n key={supportedThemeOption}\n title={t(`button.${supportedThemeOption}`)}\n value={supportedThemeOption}\n Icon={<Icon />}\n />\n )\n })}\n </CardTabs>\n </SettingCardExpandable>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAYA,MAAM,aAAa;CACjB,OAAO;CACP,MAAM;CACN,QAAQ;CACT;AAUD,MAAM,YAAqC,EACzC,OACA,OACA,MACA,GAAG,YAEH,oBAAC,SAAD;CAAgB;WACd,oBAACA,OAAD;EAAK,MAAM;EAAa;EAAO,GAAI;EAAO,eAAA;EAAgB,CAAA;CAClD,CAAA;AAGZ,MAAa,sBAAgC;CAC3C,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,MAAM,YAAY,gBAAgB;CAC1C,MAAM,EAAE,aAAa,iBAAiB;AAEtC,KAAI,UAAU,SAAA,aAA6B,CACzC,QAAO;CAGT,MAAM,aAAa,QAAQ;CAE3B,MAAM,YAAY,WAAW;CAE7B,MAAM,qBACJ,GACA,eACG;AACH,UAAQ,WAAW;;AAGrB,QACE,oBAAC,uBAAD;EACE,OAAO,qBAAC,WAAD,EAAA,UAAA,CAAY,EAAE,UAAU,aAAa,EAAC,IAAa,EAAA,CAAA;EAC1D,MAAM,oBAAC,WAAD,EAAa,CAAA;EACnB,OAAO,EAAE,sBAAsB;YAE/B,oBAAC,UAAD;GACE,OAAO;GACP,cAAW;GACX,gBAAe;GACf,UAAU;GACV,IAAI,EAAE,IAAI,KAAK;aAEd,OAAO,QAAQ,WAAW,CAAC,KAAK,CAAC,OAAO,UAAU;IACjD,MAAM,uBAAuB;AAE7B,WACE,oBAAC,UAAD;KAEE,OAAO,EAAE,UAAU,uBAAuB;KAC1C,OAAO;KACP,MAAM,oBAAC,MAAD,EAAQ,CAAA;KACd,EAJK,qBAIL;KAEJ;GACO,CAAA;EACW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContactSupportButton.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/ContactSupportButton.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContactSupport } from '../../hooks/useContactSupport.js'\nimport { ButtonChip } from './ContactSupportButton.style.js'\n\ninterface ContactSupportButtonProps {\n supportId?: string\n}\n\nexport const ContactSupportButton = ({\n supportId,\n}: ContactSupportButtonProps): JSX.Element => {\n const { t } = useTranslation()\n const handleContactSupport = useContactSupport(supportId)\n\n return (\n <ButtonChip onClick={handleContactSupport}>\n {t('button.contactSupport')}\n </ButtonChip>\n )\n}\n"],"mappings":";;;;;AASA,MAAa,wBAAwB,EACnC,gBAC4C;CAC5C,MAAM,EAAE,MAAM,gBAAgB;AAG9B,QACE,oBAAC,YAAD;EAAY,SAHe,kBAAkB,UAAU;YAIpD,EAAE,wBAAwB;EAChB,CAAA"}
1
+ {"version":3,"file":"ContactSupportButton.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/ContactSupportButton.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContactSupport } from '../../hooks/useContactSupport.js'\nimport { ButtonChip } from './ContactSupportButton.style.js'\n\ninterface ContactSupportButtonProps {\n supportId?: string\n}\n\nexport const ContactSupportButton = ({\n supportId,\n}: ContactSupportButtonProps): JSX.Element => {\n const { t } = useTranslation()\n const handleContactSupport = useContactSupport(supportId)\n\n return (\n <ButtonChip onClick={handleContactSupport}>\n {t('button.contactSupport')}\n </ButtonChip>\n )\n}\n"],"mappings":";;;;;AASA,MAAa,wBAAwB,EACnC,gBAC4C;CAC5C,MAAM,EAAE,MAAM,gBAAgB;AAG9B,QACE,oBAAC,YAAD;EAAY,SAHe,kBAAkB,UAGJ;YACtC,EAAE,wBAAwB;EAChB,CAAA"}
@@ -5,8 +5,8 @@ import { ActionRow } from "./ActionRow.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import OpenInNew from "@mui/icons-material/OpenInNew";
7
7
  //#region src/pages/TransactionDetailsPage/StepActionRow.tsx
8
- const StepActionRow = ({ step, action, href }) => {
9
- const { title } = useActionMessage(step, action);
8
+ const StepActionRow = ({ step, action, href, defaultLabelsOnly }) => {
9
+ const { title } = useActionMessage(step, action, defaultLabelsOnly);
10
10
  return /* @__PURE__ */ jsx(ActionRow, {
11
11
  startAdornment: /* @__PURE__ */ jsx(IconCircle, {
12
12
  status: action?.status === "FAILED" ? "error" : "success",
@@ -1 +1 @@
1
- {"version":3,"file":"StepActionRow.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/StepActionRow.tsx"],"sourcesContent":["import type { ExecutionAction, LiFiStepExtended } from '@lifi/sdk'\nimport OpenInNew from '@mui/icons-material/OpenInNew'\nimport type React from 'react'\nimport { IconCircle } from '../../components/IconCircle/IconCircle.js'\nimport { useActionMessage } from '../../hooks/useActionMessage.js'\nimport { ActionRow } from './ActionRow.js'\nimport { ExternalLink } from './ReceiptsCard.style.js'\n\nexport const StepActionRow: React.FC<{\n step: LiFiStepExtended\n action: ExecutionAction\n href: string\n}> = ({ step, action, href }) => {\n const { title } = useActionMessage(step, action)\n const isFailed = action?.status === 'FAILED'\n return (\n <ActionRow\n startAdornment={\n <IconCircle status={isFailed ? 'error' : 'success'} size={24} />\n }\n message={title ?? ''}\n endAdornment={\n <ExternalLink href={href} target=\"_blank\" rel=\"nofollow noreferrer\">\n <OpenInNew sx={{ fontSize: 16 }} />\n </ExternalLink>\n }\n />\n )\n}\n"],"mappings":";;;;;;;AAQA,MAAa,iBAIP,EAAE,MAAM,QAAQ,WAAW;CAC/B,MAAM,EAAE,UAAU,iBAAiB,MAAM,OAAO;AAEhD,QACE,oBAAC,WAAD;EACE,gBACE,oBAAC,YAAD;GAAY,QAJD,QAAQ,WAAW,WAIC,UAAU;GAAW,MAAM;GAAM,CAAA;EAElE,SAAS,SAAS;EAClB,cACE,oBAAC,cAAD;GAAoB;GAAM,QAAO;GAAS,KAAI;aAC5C,oBAAC,WAAD,EAAW,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;GACtB,CAAA;EAEjB,CAAA"}
1
+ {"version":3,"file":"StepActionRow.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/StepActionRow.tsx"],"sourcesContent":["import type { ExecutionAction, LiFiStepExtended } from '@lifi/sdk'\nimport OpenInNew from '@mui/icons-material/OpenInNew'\nimport type React from 'react'\nimport { IconCircle } from '../../components/IconCircle/IconCircle.js'\nimport { useActionMessage } from '../../hooks/useActionMessage.js'\nimport { ActionRow } from './ActionRow.js'\nimport { ExternalLink } from './ReceiptsCard.style.js'\n\nexport const StepActionRow: React.FC<{\n step: LiFiStepExtended\n action: ExecutionAction\n href: string\n defaultLabelsOnly?: boolean\n}> = ({ step, action, href, defaultLabelsOnly }) => {\n const { title } = useActionMessage(step, action, defaultLabelsOnly)\n const isFailed = action?.status === 'FAILED'\n return (\n <ActionRow\n startAdornment={\n <IconCircle status={isFailed ? 'error' : 'success'} size={24} />\n }\n message={title ?? ''}\n endAdornment={\n <ExternalLink href={href} target=\"_blank\" rel=\"nofollow noreferrer\">\n <OpenInNew sx={{ fontSize: 16 }} />\n </ExternalLink>\n }\n />\n )\n}\n"],"mappings":";;;;;;;AAQA,MAAa,iBAKP,EAAE,MAAM,QAAQ,MAAM,wBAAwB;CAClD,MAAM,EAAE,UAAU,iBAAiB,MAAM,QAAQ,kBAAkB;AAEnE,QACE,oBAAC,WAAD;EACE,gBACE,oBAAC,YAAD;GAAY,QAJD,QAAQ,WAAW,WAIC,UAAU;GAAW,MAAM;GAAM,CAAA;EAElE,SAAS,SAAS;EAClB,cACE,oBAAC,cAAD;GAAoB;GAAM,QAAO;GAAS,KAAI;aAC5C,oBAAC,WAAD,EAAW,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA;GACtB,CAAA;EAEjB,CAAA"}
@@ -29,11 +29,17 @@ const StepActionsList = ({ route, toAddress }) => {
29
29
  };
30
30
  }).filter(({ rows }) => rows.length > 0);
31
31
  if (!stepRows?.length) return null;
32
- return /* @__PURE__ */ jsxs(TransactionList, { children: [stepRows.map(({ step, rows }) => /* @__PURE__ */ jsx(TransactionList, { children: rows.map(({ action, href }, index) => /* @__PURE__ */ jsx(StepActionRow, {
33
- step,
34
- action,
35
- href
36
- }, index)) }, step.id)), toAddress ? /* @__PURE__ */ jsx(SentToWalletRow, {
32
+ const lastStepIndex = stepRows.length - 1;
33
+ return /* @__PURE__ */ jsxs(TransactionList, { children: [stepRows.map(({ step, rows }, stepIndex) => {
34
+ const lastRowIndex = rows.length - 1;
35
+ const isLastStep = stepIndex === lastStepIndex;
36
+ return /* @__PURE__ */ jsx(TransactionList, { children: rows.map(({ action, href }, rowIndex) => /* @__PURE__ */ jsx(StepActionRow, {
37
+ step,
38
+ action,
39
+ href,
40
+ defaultLabelsOnly: !(isLastStep && rowIndex === lastRowIndex)
41
+ }, rowIndex)) }, step.id);
42
+ }), toAddress ? /* @__PURE__ */ jsx(SentToWalletRow, {
37
43
  toAddress,
38
44
  toChainId: route.toChainId
39
45
  }) : null] });
@@ -1 +1 @@
1
- {"version":3,"file":"StepActionsList.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/StepActionsList.tsx"],"sourcesContent":["import type { RouteExtended } from '@lifi/sdk'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { prepareActions } from '../../utils/prepareActions.js'\nimport { TransactionList } from './ReceiptsCard.style.js'\nimport { SentToWalletRow } from './SentToWalletRow.js'\nimport { StepActionRow } from './StepActionRow.js'\n\ninterface StepActionsListProps {\n route: RouteExtended\n toAddress?: string\n}\n\nexport const StepActionsList: React.FC<StepActionsListProps> = ({\n route,\n toAddress,\n}) => {\n const { getTransactionLink } = useExplorer()\n const stepRows = route.steps\n .map((step) => {\n const rows = prepareActions(step.execution?.actions ?? [])\n .map((actionsGroup) => {\n const action = actionsGroup.at(-1)\n const href = action?.txHash\n ? getTransactionLink({\n txHash: action.txHash,\n chain: action.chainId,\n })\n : action?.txLink\n ? getTransactionLink({\n txLink: action.txLink,\n chain: action.chainId,\n })\n : undefined\n return { action, href }\n })\n .filter(({ action, href }) => {\n const doneOrFailed =\n action?.status === 'DONE' || action?.status === 'FAILED'\n return Boolean(href && doneOrFailed)\n })\n return { step, rows }\n })\n .filter(({ rows }) => rows.length > 0)\n\n if (!stepRows?.length) {\n return null\n }\n\n return (\n <TransactionList>\n {stepRows.map(({ step, rows }) => (\n <TransactionList key={step.id}>\n {rows.map(({ action, href }, index) => (\n <StepActionRow\n key={index}\n step={step}\n action={action!}\n href={href!}\n />\n ))}\n </TransactionList>\n ))}\n {toAddress ? (\n <SentToWalletRow toAddress={toAddress} toChainId={route.toChainId} />\n ) : null}\n </TransactionList>\n )\n}\n"],"mappings":";;;;;;;AAYA,MAAa,mBAAmD,EAC9D,OACA,gBACI;CACJ,MAAM,EAAE,uBAAuB,aAAa;CAC5C,MAAM,WAAW,MAAM,MACpB,KAAK,SAAS;AAsBb,SAAO;GAAE;GAAM,MArBF,eAAe,KAAK,WAAW,WAAW,EAAE,CAAC,CACvD,KAAK,iBAAiB;IACrB,MAAM,SAAS,aAAa,GAAG,GAAG;AAYlC,WAAO;KAAE;KAAQ,MAXJ,QAAQ,SACjB,mBAAmB;MACjB,QAAQ,OAAO;MACf,OAAO,OAAO;MACf,CAAC,GACF,QAAQ,SACN,mBAAmB;MACjB,QAAQ,OAAO;MACf,OAAO,OAAO;MACf,CAAC,GACF,KAAA;KACiB;KACvB,CACD,QAAQ,EAAE,QAAQ,WAAW;IAC5B,MAAM,eACJ,QAAQ,WAAW,UAAU,QAAQ,WAAW;AAClD,WAAO,QAAQ,QAAQ,aAAa;KACpC;GACiB;GACrB,CACD,QAAQ,EAAE,WAAW,KAAK,SAAS,EAAE;AAExC,KAAI,CAAC,UAAU,OACb,QAAO;AAGT,QACE,qBAAC,iBAAD,EAAA,UAAA,CACG,SAAS,KAAK,EAAE,MAAM,WACrB,oBAAC,iBAAD,EAAA,UACG,KAAK,KAAK,EAAE,QAAQ,QAAQ,UAC3B,oBAAC,eAAD;EAEQ;EACE;EACF;EACN,EAJK,MAIL,CACF,EACc,EATI,KAAK,GAST,CAClB,EACD,YACC,oBAAC,iBAAD;EAA4B;EAAW,WAAW,MAAM;EAAa,CAAA,GACnE,KACY,EAAA,CAAA"}
1
+ {"version":3,"file":"StepActionsList.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/StepActionsList.tsx"],"sourcesContent":["import type { RouteExtended } from '@lifi/sdk'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { prepareActions } from '../../utils/prepareActions.js'\nimport { TransactionList } from './ReceiptsCard.style.js'\nimport { SentToWalletRow } from './SentToWalletRow.js'\nimport { StepActionRow } from './StepActionRow.js'\n\ninterface StepActionsListProps {\n route: RouteExtended\n toAddress?: string\n}\n\nexport const StepActionsList: React.FC<StepActionsListProps> = ({\n route,\n toAddress,\n}) => {\n const { getTransactionLink } = useExplorer()\n const stepRows = route.steps\n .map((step) => {\n const rows = prepareActions(step.execution?.actions ?? [])\n .map((actionsGroup) => {\n const action = actionsGroup.at(-1)\n const href = action?.txHash\n ? getTransactionLink({\n txHash: action.txHash,\n chain: action.chainId,\n })\n : action?.txLink\n ? getTransactionLink({\n txLink: action.txLink,\n chain: action.chainId,\n })\n : undefined\n return { action, href }\n })\n .filter(({ action, href }) => {\n const doneOrFailed =\n action?.status === 'DONE' || action?.status === 'FAILED'\n return Boolean(href && doneOrFailed)\n })\n return { step, rows }\n })\n .filter(({ rows }) => rows.length > 0)\n\n if (!stepRows?.length) {\n return null\n }\n\n const lastStepIndex = stepRows.length - 1\n\n return (\n <TransactionList>\n {stepRows.map(({ step, rows }, stepIndex) => {\n const lastRowIndex = rows.length - 1\n const isLastStep = stepIndex === lastStepIndex\n return (\n <TransactionList key={step.id}>\n {rows.map(({ action, href }, rowIndex) => (\n <StepActionRow\n key={rowIndex}\n step={step}\n action={action!}\n href={href!}\n defaultLabelsOnly={!(isLastStep && rowIndex === lastRowIndex)}\n />\n ))}\n </TransactionList>\n )\n })}\n {toAddress ? (\n <SentToWalletRow toAddress={toAddress} toChainId={route.toChainId} />\n ) : null}\n </TransactionList>\n )\n}\n"],"mappings":";;;;;;;AAYA,MAAa,mBAAmD,EAC9D,OACA,gBACI;CACJ,MAAM,EAAE,uBAAuB,aAAa;CAC5C,MAAM,WAAW,MAAM,MACpB,KAAK,SAAS;AAsBb,SAAO;GAAE;GAAM,MArBF,eAAe,KAAK,WAAW,WAAW,EAAE,CAAC,CACvD,KAAK,iBAAiB;IACrB,MAAM,SAAS,aAAa,GAAG,GAAG;AAYlC,WAAO;KAAE;KAAQ,MAXJ,QAAQ,SACjB,mBAAmB;MACjB,QAAQ,OAAO;MACf,OAAO,OAAO;MACf,CAAC,GACF,QAAQ,SACN,mBAAmB;MACjB,QAAQ,OAAO;MACf,OAAO,OAAO;MACf,CAAC,GACF,KAAA;KACiB;KACvB,CACD,QAAQ,EAAE,QAAQ,WAAW;IAC5B,MAAM,eACJ,QAAQ,WAAW,UAAU,QAAQ,WAAW;AAClD,WAAO,QAAQ,QAAQ,aAAa;KAErB;GAAE;GACrB,CACD,QAAQ,EAAE,WAAW,KAAK,SAAS,EAAE;AAExC,KAAI,CAAC,UAAU,OACb,QAAO;CAGT,MAAM,gBAAgB,SAAS,SAAS;AAExC,QACE,qBAAC,iBAAD,EAAA,UAAA,CACG,SAAS,KAAK,EAAE,MAAM,QAAQ,cAAc;EAC3C,MAAM,eAAe,KAAK,SAAS;EACnC,MAAM,aAAa,cAAc;AACjC,SACE,oBAAC,iBAAD,EAAA,UACG,KAAK,KAAK,EAAE,QAAQ,QAAQ,aAC3B,oBAAC,eAAD;GAEQ;GACE;GACF;GACN,mBAAmB,EAAE,cAAc,aAAa;GAChD,EALK,SAKL,CACF,EACc,EAVI,KAAK,GAUT;GAEpB,EACD,YACC,oBAAC,iBAAD;EAA4B;EAAW,WAAW,MAAM;EAAa,CAAA,GACnE,KACY,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionDetailsPage.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/TransactionDetailsPage.tsx"],"sourcesContent":["import type { FullStatusData } from '@lifi/sdk'\nimport { useLocation, useNavigate } from '@tanstack/react-router'\nimport { useEffect, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { ContractComponent } from '../../components/ContractComponent/ContractComponent.js'\nimport { PageContainer } from '../../components/PageContainer.js'\nimport { TransactionCard } from '../../components/TransactionCard/TransactionCard.js'\nimport { internalExplorerUrl } from '../../config/constants.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useTools } from '../../hooks/useTools.js'\nimport { useTransactionDetails } from '../../hooks/useTransactionDetails.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { useRouteExecutionStore } from '../../stores/routes/RouteExecutionStore.js'\nimport { getSourceTxHash } from '../../stores/routes/utils.js'\nimport { buildRouteFromTxHistory } from '../../utils/converters.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { ReceiptsCard } from './ReceiptsCard.js'\nimport { TransactionDetailsSkeleton } from './TransactionDetailsSkeleton.js'\nimport { TransferIdCard } from './TransferIdCard.js'\n\nexport const TransactionDetailsPage: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const {\n subvariant,\n subvariantOptions,\n contractSecondaryComponent,\n explorerUrls,\n } = useWidgetConfig()\n const { search }: any = useLocation()\n const { tools } = useTools()\n const { getTransactionLink } = useExplorer()\n const storedRouteExecution = useRouteExecutionStore((store) =>\n search?.routeId ? store.routes[search.routeId] : undefined\n )\n const { transaction, isLoading } = useTransactionDetails(\n !storedRouteExecution && search?.transactionHash\n )\n\n const title =\n subvariant === 'custom'\n ? t(`header.${subvariantOptions?.custom ?? 'checkout'}Details`)\n : t('header.transactionDetails')\n useHeader(title)\n\n const routeExecution = useMemo(() => {\n if (storedRouteExecution) {\n return storedRouteExecution\n }\n if (isLoading) {\n return\n }\n if (transaction) {\n const routeExecution = buildRouteFromTxHistory(\n transaction as FullStatusData,\n tools\n )\n return routeExecution\n }\n }, [isLoading, storedRouteExecution, tools, transaction])\n\n useEffect(() => {\n if (!isLoading && !routeExecution) {\n navigate({ to: navigationRoutes.home })\n }\n }, [isLoading, navigate, routeExecution])\n\n const explorerUrl = explorerUrls?.internal?.[0]\n const url = typeof explorerUrl === 'string' ? explorerUrl : explorerUrl?.url\n\n const sourceTxHash = getSourceTxHash(routeExecution?.route)\n let supportId = sourceTxHash ?? routeExecution?.route.id ?? ''\n\n const internalTxLink =\n routeExecution?.route?.steps?.at(-1)?.execution?.internalTxLink\n const externalTxLink =\n routeExecution?.route?.steps?.at(-1)?.execution?.externalTxLink\n\n const txLink =\n (url\n ? internalTxLink?.replace(internalExplorerUrl, url)\n : internalTxLink) ||\n externalTxLink ||\n getTransactionLink({ txHash: supportId })\n\n if (process.env.NODE_ENV === 'development') {\n supportId += `_${routeExecution?.route.id}`\n }\n\n const startedAt = new Date(\n routeExecution?.route.steps[0].execution?.startedAt ?? 0\n )\n\n if (isLoading && !storedRouteExecution) {\n return <TransactionDetailsSkeleton />\n }\n\n if (!routeExecution?.route) {\n return null\n }\n\n return (\n <PageContainer\n bottomGutters\n sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}\n >\n <TransactionCard route={routeExecution.route} date={startedAt} />\n {subvariant === 'custom' && contractSecondaryComponent ? (\n <ContractComponent>{contractSecondaryComponent}</ContractComponent>\n ) : null}\n <ReceiptsCard route={routeExecution.route} />\n {supportId ? (\n <TransferIdCard transferId={supportId} txLink={txLink} />\n ) : null}\n </PageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,+BAAyC;CACpD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,EACJ,YACA,mBACA,4BACA,iBACE,iBAAiB;CACrB,MAAM,EAAE,WAAgB,aAAa;CACrC,MAAM,EAAE,UAAU,UAAU;CAC5B,MAAM,EAAE,uBAAuB,aAAa;CAC5C,MAAM,uBAAuB,wBAAwB,UACnD,QAAQ,UAAU,MAAM,OAAO,OAAO,WAAW,KAAA,EAClD;CACD,MAAM,EAAE,aAAa,cAAc,sBACjC,CAAC,wBAAwB,QAAQ,gBAClC;AAMD,WAHE,eAAe,WACX,EAAE,UAAU,mBAAmB,UAAU,WAAW,SAAS,GAC7D,EAAE,4BAA4B,CACpB;CAEhB,MAAM,iBAAiB,cAAc;AACnC,MAAI,qBACF,QAAO;AAET,MAAI,UACF;AAEF,MAAI,YAKF,QAJuB,wBACrB,aACA,MACD;IAGF;EAAC;EAAW;EAAsB;EAAO;EAAY,CAAC;AAEzD,iBAAgB;AACd,MAAI,CAAC,aAAa,CAAC,eACjB,UAAS,EAAE,IAAI,iBAAiB,MAAM,CAAC;IAExC;EAAC;EAAW;EAAU;EAAe,CAAC;CAEzC,MAAM,cAAc,cAAc,WAAW;CAC7C,MAAM,MAAM,OAAO,gBAAgB,WAAW,cAAc,aAAa;CAGzE,IAAI,YADiB,gBAAgB,gBAAgB,MAAM,IAC3B,gBAAgB,MAAM,MAAM;CAE5D,MAAM,iBACJ,gBAAgB,OAAO,OAAO,GAAG,GAAG,EAAE,WAAW;CACnD,MAAM,iBACJ,gBAAgB,OAAO,OAAO,GAAG,GAAG,EAAE,WAAW;CAEnD,MAAM,UACH,MACG,gBAAgB,QAAA,sBAA6B,IAAI,GACjD,mBACJ,kBACA,mBAAmB,EAAE,QAAQ,WAAW,CAAC;AAE3C,KAAI,QAAQ,IAAI,aAAa,cAC3B,cAAa,IAAI,gBAAgB,MAAM;CAGzC,MAAM,YAAY,IAAI,KACpB,gBAAgB,MAAM,MAAM,GAAG,WAAW,aAAa,EACxD;AAED,KAAI,aAAa,CAAC,qBAChB,QAAO,oBAAC,4BAAD,EAA8B,CAAA;AAGvC,KAAI,CAAC,gBAAgB,MACnB,QAAO;AAGT,QACE,qBAAC,eAAD;EACE,eAAA;EACA,IAAI;GAAE,SAAS;GAAQ,eAAe;GAAU,KAAK;GAAG;YAF1D;GAIE,oBAAC,iBAAD;IAAiB,OAAO,eAAe;IAAO,MAAM;IAAa,CAAA;GAChE,eAAe,YAAY,6BAC1B,oBAAC,mBAAD,EAAA,UAAoB,4BAA+C,CAAA,GACjE;GACJ,oBAAC,cAAD,EAAc,OAAO,eAAe,OAAS,CAAA;GAC5C,YACC,oBAAC,gBAAD;IAAgB,YAAY;IAAmB;IAAU,CAAA,GACvD;GACU"}
1
+ {"version":3,"file":"TransactionDetailsPage.js","names":[],"sources":["../../../../src/pages/TransactionDetailsPage/TransactionDetailsPage.tsx"],"sourcesContent":["import type { FullStatusData } from '@lifi/sdk'\nimport { useLocation, useNavigate } from '@tanstack/react-router'\nimport { useEffect, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { ContractComponent } from '../../components/ContractComponent/ContractComponent.js'\nimport { PageContainer } from '../../components/PageContainer.js'\nimport { TransactionCard } from '../../components/TransactionCard/TransactionCard.js'\nimport { internalExplorerUrl } from '../../config/constants.js'\nimport { useExplorer } from '../../hooks/useExplorer.js'\nimport { useHeader } from '../../hooks/useHeader.js'\nimport { useTools } from '../../hooks/useTools.js'\nimport { useTransactionDetails } from '../../hooks/useTransactionDetails.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { useRouteExecutionStore } from '../../stores/routes/RouteExecutionStore.js'\nimport { getSourceTxHash } from '../../stores/routes/utils.js'\nimport { buildRouteFromTxHistory } from '../../utils/converters.js'\nimport { navigationRoutes } from '../../utils/navigationRoutes.js'\nimport { ReceiptsCard } from './ReceiptsCard.js'\nimport { TransactionDetailsSkeleton } from './TransactionDetailsSkeleton.js'\nimport { TransferIdCard } from './TransferIdCard.js'\n\nexport const TransactionDetailsPage: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const {\n subvariant,\n subvariantOptions,\n contractSecondaryComponent,\n explorerUrls,\n } = useWidgetConfig()\n const { search }: any = useLocation()\n const { tools } = useTools()\n const { getTransactionLink } = useExplorer()\n const storedRouteExecution = useRouteExecutionStore((store) =>\n search?.routeId ? store.routes[search.routeId] : undefined\n )\n const { transaction, isLoading } = useTransactionDetails(\n !storedRouteExecution && search?.transactionHash\n )\n\n const title =\n subvariant === 'custom'\n ? t(`header.${subvariantOptions?.custom ?? 'checkout'}Details`)\n : t('header.transactionDetails')\n useHeader(title)\n\n const routeExecution = useMemo(() => {\n if (storedRouteExecution) {\n return storedRouteExecution\n }\n if (isLoading) {\n return\n }\n if (transaction) {\n const routeExecution = buildRouteFromTxHistory(\n transaction as FullStatusData,\n tools\n )\n return routeExecution\n }\n }, [isLoading, storedRouteExecution, tools, transaction])\n\n useEffect(() => {\n if (!isLoading && !routeExecution) {\n navigate({ to: navigationRoutes.home })\n }\n }, [isLoading, navigate, routeExecution])\n\n const explorerUrl = explorerUrls?.internal?.[0]\n const url = typeof explorerUrl === 'string' ? explorerUrl : explorerUrl?.url\n\n const sourceTxHash = getSourceTxHash(routeExecution?.route)\n let supportId = sourceTxHash ?? routeExecution?.route.id ?? ''\n\n const internalTxLink =\n routeExecution?.route?.steps?.at(-1)?.execution?.internalTxLink\n const externalTxLink =\n routeExecution?.route?.steps?.at(-1)?.execution?.externalTxLink\n\n const txLink =\n (url\n ? internalTxLink?.replace(internalExplorerUrl, url)\n : internalTxLink) ||\n externalTxLink ||\n getTransactionLink({ txHash: supportId })\n\n if (process.env.NODE_ENV === 'development') {\n supportId += `_${routeExecution?.route.id}`\n }\n\n const startedAt = new Date(\n routeExecution?.route.steps[0].execution?.startedAt ?? 0\n )\n\n if (isLoading && !storedRouteExecution) {\n return <TransactionDetailsSkeleton />\n }\n\n if (!routeExecution?.route) {\n return null\n }\n\n return (\n <PageContainer\n bottomGutters\n sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}\n >\n <TransactionCard route={routeExecution.route} date={startedAt} />\n {subvariant === 'custom' && contractSecondaryComponent ? (\n <ContractComponent>{contractSecondaryComponent}</ContractComponent>\n ) : null}\n <ReceiptsCard route={routeExecution.route} />\n {supportId ? (\n <TransferIdCard transferId={supportId} txLink={txLink} />\n ) : null}\n </PageContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,+BAAyC;CACpD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,EACJ,YACA,mBACA,4BACA,iBACE,iBAAiB;CACrB,MAAM,EAAE,WAAgB,aAAa;CACrC,MAAM,EAAE,UAAU,UAAU;CAC5B,MAAM,EAAE,uBAAuB,aAAa;CAC5C,MAAM,uBAAuB,wBAAwB,UACnD,QAAQ,UAAU,MAAM,OAAO,OAAO,WAAW,KAAA,EAClD;CACD,MAAM,EAAE,aAAa,cAAc,sBACjC,CAAC,wBAAwB,QAAQ,gBAClC;AAMD,WAHE,eAAe,WACX,EAAE,UAAU,mBAAmB,UAAU,WAAW,SAAS,GAC7D,EAAE,4BAA4B,CACpB;CAEhB,MAAM,iBAAiB,cAAc;AACnC,MAAI,qBACF,QAAO;AAET,MAAI,UACF;AAEF,MAAI,YAKF,QAJuB,wBACrB,aACA,MAEmB;IAEtB;EAAC;EAAW;EAAsB;EAAO;EAAY,CAAC;AAEzD,iBAAgB;AACd,MAAI,CAAC,aAAa,CAAC,eACjB,UAAS,EAAE,IAAI,iBAAiB,MAAM,CAAC;IAExC;EAAC;EAAW;EAAU;EAAe,CAAC;CAEzC,MAAM,cAAc,cAAc,WAAW;CAC7C,MAAM,MAAM,OAAO,gBAAgB,WAAW,cAAc,aAAa;CAGzE,IAAI,YADiB,gBAAgB,gBAAgB,MACzB,IAAI,gBAAgB,MAAM,MAAM;CAE5D,MAAM,iBACJ,gBAAgB,OAAO,OAAO,GAAG,GAAG,EAAE,WAAW;CACnD,MAAM,iBACJ,gBAAgB,OAAO,OAAO,GAAG,GAAG,EAAE,WAAW;CAEnD,MAAM,UACH,MACG,gBAAgB,QAAA,sBAA6B,IAAI,GACjD,mBACJ,kBACA,mBAAmB,EAAE,QAAQ,WAAW,CAAC;AAE3C,KAAI,QAAQ,IAAI,aAAa,cAC3B,cAAa,IAAI,gBAAgB,MAAM;CAGzC,MAAM,YAAY,IAAI,KACpB,gBAAgB,MAAM,MAAM,GAAG,WAAW,aAAa,EACxD;AAED,KAAI,aAAa,CAAC,qBAChB,QAAO,oBAAC,4BAAD,EAA8B,CAAA;AAGvC,KAAI,CAAC,gBAAgB,MACnB,QAAO;AAGT,QACE,qBAAC,eAAD;EACE,eAAA;EACA,IAAI;GAAE,SAAS;GAAQ,eAAe;GAAU,KAAK;GAAG;YAF1D;GAIE,oBAAC,iBAAD;IAAiB,OAAO,eAAe;IAAO,MAAM;IAAa,CAAA;GAChE,eAAe,YAAY,6BAC1B,oBAAC,mBAAD,EAAA,UAAoB,4BAA+C,CAAA,GACjE;GACJ,oBAAC,cAAD,EAAc,OAAO,eAAe,OAAS,CAAA;GAC5C,YACC,oBAAC,gBAAD;IAAgB,YAAY;IAAmB;IAAU,CAAA,GACvD;GACU"}
@@ -1,5 +1,5 @@
1
1
  import { useWidgetConfig } from "../../providers/WidgetProvider/WidgetProvider.js";
2
- import { HiddenUI } from "../../types/widget.js";
2
+ import "../../types/widget.js";
3
3
  import { Card as Card$1 } from "../../components/Card/Card.js";
4
4
  import { CardIconButton } from "../../components/Card/CardIconButton.js";
5
5
  import { CardTitle } from "../../components/Card/CardTitle.js";
@@ -47,7 +47,7 @@ const TransferIdCard = ({ transferId, txLink }) => {
47
47
  onClick: openTransferIdInExplorer,
48
48
  children: /* @__PURE__ */ jsx(OpenInNew, { fontSize: "inherit" })
49
49
  }) : null,
50
- !hiddenUI?.includes(HiddenUI.ContactSupport) ? /* @__PURE__ */ jsx(ContactSupportButton, { supportId: transferId }) : null
50
+ !hiddenUI?.includes("contactSupport") ? /* @__PURE__ */ jsx(ContactSupportButton, { supportId: transferId }) : null
51
51
  ]
52
52
  })]
53
53
  }), /* @__PURE__ */ jsx(Typography, {
@@ -1 +1 @@
1
- {"version":3,"file":"TransferIdCard.js","names":["Card"],"sources":["../../../../src/pages/TransactionDetailsPage/TransferIdCard.tsx"],"sourcesContent":["import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport OpenInNew from '@mui/icons-material/OpenInNew'\nimport { Box, Typography } from '@mui/material'\nimport type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Card } from '../../components/Card/Card.js'\nimport { CardIconButton } from '../../components/Card/CardIconButton.js'\nimport { CardTitle } from '../../components/Card/CardTitle.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { ContactSupportButton } from './ContactSupportButton.js'\n\ninterface TransferIdCardProps {\n transferId: string\n txLink?: string\n}\n\nexport const TransferIdCard = ({\n transferId,\n txLink,\n}: TransferIdCardProps): JSX.Element => {\n const { t } = useTranslation()\n const { hiddenUI } = useWidgetConfig()\n\n const copyTransferId = async () => {\n await navigator.clipboard.writeText(transferId)\n }\n\n const openTransferIdInExplorer = () => {\n window.open(txLink, '_blank')\n }\n\n return (\n <Card type=\"default\" indented>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <CardTitle sx={{ p: 0 }}>{t('main.transferId')}</CardTitle>\n <Box\n sx={{\n gap: 1,\n display: 'flex',\n }}\n >\n <CardIconButton size=\"small\" onClick={copyTransferId}>\n <ContentCopyRounded fontSize=\"inherit\" />\n </CardIconButton>\n {txLink ? (\n <CardIconButton size=\"small\" onClick={openTransferIdInExplorer}>\n <OpenInNew fontSize=\"inherit\" />\n </CardIconButton>\n ) : null}\n {!hiddenUI?.includes(HiddenUI.ContactSupport) ? (\n <ContactSupportButton supportId={transferId} />\n ) : null}\n </Box>\n </Box>\n <Typography\n variant=\"body2\"\n sx={{\n pt: 2,\n wordBreak: 'break-all',\n }}\n >\n {transferId}\n </Typography>\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAa,kBAAkB,EAC7B,YACA,aACsC;CACtC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,aAAa,iBAAiB;CAEtC,MAAM,iBAAiB,YAAY;AACjC,QAAM,UAAU,UAAU,UAAU,WAAW;;CAGjD,MAAM,iCAAiC;AACrC,SAAO,KAAK,QAAQ,SAAS;;AAG/B,QACE,qBAACA,QAAD;EAAM,MAAK;EAAU,UAAA;YAArB,CACE,qBAAC,KAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACZ,gBAAgB;IACjB;aALH,CAOE,oBAAC,WAAD;IAAW,IAAI,EAAE,GAAG,GAAG;cAAG,EAAE,kBAAkB;IAAa,CAAA,EAC3D,qBAAC,KAAD;IACE,IAAI;KACF,KAAK;KACL,SAAS;KACV;cAJH;KAME,oBAAC,gBAAD;MAAgB,MAAK;MAAQ,SAAS;gBACpC,oBAAC,oBAAD,EAAoB,UAAS,WAAY,CAAA;MAC1B,CAAA;KAChB,SACC,oBAAC,gBAAD;MAAgB,MAAK;MAAQ,SAAS;gBACpC,oBAAC,WAAD,EAAW,UAAS,WAAY,CAAA;MACjB,CAAA,GACf;KACH,CAAC,UAAU,SAAS,SAAS,eAAe,GAC3C,oBAAC,sBAAD,EAAsB,WAAW,YAAc,CAAA,GAC7C;KACA;MACF;MACN,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,WAAW;IACZ;aAEA;GACU,CAAA,CACR"}
1
+ {"version":3,"file":"TransferIdCard.js","names":["Card"],"sources":["../../../../src/pages/TransactionDetailsPage/TransferIdCard.tsx"],"sourcesContent":["import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'\nimport OpenInNew from '@mui/icons-material/OpenInNew'\nimport { Box, Typography } from '@mui/material'\nimport type { JSX } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Card } from '../../components/Card/Card.js'\nimport { CardIconButton } from '../../components/Card/CardIconButton.js'\nimport { CardTitle } from '../../components/Card/CardTitle.js'\nimport { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'\nimport { HiddenUI } from '../../types/widget.js'\nimport { ContactSupportButton } from './ContactSupportButton.js'\n\ninterface TransferIdCardProps {\n transferId: string\n txLink?: string\n}\n\nexport const TransferIdCard = ({\n transferId,\n txLink,\n}: TransferIdCardProps): JSX.Element => {\n const { t } = useTranslation()\n const { hiddenUI } = useWidgetConfig()\n\n const copyTransferId = async () => {\n await navigator.clipboard.writeText(transferId)\n }\n\n const openTransferIdInExplorer = () => {\n window.open(txLink, '_blank')\n }\n\n return (\n <Card type=\"default\" indented>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <CardTitle sx={{ p: 0 }}>{t('main.transferId')}</CardTitle>\n <Box\n sx={{\n gap: 1,\n display: 'flex',\n }}\n >\n <CardIconButton size=\"small\" onClick={copyTransferId}>\n <ContentCopyRounded fontSize=\"inherit\" />\n </CardIconButton>\n {txLink ? (\n <CardIconButton size=\"small\" onClick={openTransferIdInExplorer}>\n <OpenInNew fontSize=\"inherit\" />\n </CardIconButton>\n ) : null}\n {!hiddenUI?.includes(HiddenUI.ContactSupport) ? (\n <ContactSupportButton supportId={transferId} />\n ) : null}\n </Box>\n </Box>\n <Typography\n variant=\"body2\"\n sx={{\n pt: 2,\n wordBreak: 'break-all',\n }}\n >\n {transferId}\n </Typography>\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAa,kBAAkB,EAC7B,YACA,aACsC;CACtC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,aAAa,iBAAiB;CAEtC,MAAM,iBAAiB,YAAY;AACjC,QAAM,UAAU,UAAU,UAAU,WAAW;;CAGjD,MAAM,iCAAiC;AACrC,SAAO,KAAK,QAAQ,SAAS;;AAG/B,QACE,qBAACA,QAAD;EAAM,MAAK;EAAU,UAAA;YAArB,CACE,qBAAC,KAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACZ,gBAAgB;IACjB;aALH,CAOE,oBAAC,WAAD;IAAW,IAAI,EAAE,GAAG,GAAG;cAAG,EAAE,kBAAkB;IAAa,CAAA,EAC3D,qBAAC,KAAD;IACE,IAAI;KACF,KAAK;KACL,SAAS;KACV;cAJH;KAME,oBAAC,gBAAD;MAAgB,MAAK;MAAQ,SAAS;gBACpC,oBAAC,oBAAD,EAAoB,UAAS,WAAY,CAAA;MAC1B,CAAA;KAChB,SACC,oBAAC,gBAAD;MAAgB,MAAK;MAAQ,SAAS;gBACpC,oBAAC,WAAD,EAAW,UAAS,WAAY,CAAA;MACjB,CAAA,GACf;KACH,CAAC,UAAU,SAAA,iBAAiC,GAC3C,oBAAC,sBAAD,EAAsB,WAAW,YAAc,CAAA,GAC7C;KACA;MACF;MACN,oBAAC,YAAD;GACE,SAAQ;GACR,IAAI;IACF,IAAI;IACJ,WAAW;IACZ;aAEA;GACU,CAAA,CACR"}
@@ -1,5 +1,5 @@
1
1
  import { useWidgetEvents } from "../../hooks/useWidgetEvents.js";
2
- import { WidgetEvent } from "../../types/events.js";
2
+ import "../../types/events.js";
3
3
  import { useChain } from "../../hooks/useChain.js";
4
4
  import { AlertMessage } from "../../components/Messages/AlertMessage.js";
5
5
  import { BottomSheet } from "../../components/BottomSheet/BottomSheet.js";
@@ -31,7 +31,7 @@ const ConfirmToAddressSheetContent = ({ onContinue, onClose, toAddress, toChainI
31
31
  const ref = useRef(null);
32
32
  useSetContentHeight(ref);
33
33
  const handleContinue = () => {
34
- emitter.emit(WidgetEvent.LowAddressActivityConfirmed, {
34
+ emitter.emit("lowAddressActivityConfirmed", {
35
35
  address: toAddress,
36
36
  chainId: toChainId
37
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmToAddressSheet.js","names":[],"sources":["../../../../src/pages/TransactionPage/ConfirmToAddressSheet.tsx"],"sourcesContent":["import Wallet from '@mui/icons-material/Wallet'\nimport WarningRounded from '@mui/icons-material/WarningRounded'\nimport { Button, Typography } from '@mui/material'\nimport type { ForwardRefExoticComponent, RefAttributes, RefObject } from 'react'\nimport { forwardRef, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { BottomSheet } from '../../components/BottomSheet/BottomSheet.js'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { AlertMessage } from '../../components/Messages/AlertMessage.js'\nimport { useChain } from '../../hooks/useChain.js'\nimport { useSetContentHeight } from '../../hooks/useSetContentHeight.js'\nimport { useWidgetEvents } from '../../hooks/useWidgetEvents.js'\nimport { WidgetEvent } from '../../types/events.js'\nimport {\n IconContainer,\n SendToWalletButtonRow,\n SendToWalletSheetContainer,\n SheetAddressContainer,\n} from '../SendToWallet/SendToWalletPage.style.js'\n\ninterface ConfirmToAddressSheetProps {\n onContinue: () => void\n toAddress: string\n toChainId: number\n}\n\ninterface ConfirmToAddressSheetContentProps extends ConfirmToAddressSheetProps {\n onClose: () => void\n}\n\nexport const ConfirmToAddressSheet: ForwardRefExoticComponent<\n ConfirmToAddressSheetProps & RefAttributes<BottomSheetBase>\n> = forwardRef<BottomSheetBase, ConfirmToAddressSheetProps>((props, ref) => {\n const handleClose = () => {\n ;(ref as RefObject<BottomSheetBase>).current?.close()\n }\n\n return (\n <BottomSheet ref={ref}>\n <ConfirmToAddressSheetContent {...props} onClose={handleClose} />\n </BottomSheet>\n )\n})\n\nconst ConfirmToAddressSheetContent: React.FC<\n ConfirmToAddressSheetContentProps\n> = ({ onContinue, onClose, toAddress, toChainId }) => {\n const { t } = useTranslation()\n const { chain } = useChain(toChainId)\n const emitter = useWidgetEvents()\n const ref = useRef<HTMLElement>(null)\n useSetContentHeight(ref)\n\n const handleContinue = () => {\n emitter.emit(WidgetEvent.LowAddressActivityConfirmed, {\n address: toAddress,\n chainId: toChainId,\n })\n onClose()\n onContinue()\n }\n\n return (\n <SendToWalletSheetContainer ref={ref}>\n <IconContainer>\n <Wallet sx={{ fontSize: 40 }} />\n </IconContainer>\n <Typography variant=\"h6\" sx={{ textAlign: 'center', mb: 2 }}>\n {t('warning.title.lowAddressActivity')}\n </Typography>\n <SheetAddressContainer>\n <Typography>{toAddress}</Typography>\n </SheetAddressContainer>\n <AlertMessage\n severity=\"warning\"\n title={\n <Typography variant=\"body2\" sx={{ color: 'text.primary' }}>\n {t('warning.message.lowAddressActivity', {\n chainName: chain?.name,\n })}\n </Typography>\n }\n icon={<WarningRounded />}\n multiline\n />\n <SendToWalletButtonRow>\n <Button variant=\"text\" onClick={onClose} fullWidth>\n {t('button.cancel')}\n </Button>\n <Button variant=\"contained\" onClick={handleContinue} fullWidth>\n {t('button.continue')}\n </Button>\n </SendToWalletButtonRow>\n </SendToWalletSheetContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AA8BA,MAAa,wBAET,YAAyD,OAAO,QAAQ;CAC1E,MAAM,oBAAoB;AACtB,MAAmC,SAAS,OAAO;;AAGvD,QACE,oBAAC,aAAD;EAAkB;YAChB,oBAAC,8BAAD;GAA8B,GAAI;GAAO,SAAS;GAAe,CAAA;EACrD,CAAA;EAEhB;AAEF,MAAM,gCAED,EAAE,YAAY,SAAS,WAAW,gBAAgB;CACrD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,UAAU,SAAS,UAAU;CACrC,MAAM,UAAU,iBAAiB;CACjC,MAAM,MAAM,OAAoB,KAAK;AACrC,qBAAoB,IAAI;CAExB,MAAM,uBAAuB;AAC3B,UAAQ,KAAK,YAAY,6BAA6B;GACpD,SAAS;GACT,SAAS;GACV,CAAC;AACF,WAAS;AACT,cAAY;;AAGd,QACE,qBAAC,4BAAD;EAAiC;YAAjC;GACE,oBAAC,eAAD,EAAA,UACE,oBAAC,QAAD,EAAQ,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA,EAClB,CAAA;GAChB,oBAAC,YAAD;IAAY,SAAQ;IAAK,IAAI;KAAE,WAAW;KAAU,IAAI;KAAG;cACxD,EAAE,mCAAmC;IAC3B,CAAA;GACb,oBAAC,uBAAD,EAAA,UACE,oBAAC,YAAD,EAAA,UAAa,WAAuB,CAAA,EACd,CAAA;GACxB,oBAAC,cAAD;IACE,UAAS;IACT,OACE,oBAAC,YAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,OAAO,gBAAgB;eACtD,EAAE,sCAAsC,EACvC,WAAW,OAAO,MACnB,CAAC;KACS,CAAA;IAEf,MAAM,oBAAC,gBAAD,EAAkB,CAAA;IACxB,WAAA;IACA,CAAA;GACF,qBAAC,uBAAD,EAAA,UAAA,CACE,oBAAC,QAAD;IAAQ,SAAQ;IAAO,SAAS;IAAS,WAAA;cACtC,EAAE,gBAAgB;IACZ,CAAA,EACT,oBAAC,QAAD;IAAQ,SAAQ;IAAY,SAAS;IAAgB,WAAA;cAClD,EAAE,kBAAkB;IACd,CAAA,CACa,EAAA,CAAA;GACG"}
1
+ {"version":3,"file":"ConfirmToAddressSheet.js","names":[],"sources":["../../../../src/pages/TransactionPage/ConfirmToAddressSheet.tsx"],"sourcesContent":["import Wallet from '@mui/icons-material/Wallet'\nimport WarningRounded from '@mui/icons-material/WarningRounded'\nimport { Button, Typography } from '@mui/material'\nimport type { ForwardRefExoticComponent, RefAttributes, RefObject } from 'react'\nimport { forwardRef, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { BottomSheet } from '../../components/BottomSheet/BottomSheet.js'\nimport type { BottomSheetBase } from '../../components/BottomSheet/types.js'\nimport { AlertMessage } from '../../components/Messages/AlertMessage.js'\nimport { useChain } from '../../hooks/useChain.js'\nimport { useSetContentHeight } from '../../hooks/useSetContentHeight.js'\nimport { useWidgetEvents } from '../../hooks/useWidgetEvents.js'\nimport { WidgetEvent } from '../../types/events.js'\nimport {\n IconContainer,\n SendToWalletButtonRow,\n SendToWalletSheetContainer,\n SheetAddressContainer,\n} from '../SendToWallet/SendToWalletPage.style.js'\n\ninterface ConfirmToAddressSheetProps {\n onContinue: () => void\n toAddress: string\n toChainId: number\n}\n\ninterface ConfirmToAddressSheetContentProps extends ConfirmToAddressSheetProps {\n onClose: () => void\n}\n\nexport const ConfirmToAddressSheet: ForwardRefExoticComponent<\n ConfirmToAddressSheetProps & RefAttributes<BottomSheetBase>\n> = forwardRef<BottomSheetBase, ConfirmToAddressSheetProps>((props, ref) => {\n const handleClose = () => {\n ;(ref as RefObject<BottomSheetBase>).current?.close()\n }\n\n return (\n <BottomSheet ref={ref}>\n <ConfirmToAddressSheetContent {...props} onClose={handleClose} />\n </BottomSheet>\n )\n})\n\nconst ConfirmToAddressSheetContent: React.FC<\n ConfirmToAddressSheetContentProps\n> = ({ onContinue, onClose, toAddress, toChainId }) => {\n const { t } = useTranslation()\n const { chain } = useChain(toChainId)\n const emitter = useWidgetEvents()\n const ref = useRef<HTMLElement>(null)\n useSetContentHeight(ref)\n\n const handleContinue = () => {\n emitter.emit(WidgetEvent.LowAddressActivityConfirmed, {\n address: toAddress,\n chainId: toChainId,\n })\n onClose()\n onContinue()\n }\n\n return (\n <SendToWalletSheetContainer ref={ref}>\n <IconContainer>\n <Wallet sx={{ fontSize: 40 }} />\n </IconContainer>\n <Typography variant=\"h6\" sx={{ textAlign: 'center', mb: 2 }}>\n {t('warning.title.lowAddressActivity')}\n </Typography>\n <SheetAddressContainer>\n <Typography>{toAddress}</Typography>\n </SheetAddressContainer>\n <AlertMessage\n severity=\"warning\"\n title={\n <Typography variant=\"body2\" sx={{ color: 'text.primary' }}>\n {t('warning.message.lowAddressActivity', {\n chainName: chain?.name,\n })}\n </Typography>\n }\n icon={<WarningRounded />}\n multiline\n />\n <SendToWalletButtonRow>\n <Button variant=\"text\" onClick={onClose} fullWidth>\n {t('button.cancel')}\n </Button>\n <Button variant=\"contained\" onClick={handleContinue} fullWidth>\n {t('button.continue')}\n </Button>\n </SendToWalletButtonRow>\n </SendToWalletSheetContainer>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AA8BA,MAAa,wBAET,YAAyD,OAAO,QAAQ;CAC1E,MAAM,oBAAoB;AACtB,MAAmC,SAAS,OAAO;;AAGvD,QACE,oBAAC,aAAD;EAAkB;YAChB,oBAAC,8BAAD;GAA8B,GAAI;GAAO,SAAS;GAAe,CAAA;EACrD,CAAA;EAEhB;AAEF,MAAM,gCAED,EAAE,YAAY,SAAS,WAAW,gBAAgB;CACrD,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,EAAE,UAAU,SAAS,UAAU;CACrC,MAAM,UAAU,iBAAiB;CACjC,MAAM,MAAM,OAAoB,KAAK;AACrC,qBAAoB,IAAI;CAExB,MAAM,uBAAuB;AAC3B,UAAQ,KAAA,+BAA8C;GACpD,SAAS;GACT,SAAS;GACV,CAAC;AACF,WAAS;AACT,cAAY;;AAGd,QACE,qBAAC,4BAAD;EAAiC;YAAjC;GACE,oBAAC,eAAD,EAAA,UACE,oBAAC,QAAD,EAAQ,IAAI,EAAE,UAAU,IAAI,EAAI,CAAA,EAClB,CAAA;GAChB,oBAAC,YAAD;IAAY,SAAQ;IAAK,IAAI;KAAE,WAAW;KAAU,IAAI;KAAG;cACxD,EAAE,mCAAmC;IAC3B,CAAA;GACb,oBAAC,uBAAD,EAAA,UACE,oBAAC,YAAD,EAAA,UAAa,WAAuB,CAAA,EACd,CAAA;GACxB,oBAAC,cAAD;IACE,UAAS;IACT,OACE,oBAAC,YAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,OAAO,gBAAgB;eACtD,EAAE,sCAAsC,EACvC,WAAW,OAAO,MACnB,CAAC;KACS,CAAA;IAEf,MAAM,oBAAC,gBAAD,EAAkB,CAAA;IACxB,WAAA;IACA,CAAA;GACF,qBAAC,uBAAD,EAAA,UAAA,CACE,oBAAC,QAAD;IAAQ,SAAQ;IAAO,SAAS;IAAS,WAAA;cACtC,EAAE,gBAAgB;IACZ,CAAA,EACT,oBAAC,QAAD;IAAQ,SAAQ;IAAY,SAAS;IAAgB,WAAA;cAClD,EAAE,kBAAkB;IACd,CAAA,CACa,EAAA,CAAA;GACG"}