@n1xyz/wallet-widget 0.0.7 → 0.0.9

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 (516) hide show
  1. package/dist/Logic/getPseudoName.js +1 -0
  2. package/dist/Logic/getPseudoName.js.map +1 -0
  3. package/dist/Logic/sessionManager.js +1 -0
  4. package/dist/Logic/sessionManager.js.map +1 -0
  5. package/dist/Logic/transactionManager.js +1 -0
  6. package/dist/Logic/transactionManager.js.map +1 -0
  7. package/dist/Logic/utils.js +1 -0
  8. package/dist/Logic/utils.js.map +1 -0
  9. package/dist/Logic/words.js +1 -0
  10. package/dist/Logic/words.js.map +1 -0
  11. package/dist/Modal/LoadingFallback.js +1 -0
  12. package/dist/Modal/LoadingFallback.js.map +1 -0
  13. package/dist/Modal/N1WalletModal.js +5 -5
  14. package/dist/Modal/N1WalletModal.js.map +1 -0
  15. package/dist/Modal/NTSFlow/LoadingFallback.js +1 -0
  16. package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -0
  17. package/dist/Modal/NTSFlow/NTSFlow.js +1 -0
  18. package/dist/Modal/NTSFlow/NTSFlow.js.map +1 -0
  19. package/dist/Modal/NTSFlow/components/BackButton.js +1 -0
  20. package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -0
  21. package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -0
  22. package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -0
  23. package/dist/Modal/NTSFlow/index.js +1 -0
  24. package/dist/Modal/NTSFlow/index.js.map +1 -0
  25. package/dist/Modal/NTSFlow/views/ConnectView.js +1 -0
  26. package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -0
  27. package/dist/Modal/NTSFlow/views/CreateSessionView.js +1 -0
  28. package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -0
  29. package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -0
  30. package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -0
  31. package/dist/Modal/NTSFlow/views/NoWhitelistView.js +1 -0
  32. package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -0
  33. package/dist/Modal/NTSFlow/views/SigningView.js +1 -0
  34. package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -0
  35. package/dist/Modal/NTSFlow/views/SuccessView.js +1 -0
  36. package/dist/Modal/NTSFlow/views/SuccessView.js.map +1 -0
  37. package/dist/Modal/NordFlow/NordFlow.js +7 -11
  38. package/dist/Modal/NordFlow/NordFlow.js.map +1 -0
  39. package/dist/Modal/NordFlow/components/ChainButton.js +1 -0
  40. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -0
  41. package/dist/Modal/NordFlow/components/EVMChainsButton.js +1 -0
  42. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -0
  43. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -0
  44. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -0
  45. package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -0
  46. package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -0
  47. package/dist/Modal/NordFlow/components/MoreButton.js +1 -0
  48. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -0
  49. package/dist/Modal/NordFlow/components/TransactionTable.js +1 -0
  50. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -0
  51. package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -0
  52. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -0
  53. package/dist/Modal/NordFlow/components/index.js +1 -0
  54. package/dist/Modal/NordFlow/components/index.js.map +1 -0
  55. package/dist/Modal/NordFlow/constants.js +6 -0
  56. package/dist/Modal/NordFlow/constants.js.map +1 -0
  57. package/dist/Modal/NordFlow/hoc/index.js +1 -0
  58. package/dist/Modal/NordFlow/hoc/index.js.map +1 -0
  59. package/dist/Modal/NordFlow/hoc/withImageFallback.js +1 -0
  60. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -0
  61. package/dist/Modal/NordFlow/hooks/index.js +1 -0
  62. package/dist/Modal/NordFlow/hooks/index.js.map +1 -0
  63. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +39 -32
  64. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -0
  65. package/dist/Modal/NordFlow/hooks/useFlowState.js +44 -22
  66. package/dist/Modal/NordFlow/hooks/useFlowState.js.map +1 -0
  67. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +19 -16
  68. package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +1 -0
  69. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -4
  70. package/dist/Modal/NordFlow/hooks/useNordInstance.js +65 -25
  71. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -0
  72. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +73 -52
  73. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -0
  74. package/dist/Modal/NordFlow/index.js +1 -0
  75. package/dist/Modal/NordFlow/index.js.map +1 -0
  76. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +1 -0
  77. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -0
  78. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +1 -0
  79. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -0
  80. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +1 -0
  81. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -0
  82. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +2 -1
  83. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +5 -3
  84. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -0
  85. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +2 -1
  86. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -0
  87. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +1 -0
  88. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -0
  89. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +1 -0
  90. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -0
  91. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +1 -0
  92. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -0
  93. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +1 -0
  94. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -0
  95. package/dist/Modal/NordFlow/screens/index.js +1 -0
  96. package/dist/Modal/NordFlow/screens/index.js.map +1 -0
  97. package/dist/Modal/NordFlow/types.d.ts +1 -0
  98. package/dist/Modal/NordFlow/types.js +2 -0
  99. package/dist/Modal/NordFlow/types.js.map +1 -0
  100. package/dist/Modal/NordFlow/utils/imageUtils.js +1 -0
  101. package/dist/Modal/NordFlow/utils/imageUtils.js.map +1 -0
  102. package/dist/Modal/NordFlow/utils/index.js +1 -0
  103. package/dist/Modal/NordFlow/utils/index.js.map +1 -0
  104. package/dist/Modal/NordFlow/utils/nordUtils.js +1 -0
  105. package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -0
  106. package/dist/Modal/NordFlow/utils/persistence.js +1 -0
  107. package/dist/Modal/NordFlow/utils/persistence.js.map +1 -0
  108. package/dist/Modal/Sidebar/N1Sidebar.js +2 -0
  109. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -0
  110. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +1 -0
  111. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -0
  112. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +1 -0
  113. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -0
  114. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +1 -0
  115. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -0
  116. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +1 -0
  117. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -0
  118. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +1 -0
  119. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -0
  120. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -0
  121. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -0
  122. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +1 -0
  123. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -0
  124. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +1 -0
  125. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -0
  126. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -0
  127. package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -0
  128. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +1 -0
  129. package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -0
  130. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +1 -0
  131. package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -0
  132. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +1 -0
  133. package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -0
  134. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -0
  135. package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -0
  136. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +1 -0
  137. package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -0
  138. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -0
  139. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -0
  140. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +1 -0
  141. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -0
  142. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -0
  143. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -0
  144. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +1 -0
  145. package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -0
  146. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +1 -0
  147. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -0
  148. package/dist/Provider/LazyWalletProvider.js +2 -1
  149. package/dist/Provider/LazyWalletProvider.js.map +1 -0
  150. package/dist/Provider/N1WalletProvider.js +3 -12
  151. package/dist/Provider/N1WalletProvider.js.map +1 -0
  152. package/dist/Provider/context.js +1 -0
  153. package/dist/Provider/context.js.map +1 -0
  154. package/dist/Provider/hooks.js +1 -0
  155. package/dist/Provider/hooks.js.map +1 -0
  156. package/dist/Provider/icons/CoinbaseWalletIcon.js +1 -0
  157. package/dist/Provider/icons/CoinbaseWalletIcon.js.map +1 -0
  158. package/dist/Provider/icons/ConnectionDotsSVG.js +1 -0
  159. package/dist/Provider/icons/ConnectionDotsSVG.js.map +1 -0
  160. package/dist/Provider/icons/MetamaskIcon.js +1 -0
  161. package/dist/Provider/icons/MetamaskIcon.js.map +1 -0
  162. package/dist/Provider/icons/PhantomIcon.js +1 -0
  163. package/dist/Provider/icons/PhantomIcon.js.map +1 -0
  164. package/dist/Provider/icons/UserIcon.js +1 -0
  165. package/dist/Provider/icons/UserIcon.js.map +1 -0
  166. package/dist/Provider/icons/WalletConnectIcon.js +1 -0
  167. package/dist/Provider/icons/WalletConnectIcon.js.map +1 -0
  168. package/dist/Provider/index.js +1 -0
  169. package/dist/Provider/index.js.map +1 -0
  170. package/dist/Provider/types.js +1 -0
  171. package/dist/Provider/types.js.map +1 -0
  172. package/dist/WidgetButton/N1ConnectButton.js +1 -0
  173. package/dist/WidgetButton/N1ConnectButton.js.map +1 -0
  174. package/dist/components/Logo.js +1 -0
  175. package/dist/components/Logo.js.map +1 -0
  176. package/dist/components/QRCodeLoader.js +1 -0
  177. package/dist/components/QRCodeLoader.js.map +1 -0
  178. package/dist/components/logos/ArbitrumLogo.js +1 -0
  179. package/dist/components/logos/ArbitrumLogo.js.map +1 -0
  180. package/dist/components/logos/BaseLogo.js +1 -0
  181. package/dist/components/logos/BaseLogo.js.map +1 -0
  182. package/dist/components/logos/BeraLogo.js +1 -0
  183. package/dist/components/logos/BeraLogo.js.map +1 -0
  184. package/dist/components/logos/BitcoinLogo.js +1 -0
  185. package/dist/components/logos/BitcoinLogo.js.map +1 -0
  186. package/dist/components/logos/EVMChainsGroup.js +1 -0
  187. package/dist/components/logos/EVMChainsGroup.js.map +1 -0
  188. package/dist/components/logos/EthereumLogo.js +1 -0
  189. package/dist/components/logos/EthereumLogo.js.map +1 -0
  190. package/dist/components/logos/HyperliquidLogo.js +1 -0
  191. package/dist/components/logos/HyperliquidLogo.js.map +1 -0
  192. package/dist/components/logos/MoreChainsGroup.js +1 -0
  193. package/dist/components/logos/MoreChainsGroup.js.map +1 -0
  194. package/dist/components/logos/OptimismLogo.js +1 -0
  195. package/dist/components/logos/OptimismLogo.js.map +1 -0
  196. package/dist/components/logos/SolanaLogo.js +1 -0
  197. package/dist/components/logos/SolanaLogo.js.map +1 -0
  198. package/dist/components/logos/index.js +1 -0
  199. package/dist/components/logos/index.js.map +1 -0
  200. package/dist/config/solana.js +1 -0
  201. package/dist/config/solana.js.map +1 -0
  202. package/dist/config.js +1 -0
  203. package/dist/config.js.map +1 -0
  204. package/dist/errors/types.js +1 -0
  205. package/dist/errors/types.js.map +1 -0
  206. package/dist/index.js +1 -0
  207. package/dist/index.js.map +1 -0
  208. package/dist/main.css +1 -1
  209. package/dist/utils/dynamicImports.js +1 -0
  210. package/dist/utils/dynamicImports.js.map +1 -0
  211. package/dist/utils/logger.d.ts +1 -0
  212. package/dist/utils/logger.js +26 -2
  213. package/dist/utils/logger.js.map +1 -0
  214. package/dist/utils/shortenString.js +1 -0
  215. package/dist/utils/shortenString.js.map +1 -0
  216. package/package.json +2 -2
  217. package/dist/Modal/BackButton.d.ts +0 -3
  218. package/dist/Modal/BackButton.js +0 -26
  219. package/dist/Modal/ConnectView.d.ts +0 -1
  220. package/dist/Modal/ConnectView.js +0 -68
  221. package/dist/Modal/CreateSessionView.d.ts +0 -1
  222. package/dist/Modal/CreateSessionView.js +0 -248
  223. package/dist/Modal/CreateUserView.d.ts +0 -1
  224. package/dist/Modal/CreateUserView.js +0 -160
  225. package/dist/Modal/ModalHeader.d.ts +0 -1
  226. package/dist/Modal/ModalHeader.js +0 -20
  227. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +0 -9
  228. package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +0 -145
  229. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +0 -14
  230. package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +0 -75
  231. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +0 -7
  232. package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +0 -5
  233. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +0 -1
  234. package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +0 -5
  235. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +0 -13
  236. package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +0 -58
  237. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +0 -6
  238. package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +0 -6
  239. package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +0 -5
  240. package/dist/Modal/NTSFlow/NordFlow/components/index.js +0 -5
  241. package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +0 -37
  242. package/dist/Modal/NTSFlow/NordFlow/constants.js +0 -223
  243. package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +0 -8
  244. package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +0 -8
  245. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  246. package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +0 -43
  247. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +0 -38
  248. package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +0 -166
  249. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +0 -32
  250. package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +0 -163
  251. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
  252. package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +0 -101
  253. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +0 -32
  254. package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +0 -193
  255. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +0 -2
  256. package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +0 -69
  257. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  258. package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +0 -89
  259. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +0 -30
  260. package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +0 -132
  261. package/dist/Modal/NTSFlow/NordFlow/index.d.ts +0 -3
  262. package/dist/Modal/NTSFlow/NordFlow/index.js +0 -3
  263. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  264. package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
  265. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  266. package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  267. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  268. package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
  269. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
  270. package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +0 -20
  271. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  272. package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +0 -6
  273. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  274. package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
  275. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
  276. package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +0 -14
  277. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  278. package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
  279. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  280. package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
  281. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  282. package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +0 -13
  283. package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +0 -10
  284. package/dist/Modal/NTSFlow/NordFlow/screens/index.js +0 -10
  285. package/dist/Modal/NTSFlow/NordFlow/types.d.ts +0 -105
  286. package/dist/Modal/NTSFlow/NordFlow/types.js +0 -34
  287. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +0 -24
  288. package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +0 -83
  289. package/dist/Modal/NoWhitelistView.d.ts +0 -1
  290. package/dist/Modal/NoWhitelistView.js +0 -42
  291. package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +0 -11
  292. package/dist/Modal/NordFlow/NordFlowWrapper.js +0 -11
  293. package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +0 -9
  294. package/dist/Modal/NordFlow/WalletConnectionFlow.js +0 -145
  295. package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +0 -14
  296. package/dist/Modal/NordFlow/components/AnimatedButton.js +0 -75
  297. package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  298. package/dist/Modal/NordFlow/hooks/useButtonTyping.js +0 -43
  299. package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +0 -32
  300. package/dist/Modal/NordFlow/hooks/useNordSession.js +0 -391
  301. package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +0 -2
  302. package/dist/Modal/NordFlow/hooks/useTableValues.js +0 -69
  303. package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  304. package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +0 -89
  305. package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +0 -14
  306. package/dist/Modal/NordFlow/hooks/useWalletConnect.js +0 -221
  307. package/dist/Modal/NordFlow/index copy.d.ts +0 -1
  308. package/dist/Modal/NordFlow/index copy.js +0 -1
  309. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +0 -5
  310. package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +0 -17
  311. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  312. package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +0 -153
  313. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  314. package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +0 -47
  315. package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  316. package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +0 -62
  317. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +0 -1
  318. package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +0 -116
  319. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +0 -5
  320. package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +0 -138
  321. package/dist/Modal/SigningView.d.ts +0 -1
  322. package/dist/Modal/SigningView.js +0 -5
  323. package/dist/Modal/SuccessView.d.ts +0 -1
  324. package/dist/Modal/SuccessView.js +0 -10
  325. package/dist/NordFlow/WalletConnectionFlow.d.ts +0 -9
  326. package/dist/NordFlow/WalletConnectionFlow.js +0 -145
  327. package/dist/NordFlow/components/AnimatedButton.d.ts +0 -14
  328. package/dist/NordFlow/components/AnimatedButton.js +0 -75
  329. package/dist/NordFlow/components/ChainButton.d.ts +0 -7
  330. package/dist/NordFlow/components/ChainButton.js +0 -5
  331. package/dist/NordFlow/components/LoadingSquares.d.ts +0 -1
  332. package/dist/NordFlow/components/LoadingSquares.js +0 -5
  333. package/dist/NordFlow/components/TransactionTable.d.ts +0 -13
  334. package/dist/NordFlow/components/TransactionTable.js +0 -58
  335. package/dist/NordFlow/components/WaitingMessage.d.ts +0 -6
  336. package/dist/NordFlow/components/WaitingMessage.js +0 -6
  337. package/dist/NordFlow/components/index.d.ts +0 -5
  338. package/dist/NordFlow/components/index.js +0 -5
  339. package/dist/NordFlow/constants.d.ts +0 -37
  340. package/dist/NordFlow/constants.js +0 -223
  341. package/dist/NordFlow/hooks/index.d.ts +0 -8
  342. package/dist/NordFlow/hooks/index.js +0 -8
  343. package/dist/NordFlow/hooks/useButtonTyping.d.ts +0 -7
  344. package/dist/NordFlow/hooks/useButtonTyping.js +0 -43
  345. package/dist/NordFlow/hooks/useDepositFlow.d.ts +0 -38
  346. package/dist/NordFlow/hooks/useDepositFlow.js +0 -166
  347. package/dist/NordFlow/hooks/useFlowState.d.ts +0 -32
  348. package/dist/NordFlow/hooks/useFlowState.js +0 -163
  349. package/dist/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
  350. package/dist/NordFlow/hooks/useInterruptHandler.js +0 -101
  351. package/dist/NordFlow/hooks/useNordSession.d.ts +0 -32
  352. package/dist/NordFlow/hooks/useNordSession.js +0 -193
  353. package/dist/NordFlow/hooks/useTableValues.d.ts +0 -2
  354. package/dist/NordFlow/hooks/useTableValues.js +0 -69
  355. package/dist/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
  356. package/dist/NordFlow/hooks/useWaitingMessage.js +0 -89
  357. package/dist/NordFlow/hooks/useWalletConnect.d.ts +0 -30
  358. package/dist/NordFlow/hooks/useWalletConnect.js +0 -132
  359. package/dist/NordFlow/index.d.ts +0 -3
  360. package/dist/NordFlow/index.js +0 -3
  361. package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  362. package/dist/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
  363. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  364. package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  365. package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  366. package/dist/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
  367. package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
  368. package/dist/NordFlow/screens/04-AmountInputScreen.js +0 -20
  369. package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  370. package/dist/NordFlow/screens/05-DepositProgressScreen.js +0 -6
  371. package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  372. package/dist/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
  373. package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
  374. package/dist/NordFlow/screens/07-NordAuthScreen.js +0 -14
  375. package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  376. package/dist/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
  377. package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  378. package/dist/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
  379. package/dist/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
  380. package/dist/NordFlow/screens/10-ErrorScreen.js +0 -13
  381. package/dist/NordFlow/screens/index.d.ts +0 -10
  382. package/dist/NordFlow/screens/index.js +0 -10
  383. package/dist/NordFlow/types.d.ts +0 -105
  384. package/dist/NordFlow/types.js +0 -34
  385. package/dist/NordFlow/utils/persistence.d.ts +0 -24
  386. package/dist/NordFlow/utils/persistence.js +0 -83
  387. package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +0 -9
  388. package/dist/WalletConnectionFlow/WalletConnectionFlow.js +0 -145
  389. package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +0 -14
  390. package/dist/WalletConnectionFlow/components/AnimatedButton.js +0 -75
  391. package/dist/WalletConnectionFlow/components/ChainButton.d.ts +0 -7
  392. package/dist/WalletConnectionFlow/components/ChainButton.js +0 -5
  393. package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +0 -1
  394. package/dist/WalletConnectionFlow/components/LoadingSquares.js +0 -5
  395. package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +0 -13
  396. package/dist/WalletConnectionFlow/components/TransactionTable.js +0 -58
  397. package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +0 -6
  398. package/dist/WalletConnectionFlow/components/WaitingMessage.js +0 -6
  399. package/dist/WalletConnectionFlow/components/index.d.ts +0 -5
  400. package/dist/WalletConnectionFlow/components/index.js +0 -5
  401. package/dist/WalletConnectionFlow/constants.d.ts +0 -37
  402. package/dist/WalletConnectionFlow/constants.js +0 -223
  403. package/dist/WalletConnectionFlow/hooks/index.d.ts +0 -8
  404. package/dist/WalletConnectionFlow/hooks/index.js +0 -8
  405. package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +0 -7
  406. package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +0 -43
  407. package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +0 -38
  408. package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +0 -166
  409. package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +0 -32
  410. package/dist/WalletConnectionFlow/hooks/useFlowState.js +0 -163
  411. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +0 -27
  412. package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +0 -101
  413. package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +0 -32
  414. package/dist/WalletConnectionFlow/hooks/useNordSession.js +0 -193
  415. package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +0 -2
  416. package/dist/WalletConnectionFlow/hooks/useTableValues.js +0 -69
  417. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +0 -6
  418. package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +0 -89
  419. package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +0 -30
  420. package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +0 -132
  421. package/dist/WalletConnectionFlow/index.d.ts +0 -3
  422. package/dist/WalletConnectionFlow/index.js +0 -3
  423. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
  424. package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +0 -17
  425. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
  426. package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +0 -47
  427. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
  428. package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +0 -7
  429. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +0 -8
  430. package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +0 -20
  431. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +0 -7
  432. package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +0 -6
  433. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
  434. package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +0 -99
  435. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +0 -7
  436. package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +0 -14
  437. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
  438. package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +0 -20
  439. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
  440. package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +0 -18
  441. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +0 -7
  442. package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +0 -13
  443. package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +0 -8
  444. package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +0 -20
  445. package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +0 -8
  446. package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +0 -28
  447. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +0 -6
  448. package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +0 -20
  449. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +0 -7
  450. package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +0 -7
  451. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +0 -6
  452. package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +0 -17
  453. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +0 -7
  454. package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +0 -6
  455. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +0 -8
  456. package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +0 -99
  457. package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +0 -7
  458. package/dist/WalletConnectionFlow/screens/ErrorScreen.js +0 -13
  459. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +0 -6
  460. package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +0 -47
  461. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +0 -6
  462. package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +0 -47
  463. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +0 -5
  464. package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +0 -18
  465. package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +0 -7
  466. package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +0 -14
  467. package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +0 -6
  468. package/dist/WalletConnectionFlow/screens/SigningScreen.js +0 -6
  469. package/dist/WalletConnectionFlow/screens/index.d.ts +0 -10
  470. package/dist/WalletConnectionFlow/screens/index.js +0 -10
  471. package/dist/WalletConnectionFlow/types.d.ts +0 -105
  472. package/dist/WalletConnectionFlow/types.js +0 -34
  473. package/dist/WalletConnectionFlow/utils/persistence.d.ts +0 -24
  474. package/dist/WalletConnectionFlow/utils/persistence.js +0 -83
  475. package/dist/components/LazyLoadWrapper.d.ts +0 -8
  476. package/dist/components/LazyLoadWrapper.js +0 -17
  477. package/dist/components/WalletDeposit/AnimatedButton.d.ts +0 -17
  478. package/dist/components/WalletDeposit/AnimatedButton.js +0 -29
  479. package/dist/components/WalletDeposit/components/ChainButton.d.ts +0 -7
  480. package/dist/components/WalletDeposit/components/ChainButton.js +0 -5
  481. package/dist/components/WalletDeposit/components/LoadingSquares.d.ts +0 -1
  482. package/dist/components/WalletDeposit/components/LoadingSquares.js +0 -5
  483. package/dist/components/WalletDeposit/components/TransactionTable.d.ts +0 -13
  484. package/dist/components/WalletDeposit/components/TransactionTable.js +0 -58
  485. package/dist/components/WalletDeposit/components/WaitingMessage.d.ts +0 -6
  486. package/dist/components/WalletDeposit/components/WaitingMessage.js +0 -6
  487. package/dist/components/WalletDeposit/constants.d.ts +0 -15
  488. package/dist/components/WalletDeposit/constants.js +0 -32
  489. package/dist/components/WalletDeposit/hooks.d.ts +0 -9
  490. package/dist/components/WalletDeposit/hooks.js +0 -185
  491. package/dist/components/WalletDeposit/index.d.ts +0 -1
  492. package/dist/components/WalletDeposit/index.js +0 -136
  493. package/dist/components/WalletDeposit/screens/AmountInputScreen.d.ts +0 -12
  494. package/dist/components/WalletDeposit/screens/AmountInputScreen.js +0 -18
  495. package/dist/components/WalletDeposit/screens/AppsTableScreen.d.ts +0 -8
  496. package/dist/components/WalletDeposit/screens/AppsTableScreen.js +0 -28
  497. package/dist/components/WalletDeposit/screens/ChainSelectionScreen.d.ts +0 -5
  498. package/dist/components/WalletDeposit/screens/ChainSelectionScreen.js +0 -8
  499. package/dist/components/WalletDeposit/screens/InitialScreen.d.ts +0 -9
  500. package/dist/components/WalletDeposit/screens/InitialScreen.js +0 -18
  501. package/dist/components/WalletDeposit/screens/SigningScreen.d.ts +0 -6
  502. package/dist/components/WalletDeposit/screens/SigningScreen.js +0 -6
  503. package/dist/components/WalletDeposit/screens/SuccessScreen.d.ts +0 -12
  504. package/dist/components/WalletDeposit/screens/SuccessScreen.js +0 -7
  505. package/dist/components/WalletDeposit/types.d.ts +0 -48
  506. package/dist/components/WalletDeposit/types.js +0 -1
  507. package/dist/config/dynamic.d.ts +0 -20
  508. package/dist/config/dynamic.js +0 -47
  509. package/dist/hooks/useSolanaSession.d.ts +0 -17
  510. package/dist/hooks/useSolanaSession.js +0 -180
  511. package/dist/utils/lazyLoad.d.ts +0 -3
  512. package/dist/utils/lazyLoad.js +0 -9
  513. package/dist/utils/react-shim.d.ts +0 -2
  514. package/dist/utils/react-shim.js +0 -6
  515. package/dist/utils/solana-session.d.ts +0 -84
  516. package/dist/utils/solana-session.js +0 -230
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionTable.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/TransactionTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import { TableValues } from '../types';\nimport { shortenAddress } from '../utils/nordUtils';\nimport { getExplorerUrl } from '../../../Logic/transactionManager';\n\ninterface TransactionTableProps {\n tableValues: TableValues & {\n amount?: { text: string; visible: boolean; typing: boolean };\n };\n onClose?: () => void;\n}\n\nexport function TransactionTable({\n tableValues,\n onClose,\n}: TransactionTableProps) {\n // Friendly labels for the keys\n const getLabel = (key: string) => {\n const labels: Record<string, string> = {\n amount: 'Amount',\n tx: 'Transaction ID',\n from: 'From',\n to: 'To',\n network: 'Network',\n status: 'Status',\n };\n\n return labels[key] || key;\n };\n\n // Get appropriate color for values based on key\n const getValueStyles = (key: string, value: string) => {\n if (key === 'status') {\n if (\n value.toLowerCase().includes('success') ||\n value.toLowerCase().includes('confirmed')\n ) {\n return 'text-green-500 dark:text-emerald-500 font-medium';\n }\n if (value.toLowerCase().includes('pending')) {\n return 'text-amber-500 dark:text-amber-400 font-medium';\n }\n if (\n value.toLowerCase().includes('fail') ||\n value.toLowerCase().includes('error')\n ) {\n return 'text-red-500 dark:text-red-400 font-medium';\n }\n }\n\n if (key === 'tx') {\n return 'text-primary-600 dark:text-primary-400 text-xs font-medium hover:text-primary-700 dark:hover:text-primary-300 transition-colors duration-200';\n }\n\n if (key === 'network') {\n return 'text-purple-600 dark:text-purple-400 font-medium';\n }\n\n if (key === 'from' || key === 'to') {\n return 'text-gray-800 dark:text-gray-200 text-xs font-medium hover:text-primary-600 dark:hover:text-primary-400 transition-colors duration-200';\n }\n\n if (key === 'amount') {\n return 'text-green-600 dark:text-emerald-500 font-semibold';\n }\n\n return 'text-gray-900 dark:text-gray-50 font-medium';\n };\n\n // Format display value with ellipsis for long text\n const getDisplayValue = (key: string, value: string) => {\n if (key === 'tx') {\n return shortenAddress(value, 5, 4);\n }\n\n if (key === 'from' || key === 'to') {\n return shortenAddress(value, 5, 4);\n }\n\n return value;\n };\n\n // Get explorer URL for transaction ID or address\n const getExplorerLink = (key: string, value: string) => {\n // Extract network from tableValues to determine which explorer to use\n const network = tableValues.network?.text || 'solana-mainnet';\n\n if (key === 'tx') {\n return getExplorerUrl(value, network);\n }\n\n if (key === 'from') {\n return `https://explorer.solana.com/address/${value}?cluster=devnet`;\n }\n\n return '';\n };\n\n // Order of fields to display\n const fieldOrder = ['amount', 'status', 'network', 'from', 'to', 'tx'];\n\n // Sort entries based on fieldOrder\n const sortedEntries = Object.entries(tableValues).sort(([keyA], [keyB]) => {\n const indexA = fieldOrder.indexOf(keyA);\n const indexB = fieldOrder.indexOf(keyB);\n return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);\n });\n\n return (\n <div className=\"relative w-full h-full bg-gray-100 dark:bg-gray-950 border border-gray-200 dark:border-gray-800 p-5 rounded-sm flex flex-col justify-center\">\n {onClose && (\n <button\n onClick={onClose}\n className=\"absolute top-3 right-2 text-gray-500 dark:text-gray-600 hover:text-gray-500 dark:hover:text-gray-300 transition-colors duration-200 focus:outline-none\"\n aria-label=\"Close details\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n <div className=\"space-y-3 text-sm pt-5\">\n {sortedEntries.map(([key, value]) => (\n <div key={key} className=\"flex items-center justify-between py-2 \">\n <span className=\"text-gray-500 dark:text-gray-400 font-medium min-w-[120px]\">\n {getLabel(key)}\n </span>\n <div\n className={`relative transition-all duration-300 ${value.visible ? 'opacity-100' : 'opacity-0'} max-w-[65%] text-right flex-1`}\n >\n {(key === 'tx' || key === 'from') &&\n getExplorerLink(key, value.text) ? (\n <a\n href={getExplorerLink(key, value.text)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${getValueStyles(key, value.text)} break-all inline-block group`}\n title={value.text}\n >\n <span className=\"underline hover:font-bold\">\n {getDisplayValue(key, value.text)}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n </a>\n ) : (\n <span\n className={`${getValueStyles(key, value.text)} break-all inline-block`}\n title={value.text}\n >\n {value.text}\n </span>\n )}\n {value.typing && (\n <span className=\"inline-block ml-1 w-[2px] h-[14px] bg-primary-500 dark:bg-primary-400 animate-pulse\"></span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
@@ -4,3 +4,4 @@ export function WaitingMessage(_a) {
4
4
  var message = _a.message;
5
5
  return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-6", children: [_jsx(LoadingSquares, {}), _jsxs("div", { className: "space-y-2 text-center w-[300px]", children: [_jsxs("h3", { className: "text-xl text-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Waiting for transaction" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.title })] }), _jsxs("div", { className: "text-sm text-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Please sign the transaction in your wallet" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.subtitle })] })] })] }));
6
6
  }
7
+ //# sourceMappingURL=WaitingMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitingMessage.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/WaitingMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,MAAM,UAAU,cAAc,CAAC,EAAgC;QAA9B,OAAO,aAAA;IACtC,OAAO,CACL,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,cAAc,KAAG,EAClB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAI,SAAS,EAAC,oIAAoI,aAChJ,eAAM,SAAS,EAAC,gCAAgC,iBAAa,MAAM,wCAE5D,EACP,cAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,GAC7B,IACH,EACL,eAAK,SAAS,EAAC,gGAAgG,aAC7G,eAAM,SAAS,EAAC,gCAAgC,iBAAa,MAAM,2DAE5D,EACP,cAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,GAChC,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { WaitingMessageState } from '../types';\nimport { LoadingSquares } from './LoadingSquares';\n\ninterface WaitingMessageProps {\n message: WaitingMessageState;\n}\n\nexport function WaitingMessage({ message }: WaitingMessageProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n <LoadingSquares />\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold\">\n <span className=\"opacity-0 absolute select-none\" aria-hidden=\"true\">\n Waiting for transaction\n </span>\n <div className=\"absolute min-w-[280px]\">\n {message.visible && message.title}\n </div>\n </h3>\n <div className=\"text-sm text-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative\">\n <span className=\"opacity-0 absolute select-none\" aria-hidden=\"true\">\n Please sign the transaction in your wallet\n </span>\n <div className=\"absolute min-w-[280px]\">\n {message.visible && message.subtitle}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -3,3 +3,4 @@ export * from './ChainButton';
3
3
  export * from './LoadingSquares';
4
4
  export * from './TransactionTable';
5
5
  export * from './WaitingMessage';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './LoadingSquares';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\n"]}
@@ -134,6 +134,11 @@ export var STATE_TRANSITIONS = [
134
134
  to: FlowState.ERROR,
135
135
  // When deposit fails
136
136
  },
137
+ {
138
+ from: FlowState.DEPOSIT_PROGRESS,
139
+ to: FlowState.AMOUNT_INPUT,
140
+ // When deposit fails but we want to allow retry
141
+ },
137
142
  // From DEPOSIT_SUCCESS state
138
143
  {
139
144
  from: FlowState.DEPOSIT_SUCCESS,
@@ -190,3 +195,4 @@ export var FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';
190
195
  * Time in milliseconds after which a persisted state is considered stale
191
196
  */
192
197
  export var STATE_EXPIRY_TIME = 30 * 60 * 1000; // 30 minutes
198
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowState, StateTransition } from './types';\n\nexport const ANIMATION_EASE = 'cubic-bezier(0.16, 1, 0.3, 1)';\nexport const TYPING_INTERVAL = 50;\nexport const ANIMATION_DURATION = 3000;\n\nexport const MIN_DEPOSIT = 10000;\nexport const MAX_DEPOSIT = 10000;\n\nexport const INITIAL_APPS = Array.from({ length: 20 }, (_, i) => ({\n name: `App${i + 1}`,\n color: '#ff2b1f',\n progress: 0,\n}));\n\n/**\n * Available chains for deposit\n */\nexport const AVAILABLE_CHAINS = [\n {\n id: 'ethereum',\n name: 'Ethereum',\n logo: 'ethereum-logo.svg',\n },\n {\n id: 'solana',\n name: 'Solana',\n logo: 'solana-logo.svg',\n },\n];\n\nexport const CHAINS = [\n {\n id: 'ethereum',\n name: 'Ethereum',\n logo: '/images/chains/ethereum.svg',\n },\n {\n id: 'polygon',\n name: 'Polygon',\n logo: '/images/chains/polygon.svg',\n },\n {\n id: 'arbitrum',\n name: 'Arbitrum',\n logo: '/images/chains/arbitrum.svg',\n },\n {\n id: 'optimism',\n name: 'Optimism',\n logo: '/images/chains/optimism.svg',\n },\n];\n\n/**\n * State machine transitions\n * Defines all possible transitions between states and their conditions\n */\nexport const STATE_TRANSITIONS: StateTransition[] = [\n // From IDLE state\n {\n from: FlowState.IDLE,\n to: FlowState.CONNECTING_WALLET,\n condition: (context) => !context.walletType, // Only if wallet is not connected\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.ERROR,\n // When wallet connection fails\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.CHAIN_SELECTION,\n condition: (context) => context.walletType === 'solana', // If Solana wallet and no Nord account\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.AUTH_LOADING,\n condition: (context) =>\n context.walletType === 'solana' && context.hasNordAccount, // If Solana wallet and no Nord account\n },\n {\n from: FlowState.CONNECTING_WALLET,\n to: FlowState.FINAL_SUCCESS,\n condition: (context) =>\n context.walletType === 'solana' &&\n context.hasNordAccount &&\n context.hasActiveSession, // If Solana wallet and no Nord account\n },\n\n // From ETH_TO_SOL_AUTH state\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.CHAIN_SELECTION,\n condition: (context) => !context.hasNordAccount, // After ETH auth, if no Nord account\n },\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.AUTH_LOADING,\n condition: (context) => context.hasNordAccount && !context.hasActiveSession,\n // After ETH auth, if has Nord account but no active session\n },\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.FINAL_SUCCESS,\n condition: (context) => context.hasNordAccount && context.hasActiveSession,\n // After ETH auth, if has Nord account and active session\n },\n {\n from: FlowState.ETH_TO_SOL_AUTH,\n to: FlowState.ERROR,\n // If ETH to SOL auth fails\n },\n\n // From CHAIN_SELECTION state\n {\n from: FlowState.CHAIN_SELECTION,\n to: FlowState.AMOUNT_INPUT,\n // After chain selection\n },\n\n // From AMOUNT_INPUT state\n {\n from: FlowState.AMOUNT_INPUT,\n to: FlowState.DEPOSIT_PROGRESS,\n // After amount input\n },\n {\n from: FlowState.AMOUNT_INPUT,\n to: FlowState.CHAIN_SELECTION,\n // If user goes back to chain selection\n },\n\n // From DEPOSIT_PROGRESS state\n {\n from: FlowState.DEPOSIT_PROGRESS,\n to: FlowState.DEPOSIT_SUCCESS,\n // When deposit is successful\n },\n {\n from: FlowState.DEPOSIT_PROGRESS,\n to: FlowState.ERROR,\n // When deposit fails\n },\n {\n from: FlowState.DEPOSIT_PROGRESS,\n to: FlowState.AMOUNT_INPUT,\n // When deposit fails but we want to allow retry\n },\n\n // From DEPOSIT_SUCCESS state\n {\n from: FlowState.DEPOSIT_SUCCESS,\n to: FlowState.AUTH_LOADING,\n condition: (context) => !context.hasActiveSession, // If no active Nord session\n },\n {\n from: FlowState.DEPOSIT_SUCCESS,\n to: FlowState.FINAL_SUCCESS,\n condition: (context) => context.hasActiveSession, // If active Nord session exists\n },\n {\n from: FlowState.AUTH_LOADING,\n to: FlowState.ERROR,\n // When Nord auth fails to start\n },\n\n // From AUTH_LOADING state\n {\n from: FlowState.AUTH_LOADING,\n to: FlowState.FINAL_SUCCESS,\n // When auth is successful\n },\n {\n from: FlowState.AUTH_LOADING,\n to: FlowState.ERROR,\n // When auth fails\n },\n\n // From ERROR state\n {\n from: FlowState.ERROR,\n to: FlowState.IDLE,\n // When restarting after error\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n FlowState.DEPOSIT_SUCCESS,\n FlowState.AUTH_LOADING,\n ],\n to: FlowState.IDLE,\n // For recovery after interruption\n },\n];\n\n/**\n * Local storage key for persisting flow state\n */\nexport const FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';\n\n/**\n * Time in milliseconds after which a persisted state is considered stale\n */\nexport const STATE_EXPIRY_TIME = 30 * 60 * 1000; // 30 minutes\n"]}
@@ -1 +1,2 @@
1
1
  export * from './withImageFallback';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hoc/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './withImageFallback';\n"]}
@@ -58,3 +58,4 @@ export function withImageFallback(WrappedComponent) {
58
58
  WithImageFallback.displayName = "withImageFallback(".concat(wrappedComponentName, ")");
59
59
  return WithImageFallback;
60
60
  }
61
+ //# sourceMappingURL=withImageFallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withImageFallback.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hoc/withImageFallback.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,gBAAkC;IAElC,2DAA2D;IAC3D,IAAM,iBAAiB,GAAgB,UAAC,KAAK;QAC3C,iDAAiD;QACjD,IAAM,WAAW,GAAG,UAAC,IAAqB;YACxC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAM,OAAO,GAAG,IAA0B,CAAC;YAE3C,4DAA4D;YAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,IAAM,KAAkD,OAAO,CAAC,KAAK,EAA7D,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA7C,8CAA+C,CAAgB,CAAC;gBAEtE,OAAO,CACL,KAAC,iBAAiB,aAChB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,IAAI,OAAO,EACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,IAChB,IAAI,EACR,CACH,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EACtB,WAAW,CACZ,CAAC;gBAEF,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,eAAO,OAAO,CAAC,KAAK,GAAI,QAAQ,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,sDAAsD;QACtD,IAAM,iBAAiB,GAAG,KAAC,gBAAgB,eAAK,KAAK,EAAI,CAAC;QAC1D,OAAO,WAAW,CAAC,iBAAiB,CAAuB,CAAC;IAC9D,CAAC,CAAC;IAEF,iCAAiC;IACjC,IAAM,oBAAoB,GACxB,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,iBAAiB,CAAC,WAAW,GAAG,4BAAqB,oBAAoB,MAAG,CAAC;IAE7E,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import React, { ComponentType, forwardRef } from 'react';\nimport { ImageWithFallback } from '../components';\n\n/**\n * A Higher-Order Component (HOC) that adds image fallback functionality to a component\n * @param WrappedComponent The component to wrap\n * @returns A new component with image fallback functionality\n */\nexport function withImageFallback<P extends object>(\n WrappedComponent: ComponentType<P>\n): React.FC<P> {\n // Create a new component that wraps the original component\n const WithImageFallback: React.FC<P> = (props) => {\n // Function to recursively process React elements\n const processNode = (node: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const element = node as React.ReactElement;\n\n // If it's an img element, replace it with ImageWithFallback\n if (element.type === 'img') {\n const { src, alt, width, height, className, ...rest } = element.props;\n\n return (\n <ImageWithFallback\n src={src}\n alt={alt || 'Image'}\n width={width}\n height={height}\n className={className}\n {...rest}\n />\n );\n }\n\n // If it has children, process them recursively\n if (element.props && element.props.children) {\n const children = React.Children.map(\n element.props.children,\n processNode\n );\n\n return React.cloneElement(element, { ...element.props }, children);\n }\n\n return element;\n };\n\n // Render the wrapped component and process its output\n const renderedComponent = <WrappedComponent {...props} />;\n return processNode(renderedComponent) as React.ReactElement;\n };\n\n // Set display name for debugging\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n WithImageFallback.displayName = `withImageFallback(${wrappedComponentName})`;\n\n return WithImageFallback;\n}\n"]}
@@ -3,3 +3,4 @@ export * from './useNordWalletConnect';
3
3
  export * from './useInterruptHandler';
4
4
  export * from './useFlowState';
5
5
  export * from './useNordInstance';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './useDepositFlow';\nexport * from './useNordWalletConnect';\nexport * from './useInterruptHandler';\nexport * from './useFlowState';\nexport * from './useNordInstance';\n"]}
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
- import { useCallback, useEffect, useState } from 'react';
37
+ import { useCallback, useEffect, useRef, useState } from 'react';
38
38
  import { FlowState } from '../types';
39
39
  import { AVAILABLE_CHAINS } from '../constants';
40
40
  import { getExplorerUrl, } from '../../../Logic/transactionManager';
@@ -60,30 +60,33 @@ export var useDepositFlow = function (options) {
60
60
  var _e = useState(false), isDepositing = _e[0], setIsDepositing = _e[1];
61
61
  var _f = useState(context.transactionId), transactionId = _f[0], setTransactionId = _f[1];
62
62
  var _g = useState(null), transactionResult = _g[0], setTransactionResult = _g[1];
63
+ // Use refs to track previous values
64
+ var prevContextRef = useRef(context);
63
65
  // Use the nordUser from context, falling back to the one from useNordInstance
64
66
  var currentNordUser = nordUser || instanceNordUser;
67
+ // Handle transaction ID changes
65
68
  useEffect(function () {
66
- if (txId) {
67
- // Transition to the appropriate screen based on whether user has an active session
68
- if (context.hasActiveSession) {
69
- // If user has an active session, go directly to FINAL_SUCCESS
69
+ if (!txId)
70
+ return;
71
+ // Transition to the appropriate screen based on whether user has an active session
72
+ if (context.hasActiveSession) {
73
+ // If user has an active session, go directly to FINAL_SUCCESS
74
+ transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
75
+ }
76
+ else {
77
+ // Check if there's a sessionId stored in localStorage
78
+ var sessionIdKey = "n1_sessionId_".concat(address);
79
+ var storedSessionId = localStorage.getItem(sessionIdKey);
80
+ if (storedSessionId !== null) {
81
+ // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
70
82
  transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
71
83
  }
72
84
  else {
73
- // Check if there's a sessionId stored in localStorage
74
- var sessionIdKey = "n1_sessionId_".concat(address);
75
- var storedSessionId = localStorage.getItem(sessionIdKey);
76
- if (storedSessionId !== null) {
77
- // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS
78
- transition(FlowState.FINAL_SUCCESS, { transactionId: txId });
79
- }
80
- else {
81
- // If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first
82
- transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });
83
- }
85
+ // If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first
86
+ transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });
84
87
  }
85
- setTxId(null);
86
88
  }
89
+ setTxId(null);
87
90
  }, [txId, transition, context.hasActiveSession, address]);
88
91
  /**
89
92
  * Select a chain for deposit
@@ -118,14 +121,14 @@ export var useDepositFlow = function (options) {
118
121
  * Start deposit process
119
122
  */
120
123
  var startDeposit = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
121
- var currentSessionMode, txId_1, usdcToken, accountInitialized, i, exists, result, depositError_1, error_1, error_2;
124
+ var currentSessionMode, txId_1, usdcToken, accountInitialized, i, exists, result, depositError_1, errorMessage, error_1, error_2;
122
125
  var _a;
123
126
  return __generator(this, function (_b) {
124
127
  switch (_b.label) {
125
128
  case 0:
126
129
  if (isDepositing)
127
130
  return [2 /*return*/];
128
- logger.debug('tah dah!');
131
+ logger.debug('Starting deposit process');
129
132
  // Validate input
130
133
  if (!selectedChain) {
131
134
  handleError(new Error('No chain selected'));
@@ -203,7 +206,7 @@ export var useDepositFlow = function (options) {
203
206
  // Update state with transaction result
204
207
  setTransactionId(txId_1);
205
208
  setTransactionResult(result);
206
- logger.debug('yayayyay');
209
+ logger.debug('Transaction completed successfully');
207
210
  setTxId(txId_1);
208
211
  return [2 /*return*/]; // Exit the function early since we've handled everything
209
212
  }
@@ -219,7 +222,13 @@ export var useDepositFlow = function (options) {
219
222
  depositError_1 = _b.sent();
220
223
  logger.warn('Error using depositSpl, falling back to mock implementation:', depositError_1);
221
224
  setIsDepositing(false);
222
- return [3 /*break*/, 13];
225
+ errorMessage = depositError_1 instanceof Error
226
+ ? depositError_1.message
227
+ : 'Failed to process deposit';
228
+ transition(FlowState.AMOUNT_INPUT, {
229
+ depositError: errorMessage
230
+ });
231
+ return [2 /*return*/]; // Exit early
223
232
  case 13: return [3 /*break*/, 15];
224
233
  case 14:
225
234
  error_1 = _b.sent();
@@ -291,23 +300,20 @@ export var useDepositFlow = function (options) {
291
300
  * Update state based on context changes
292
301
  */
293
302
  useEffect(function () {
294
- if (context.selectedChain !== selectedChain) {
303
+ var prevContext = prevContextRef.current;
304
+ // Only update state if the relevant context values have actually changed
305
+ if (context.selectedChain !== prevContext.selectedChain) {
295
306
  setSelectedChain(context.selectedChain);
296
307
  }
297
- if (context.amount !== amount) {
308
+ if (context.amount !== prevContext.amount) {
298
309
  setAmount(context.amount);
299
310
  }
300
- if (context.transactionId !== transactionId) {
311
+ if (context.transactionId !== prevContext.transactionId) {
301
312
  setTransactionId(context.transactionId);
302
313
  }
303
- }, [
304
- context.selectedChain,
305
- context.amount,
306
- context.transactionId,
307
- selectedChain,
308
- amount,
309
- transactionId,
310
- ]);
314
+ // Update the ref to the current context
315
+ prevContextRef.current = context;
316
+ }, [context]);
311
317
  /**
312
318
  * Auto-start deposit if in deposit progress state
313
319
  */
@@ -378,3 +384,4 @@ export var useDepositFlow = function (options) {
378
384
  getTransactionDetails: getTransactionDetails,
379
385
  };
380
386
  };
387
+ //# sourceMappingURL=useDepositFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDepositFlow.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useDepositFlow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAe,SAAS,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,cAAc,GAEf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,OAwB9B;IACO,IAAA,KAAkB,QAAQ,CAAgB,IAAI,CAAC,EAA9C,IAAI,QAAA,EAAE,OAAO,QAAiC,CAAC;IAC9C,IAAA,KAAK,GAAuC,OAAO,MAA9C,EAAE,OAAO,GAA8B,OAAO,QAArC,EAAE,UAAU,GAAkB,OAAO,WAAzB,EAAE,WAAW,GAAK,OAAO,YAAZ,CAAa;IACtD,IAAA,KAMF,kBAAkB,EAAE,EALtB,OAAO,aAAA,EACP,IAAI,UAAA,EACJ,wBAAwB,8BAAA,EACxB,yBAAyB,+BAAA,EACzB,QAAQ,cACc,CAAC;IACjB,IAAA,WAAW,GAAK,0BAA0B,EAAE,YAAjC,CAAkC;IAC7C,IAAU,gBAAgB,GAAK,eAAe,EAAE,SAAtB,CAAuB;IAEnD,IAAA,KAAoC,QAAQ,CAChD,OAAO,CAAC,aAAa,CACtB,EAFM,aAAa,QAAA,EAAE,gBAAgB,QAErC,CAAC;IACI,IAAA,KAAsB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAA7C,MAAM,QAAA,EAAE,SAAS,QAA4B,CAAC;IAC/C,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAoC,QAAQ,CAChD,OAAO,CAAC,aAAa,CACtB,EAFM,aAAa,QAAA,EAAE,gBAAgB,QAErC,CAAC;IACI,IAAA,KACJ,QAAQ,CAA2B,IAAI,CAAC,EADnC,iBAAiB,QAAA,EAAE,oBAAoB,QACJ,CAAC;IAE3C,oCAAoC;IACpC,IAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvC,8EAA8E;IAC9E,IAAM,eAAe,GAAG,QAAQ,IAAI,gBAAgB,CAAC;IAErD,gCAAgC;IAChC,SAAS,CAAC;QACR,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,mFAAmF;QACnF,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAM,YAAY,GAAG,uBAAgB,OAAO,CAAE,CAAC;YAC/C,IAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,wFAAwF;gBACxF,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,uGAAuG;gBACvG,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1D;;OAEG;IACH,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,OAAe;QACd,IAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,EAApB,CAAoB,CAAC,CAAC;QAE1E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,KAAK,CAAC,yBAAkB,OAAO,CAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC,EACD,CAAC,UAAU,EAAE,WAAW,CAAC,CAC1B,CAAC;IAEF;;OAEG;IACH,IAAM,YAAY,GAAG,WAAW,CAC9B,UAAC,SAAiB;QAChB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,kEAAkE;QAClE,wFAAwF;QACxF,IAAI,KAAK,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;YACrC,6EAA6E;YAC7E,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EACD,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAC3C,CAAC;IAEF;;OAEG;IACH,IAAM,YAAY,GAAG,WAAW,CAAC;;;;;;oBAC/B,IAAI,YAAY;wBAAE,sBAAO;oBAEzB,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBACzC,iBAAiB;oBACjB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,WAAW,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBAC5C,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvC,WAAW,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,WAAW,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBAClD,sBAAO;oBACT,CAAC;oBAED,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;;;;oBAI/B,kBAAkB,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,aAAa,CAAC,GAAG,CAAC;oBAGxD,SAAO,EAAE,CAAC;yBAEV,CAAA,eAAe,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA,EAAjD,yBAAiD;;;;oBAG3C,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAAC,CAAC;oBACpE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,CAAC;;;;yBAMK,CAAA,OAAO,eAAe,CAAC,UAAU,KAAK,UAAU,CAAA,EAAhD,yBAAgD;oBAC3C,qBAAM,eAAe,CAAC,UAAU,CACrC,UAAU,CAAC,MAAM,CAAC,EAClB,SAAS,CAAC,OAAO,CAClB,EAAA;;oBAHD,MAAI,GAAG,SAGN,CAAC;oBAEE,kBAAkB,GAAG,KAAK,CAAC;oBACtB,CAAC,GAAG,CAAC;;;yBAAE,CAAA,CAAC,GAAG,EAAE,CAAA;oBACL,qBAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC,OAAO,CAAC,CAAA,EAAA;;oBAA3C,MAAM,GAAG,SAAkC;oBACjD,IAAI,MAAM,EAAE,CAAC;wBACX,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,wBAAM;oBACR,CAAC;oBACD,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAzB,CAAyB,CAAC,EAAA;;oBAAzD,SAAyD,CAAC;;;oBANpC,CAAC,EAAE,CAAA;;;oBAS3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACxD,CAAC;oBAED,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAI,CAAC,CAAC;oBAEvD,qCAAqC;oBACrC,IAAI,aAAa,EAAE,CAAC;wBAEZ,MAAM,GAAsB;4BAChC,OAAO,EAAE,IAAI;4BACb,aAAa,EAAE,MAAI;4BACnB,MAAM,QAAA;4BACN,WAAW,EAAE,MAAM,EAAE,0BAA0B;4BAC/C,WAAW,EAAE,OAAO,IAAI,aAAa;4BACrC,SAAS,EACP,kBAAkB,KAAK,aAAa,CAAC,IAAI;gCACvC,CAAC,CAAC,kBAAkB;gCACpB,CAAC,CAAC,aAAa;4BACnB,WAAW,EACT,CAAA,MAAA,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,aAAa,EAA1B,CAA0B,CAAC,0CACxD,IAAI,KAAI,aAAa;4BAC3B,MAAM,EAAE,WAAW;4BACnB,WAAW,EAAE,cAAc,CAAC,MAAI,EAAE,aAAa,CAAC;yBACjD,CAAC;wBAEF,uCAAuC;wBACvC,gBAAgB,CAAC,MAAI,CAAC,CAAC;wBACvB,oBAAoB,CAAC,MAAM,CAAC,CAAC;wBAE7B,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;wBACnD,OAAO,CAAC,MAAI,CAAC,CAAC;wBACd,sBAAO,CAAC,yDAAyD;oBACnE,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACnD,CAAC;;;gBAED,kFAAkF;gBAClF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;;;;oBAGrD,MAAM,CAAC,IAAI,CACT,8DAA8D,EAC9D,cAAY,CACb,CAAC;oBACF,eAAe,CAAC,KAAK,CAAC,CAAC;oBAGjB,YAAY,GAAG,cAAY,YAAY,KAAK;wBAChD,CAAC,CAAC,cAAY,CAAC,OAAO;wBACtB,CAAC,CAAC,2BAA2B,CAAC;oBAEhC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE;wBACjC,YAAY,EAAE,YAAY;qBAC3B,CAAC,CAAC;oBACH,sBAAO,CAAC,aAAa;;;;oBAGvB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAK,CAAC,CAAC;oBACxD,MAAM,OAAK,CAAC;;;oBAGd,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;wBACxC,OAAO,EAAE,CAAC,CAAC,IAAI;wBACf,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;wBACnD,UAAU,EAAE,CAAC,CAAC,OAAO;wBACrB,eAAe,EAAE,CAAC,CAAC,wBAAwB;wBAC3C,gBAAgB,EAAE,CAAC,CAAC,yBAAyB;qBAC9C,CAAC,CAAC;oBAEH,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;;;;oBAGvE,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvB,WAAW,CACT,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CACxE,CAAC;;;;;SAEL,EAAE;QACD,YAAY;QACZ,aAAa;QACb,MAAM;QACN,OAAO;QACP,WAAW;QACX,UAAU;QACV,WAAW;QACX,IAAI;QACJ,wBAAwB;QACxB,yBAAyB;QACzB,eAAe;KAChB,CAAC,CAAC;IAEH;;OAEG;IACH,IAAM,eAAe,GAAG,WAAW,CAAC;QAClC,kEAAkE;QAClE,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAM,YAAY,GAAG,uBAAgB,OAAO,CAAE,CAAC;YAC/C,IAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,wFAAwF;gBACxF,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,2FAA2F;gBAC3F,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,IAAM,sBAAsB,GAAG,WAAW,CAAC;QACzC,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC;QACR,IAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAE3C,yEAAyE;QACzE,IAAI,OAAO,CAAC,aAAa,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACxD,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;YACxD,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAED,wCAAwC;QACxC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC;QACR,IACE,KAAK,KAAK,SAAS,CAAC,gBAAgB;YACpC,CAAC,YAAY;YACb,CAAC,aAAa,EACd,CAAC;YACD,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD;;OAEG;IACH,IAAM,qBAAqB,GAAG,WAAW,CAAC;;QACxC,sCAAsC;QACtC,IAAM,kBAAkB,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,aAAa,CAAC,GAAG,CAAC;QAE5D,+CAA+C;QAC/C,IAAM,WAAW,GACf,kBAAkB,KAAK,aAAa,CAAC,IAAI;YACvC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,aAAa,CAAC;QAEpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,mEAAmE;YACnE,OAAO;gBACL,MAAM,EAAE,MAAM,IAAI,GAAG;gBACrB,EAAE,EAAE,aAAa,IAAI,eAAe;gBACpC,IAAI,EAAE,OAAO,IAAI,aAAa;gBAC9B,EAAE,EAAE,WAAW;gBACf,OAAO,EAAE,aAAa;oBACpB,CAAC,CAAC,CAAA,MAAA,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,aAAa,EAA1B,CAA0B,CAAC,0CACxD,IAAI,KAAI,aAAa;oBAC3B,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,YAAY;gBACpB,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,OAAO;YACL,MAAM,EAAE,UAAG,iBAAiB,CAAC,MAAM,cAAI,iBAAiB,CAAC,WAAW,CAAE;YACtE,EAAE,EAAE,iBAAiB,CAAC,aAAa;YACnC,IAAI,EAAE,iBAAiB,CAAC,WAAW;YACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS;YAC/B,OAAO,EAAE,iBAAiB,CAAC,WAAW;YACtC,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,WAAW,EACT,iBAAiB,CAAC,WAAW;gBAC7B,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,IAAI,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC,EAAE;QACD,iBAAiB;QACjB,MAAM;QACN,aAAa;QACb,OAAO;QACP,WAAW;QACX,aAAa;KACd,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,eAAA;QACb,gBAAgB,kBAAA;QAChB,MAAM,QAAA;QACN,SAAS,WAAA;QACT,YAAY,cAAA;QACZ,aAAa,eAAA;QACb,iBAAiB,mBAAA;QACjB,WAAW,aAAA;QACX,YAAY,cAAA;QACZ,YAAY,cAAA;QACZ,eAAe,iBAAA;QACf,sBAAsB,wBAAA;QACtB,qBAAqB,uBAAA;KACtB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { FlowContext, FlowState } from '../types';\nimport { AVAILABLE_CHAINS } from '../constants';\nimport {\n getExplorerUrl,\n TransactionResult,\n} from '../../../Logic/transactionManager';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport { isNordConfigured } from '../utils/nordUtils';\nimport { useNordInstance } from './useNordInstance';\nimport { logger } from '../../../utils/logger';\n\n/**\n * Hook for handling the deposit flow\n *\n * @param options Configuration options\n * @returns Deposit flow methods and state\n */\nexport const useDepositFlow = (options: {\n /**\n * Flow state\n */\n state: FlowState;\n /**\n * Flow context\n */\n context: FlowContext;\n /**\n * Transition to a new state\n */\n transition: (\n newState: FlowState,\n contextUpdates?: Partial<FlowContext>\n ) => boolean;\n /**\n * Handle errors\n */\n handleError: (error: Error) => void;\n /**\n * Update context\n */\n updateContext?: (contextUpdates: Partial<FlowContext>) => void;\n}) => {\n const [txId, setTxId] = useState<string | null>(null);\n const { state, context, transition, handleError } = options;\n const {\n address,\n nord,\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n nordUser,\n } = useN1WalletContext();\n const { sessionMode } = useN1WalletInternalContext();\n const { nordUser: instanceNordUser } = useNordInstance();\n\n const [selectedChain, setSelectedChain] = useState<string | null>(\n context.selectedChain\n );\n const [amount, setAmount] = useState(context.amount);\n const [isDepositing, setIsDepositing] = useState(false);\n const [transactionId, setTransactionId] = useState<string | null>(\n context.transactionId\n );\n const [transactionResult, setTransactionResult] =\n useState<TransactionResult | null>(null);\n\n // Use refs to track previous values\n const prevContextRef = useRef(context);\n \n // Use the nordUser from context, falling back to the one from useNordInstance\n const currentNordUser = nordUser || instanceNordUser;\n\n // Handle transaction ID changes\n useEffect(() => {\n if (!txId) return;\n \n // Transition to the appropriate screen based on whether user has an active session\n if (context.hasActiveSession) {\n // If user has an active session, go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS, { transactionId: txId });\n } else {\n // Check if there's a sessionId stored in localStorage\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n\n if (storedSessionId !== null) {\n // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS, { transactionId: txId });\n } else {\n // If user doesn't have an active session and no sessionId in localStorage, go to DEPOSIT_SUCCESS first\n transition(FlowState.DEPOSIT_SUCCESS, { transactionId: txId });\n }\n }\n setTxId(null);\n }, [txId, transition, context.hasActiveSession, address]);\n\n /**\n * Select a chain for deposit\n */\n const selectChain = useCallback(\n (chainId: string) => {\n const validChain = AVAILABLE_CHAINS.find((chain) => chain.id === chainId);\n\n if (!validChain) {\n handleError(new Error(`Invalid chain: ${chainId}`));\n return;\n }\n\n setSelectedChain(chainId);\n transition(FlowState.AMOUNT_INPUT, { selectedChain: chainId });\n },\n [transition, handleError]\n );\n\n /**\n * Update amount for deposit\n */\n const updateAmount = useCallback(\n (newAmount: string) => {\n setAmount(newAmount);\n // Only update the context without transitioning to the same state\n // This prevents the \"Transition from AMOUNT_INPUT to AMOUNT_INPUT is not allowed\" error\n if (state === FlowState.AMOUNT_INPUT) {\n // Use updateContext function if available to update without state transition\n if (options.updateContext) {\n options.updateContext({ amount: newAmount });\n }\n } else {\n transition(state, { amount: newAmount });\n }\n },\n [state, transition, options.updateContext]\n );\n\n /**\n * Start deposit process\n */\n const startDeposit = useCallback(async () => {\n if (isDepositing) return;\n\n logger.debug('Starting deposit process');\n // Validate input\n if (!selectedChain) {\n handleError(new Error('No chain selected'));\n return;\n }\n\n if (!amount || parseFloat(amount) <= 0) {\n handleError(new Error('Invalid amount'));\n return;\n }\n\n if (!address) {\n handleError(new Error('No wallet address found'));\n return;\n }\n\n setIsDepositing(true);\n transition(FlowState.DEPOSIT_PROGRESS);\n\n try {\n // Ensure we have a valid session mode\n const currentSessionMode = sessionMode ?? N1SessionMode.NTS;\n\n // Use Nord-TS if available\n let txId = '';\n\n if (currentNordUser && nord && isNordConfigured(nord)) {\n try {\n // Find the USDC token\n const usdcToken = nord.tokens.find((t: any) => t.symbol === 'USDC');\n if (!usdcToken) {\n throw new Error('USDC token not found');\n }\n\n // Attempt to perform the deposit using Nord-TS\n // Since we don't know the exact API, we'll use a try-catch approach\n try {\n // Try depositSpl method if it exists\n if (typeof currentNordUser.depositSpl === 'function') {\n txId = await currentNordUser.depositSpl(\n parseFloat(amount),\n usdcToken.tokenId\n );\n\n let accountInitialized = false;\n for (let i = 0; i < 70; i++) {\n const exists = await nord?.accountExists(address);\n if (exists) {\n accountInitialized = true;\n break;\n }\n await new Promise((resolve) => setTimeout(resolve, 5000));\n }\n\n if (!accountInitialized) {\n throw new Error('Account failed to intialize on N1.');\n }\n\n logger.debug('Deposit successful using Nord-TS', txId);\n\n // Make sure we have a valid chain ID\n if (selectedChain) {\n // Create transaction result object immediately after successful deposit\n const result: TransactionResult = {\n success: true,\n transactionId: txId,\n amount,\n tokenSymbol: 'USDC', // Default to USDC for now\n fromAddress: address || 'Your Wallet',\n toAddress:\n currentSessionMode === N1SessionMode.Nord\n ? 'Exchange Account'\n : 'NTS Account',\n networkName:\n AVAILABLE_CHAINS.find((chain) => chain.id === selectedChain)\n ?.name || selectedChain,\n status: 'Completed',\n explorerUrl: getExplorerUrl(txId, selectedChain),\n };\n\n // Update state with transaction result\n setTransactionId(txId);\n setTransactionResult(result);\n\n logger.debug('Transaction completed successfully');\n setTxId(txId);\n return; // Exit the function early since we've handled everything\n } else {\n throw new Error('No chain selected for deposit');\n }\n } else {\n // If depositSpl doesn't exist, throw an error to fall back to mock implementation\n throw new Error('depositSpl method not available');\n }\n } catch (depositError) {\n logger.warn(\n 'Error using depositSpl, falling back to mock implementation:',\n depositError\n );\n setIsDepositing(false);\n \n // Transition back to AMOUNT_INPUT with the error message\n const errorMessage = depositError instanceof Error \n ? depositError.message \n : 'Failed to process deposit';\n \n transition(FlowState.AMOUNT_INPUT, { \n depositError: errorMessage \n });\n return; // Exit early\n }\n } catch (error) {\n logger.error('Error using Nord-TS for deposit:', error);\n throw error;\n }\n } else {\n logger.debug('Nord configuration issue:', {\n hasNord: !!nord,\n isConfigured: nord ? isNordConfigured(nord) : false,\n hasAddress: !!address,\n hasWalletSignFn: !!signMessageWithWalletKey,\n hasSessionSignFn: !!signMessageWithSessionKey,\n });\n\n throw new Error('Nord is not configured or user is not initialized');\n }\n } catch (error) {\n setIsDepositing(false);\n handleError(\n error instanceof Error ? error : new Error('Failed to process deposit')\n );\n }\n }, [\n isDepositing,\n selectedChain,\n amount,\n address,\n sessionMode,\n transition,\n handleError,\n nord,\n signMessageWithWalletKey,\n signMessageWithSessionKey,\n currentNordUser,\n ]);\n\n /**\n * Complete the deposit process and move to the next screen\n */\n const completeDeposit = useCallback(() => {\n // Check if user has an active session to determine the next state\n if (context.hasActiveSession) {\n // If user has an active session, go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS);\n } else {\n // Check if there's a sessionId stored in localStorage\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n\n if (storedSessionId !== null) {\n // If we have a sessionId in localStorage (even if it's 0), go directly to FINAL_SUCCESS\n transition(FlowState.FINAL_SUCCESS);\n } else {\n // If user doesn't have an active session and no sessionId in localStorage, go to NORD_AUTH\n transition(FlowState.AUTH_LOADING);\n }\n }\n }, [context.hasActiveSession, transition, address]);\n\n /**\n * Go back to chain selection\n */\n const goBackToChainSelection = useCallback(() => {\n setAmount('');\n transition(FlowState.CHAIN_SELECTION, { amount: '' });\n }, [transition]);\n\n /**\n * Update state based on context changes\n */\n useEffect(() => {\n const prevContext = prevContextRef.current;\n \n // Only update state if the relevant context values have actually changed\n if (context.selectedChain !== prevContext.selectedChain) {\n setSelectedChain(context.selectedChain);\n }\n\n if (context.amount !== prevContext.amount) {\n setAmount(context.amount);\n }\n\n if (context.transactionId !== prevContext.transactionId) {\n setTransactionId(context.transactionId);\n }\n \n // Update the ref to the current context\n prevContextRef.current = context;\n }, [context]);\n\n /**\n * Auto-start deposit if in deposit progress state\n */\n useEffect(() => {\n if (\n state === FlowState.DEPOSIT_PROGRESS &&\n !isDepositing &&\n !transactionId\n ) {\n startDeposit();\n }\n }, [state, isDepositing, transactionId, startDeposit]);\n\n /**\n * Get transaction details for display\n */\n const getTransactionDetails = useCallback(() => {\n // Ensure we have a valid session mode\n const currentSessionMode = sessionMode ?? N1SessionMode.NTS;\n\n // Determine account type based on session mode\n const accountType =\n currentSessionMode === N1SessionMode.Nord\n ? 'Exchange Account'\n : 'NTS Account';\n\n if (!transactionResult) {\n // If we don't have a transaction result yet, return default values\n return {\n amount: amount || '0',\n tx: transactionId || 'Processing...',\n from: address || 'Your Wallet',\n to: accountType,\n network: selectedChain\n ? AVAILABLE_CHAINS.find((chain) => chain.id === selectedChain)\n ?.name || selectedChain\n : 'Unknown',\n status: 'Processing',\n explorerUrl: '',\n };\n }\n\n // Return actual transaction details\n return {\n amount: `${transactionResult.amount} ${transactionResult.tokenSymbol}`,\n tx: transactionResult.transactionId,\n from: transactionResult.fromAddress,\n to: transactionResult.toAddress,\n network: transactionResult.networkName,\n status: transactionResult.status,\n explorerUrl:\n transactionResult.explorerUrl ||\n getExplorerUrl(transactionResult.transactionId, selectedChain || ''),\n };\n }, [\n transactionResult,\n amount,\n transactionId,\n address,\n sessionMode,\n selectedChain,\n ]);\n\n return {\n selectedChain,\n setSelectedChain,\n amount,\n setAmount,\n isDepositing,\n transactionId,\n transactionResult,\n selectChain,\n updateAmount,\n startDeposit,\n completeDeposit,\n goBackToChainSelection,\n getTransactionDetails,\n };\n};\n"]}
@@ -9,7 +9,7 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { useCallback, useEffect, useState } from 'react';
12
+ import { useCallback, useEffect, useRef, useState } from 'react';
13
13
  import { FlowState, initialFlowContext } from '../types';
14
14
  import { STATE_TRANSITIONS } from '../constants';
15
15
  import { clearStoredState, loadStateFromLocalStorage, saveStateToLocalStorage, } from '../utils/persistence';
@@ -20,17 +20,20 @@ import { logger } from '../../../utils/logger';
20
20
  * @returns Flow state management methods and properties
21
21
  */
22
22
  export var useFlowState = function (options) {
23
- var _a = options.autoRecover, autoRecover = _a === void 0 ? true : _a, onStateChange = options.onStateChange, onError = options.onError;
23
+ var onStateChange = options.onStateChange, onError = options.onError;
24
24
  // Flow state
25
- var _b = useState(FlowState.IDLE), state = _b[0], setState = _b[1];
26
- var _c = useState(null), prevState = _c[0], setPrevState = _c[1];
27
- var _d = useState(initialFlowContext), context = _d[0], setContext = _d[1];
28
- var _e = useState(false), isTransitioning = _e[0], setIsTransitioning = _e[1];
29
- var _f = useState(false), isRecoveryAvailable = _f[0], setIsRecoveryAvailable = _f[1];
25
+ var _a = useState(FlowState.IDLE), state = _a[0], setState = _a[1];
26
+ var _b = useState(null), prevState = _b[0], setPrevState = _b[1];
27
+ var _c = useState(initialFlowContext), context = _c[0], setContext = _c[1];
28
+ var _d = useState(false), isTransitioning = _d[0], setIsTransitioning = _d[1];
29
+ var _e = useState(false), isRecoveryAvailable = _e[0], setIsRecoveryAvailable = _e[1];
30
+ // Use refs to track previous values
31
+ var prevStateRef = useRef(FlowState.IDLE);
32
+ var prevContextRef = useRef(initialFlowContext);
30
33
  /**
31
34
  * Check if a transition is allowed based on current state and context
32
35
  */
33
- var canTransition = useCallback(function (targetState, context) {
36
+ var canTransition = useCallback(function (targetState, contextData) {
34
37
  return STATE_TRANSITIONS.some(function (transition) {
35
38
  var fromMatches = Array.isArray(transition.from)
36
39
  ? transition.from.includes(state)
@@ -39,16 +42,20 @@ export var useFlowState = function (options) {
39
42
  return false;
40
43
  }
41
44
  if (transition.condition) {
42
- return transition.condition(context);
45
+ return transition.condition(contextData);
43
46
  }
44
47
  return true;
45
48
  });
46
- }, [state, context]);
49
+ }, [state]);
47
50
  /**
48
51
  * Transition to a new state if allowed
49
52
  */
50
53
  var transition = useCallback(function (targetState, contextUpdates) {
51
54
  if (contextUpdates === void 0) { contextUpdates = {}; }
55
+ // Skip if we're already in the target state and no context updates
56
+ if (targetState === state && Object.keys(contextUpdates).length === 0) {
57
+ return true;
58
+ }
52
59
  if (!canTransition(targetState, __assign(__assign({}, context), contextUpdates))) {
53
60
  logger.warn("Transition from ".concat(state, " to ").concat(targetState, " is not allowed"));
54
61
  return false;
@@ -63,23 +70,26 @@ export var useFlowState = function (options) {
63
70
  });
64
71
  // Then update state
65
72
  setPrevState(state);
66
- logger.debug(targetState, 'targetState');
73
+ prevStateRef.current = state;
74
+ logger.debug("Transitioning from ".concat(state, " to ").concat(targetState));
67
75
  setState(targetState);
68
76
  if (onStateChange) {
69
77
  onStateChange(targetState, state);
70
78
  }
71
79
  setIsTransitioning(false);
72
80
  return true;
73
- }, [canTransition, state, onStateChange]);
81
+ }, [canTransition, state, context, onStateChange]);
74
82
  /**
75
83
  * Reset flow to initial state
76
84
  */
77
85
  var reset = useCallback(function () {
78
86
  clearStoredState();
79
87
  setContext(initialFlowContext);
88
+ prevContextRef.current = initialFlowContext;
80
89
  setPrevState(null);
81
- logger.debug('resetting');
90
+ logger.debug('Resetting flow state to IDLE');
82
91
  setState(FlowState.IDLE);
92
+ prevStateRef.current = FlowState.IDLE;
83
93
  if (onStateChange) {
84
94
  onStateChange(FlowState.IDLE, state);
85
95
  }
@@ -103,8 +113,10 @@ export var useFlowState = function (options) {
103
113
  return false;
104
114
  }
105
115
  setContext(savedState.context);
116
+ prevContextRef.current = savedState.context;
106
117
  setPrevState(state);
107
- logger.debug(savedState.state, 'savedState.state');
118
+ prevStateRef.current = state;
119
+ logger.debug("Recovering state: ".concat(savedState.state));
108
120
  setState(savedState.state);
109
121
  if (onStateChange) {
110
122
  onStateChange(savedState.state, state);
@@ -115,8 +127,25 @@ export var useFlowState = function (options) {
115
127
  * Update context without state transition
116
128
  */
117
129
  var updateContext = useCallback(function (updates) {
130
+ // Skip if no actual updates
131
+ if (Object.keys(updates).length === 0) {
132
+ return;
133
+ }
118
134
  setContext(function (prevContext) {
135
+ // Check if any values are actually changing
136
+ var hasChanges = false;
137
+ // Type-safe way to check for changes
138
+ Object.keys(updates).forEach(function (key) {
139
+ if (updates[key] !== prevContext[key]) {
140
+ hasChanges = true;
141
+ }
142
+ });
143
+ // If nothing is changing, return the previous context
144
+ if (!hasChanges) {
145
+ return prevContext;
146
+ }
119
147
  var newContext = __assign(__assign({}, prevContext), updates);
148
+ prevContextRef.current = newContext;
120
149
  saveStateToLocalStorage(state, newContext);
121
150
  return newContext;
122
151
  });
@@ -133,14 +162,6 @@ export var useFlowState = function (options) {
133
162
  },
134
163
  });
135
164
  }, [state, context, updateContext]);
136
- // Check for recoverable state on mount
137
- useEffect(function () {
138
- var hasRecoverable = loadStateFromLocalStorage() !== null;
139
- setIsRecoveryAvailable(hasRecoverable);
140
- if (autoRecover && hasRecoverable) {
141
- recover();
142
- }
143
- }, [autoRecover, recover]);
144
165
  // Register unload handler to record interruptions
145
166
  useEffect(function () {
146
167
  var handleBeforeUnload = function () {
@@ -165,3 +186,4 @@ export var useFlowState = function (options) {
165
186
  handleError: handleError,
166
187
  };
167
188
  };
189
+ //# sourceMappingURL=useFlowState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFlowState.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useFlowState.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { FlowContext, FlowState, initialFlowContext } from '../types';\nimport { STATE_TRANSITIONS } from '../constants';\nimport {\n clearStoredState,\n loadStateFromLocalStorage,\n saveStateToLocalStorage,\n} from '../utils/persistence';\nimport { logger } from '../../../utils/logger';\n\n/**\n * Custom hook for managing the wallet connection flow state machine\n * @param options Configuration options\n * @returns Flow state management methods and properties\n */\nexport const useFlowState = (options: {\n /**\n * Whether to automatically recover saved state on initialization\n */\n autoRecover?: boolean;\n /**\n * Callback when state changes\n */\n onStateChange?: (newState: FlowState, prevState: FlowState | null) => void;\n /**\n * Callback when an error occurs\n */\n onError?: (error: Error) => void;\n}) => {\n const { onStateChange, onError } = options;\n\n // Flow state\n const [state, setState] = useState<FlowState>(FlowState.IDLE);\n const [prevState, setPrevState] = useState<FlowState | null>(null);\n const [context, setContext] = useState<FlowContext>(initialFlowContext);\n const [isTransitioning, setIsTransitioning] = useState(false);\n const [isRecoveryAvailable, setIsRecoveryAvailable] = useState(false);\n \n // Use refs to track previous values\n const prevStateRef = useRef<FlowState>(FlowState.IDLE);\n const prevContextRef = useRef<FlowContext>(initialFlowContext);\n\n /**\n * Check if a transition is allowed based on current state and context\n */\n const canTransition = useCallback(\n (targetState: FlowState, contextData: FlowContext): boolean => {\n return STATE_TRANSITIONS.some((transition) => {\n const fromMatches = Array.isArray(transition.from)\n ? transition.from.includes(state)\n : transition.from === state;\n\n if (!fromMatches || transition.to !== targetState) {\n return false;\n }\n\n if (transition.condition) {\n return transition.condition(contextData);\n }\n\n return true;\n });\n },\n [state]\n );\n\n /**\n * Transition to a new state if allowed\n */\n const transition = useCallback(\n (\n targetState: FlowState,\n contextUpdates: Partial<FlowContext> = {}\n ): boolean => {\n // Skip if we're already in the target state and no context updates\n if (targetState === state && Object.keys(contextUpdates).length === 0) {\n return true;\n }\n \n if (!canTransition(targetState, { ...context, ...contextUpdates })) {\n logger.warn(\n `Transition from ${state} to ${targetState} is not allowed`\n );\n return false;\n }\n\n setIsTransitioning(true);\n\n // Update context first\n setContext((prevContext) => {\n const newContext = { ...prevContext, ...contextUpdates };\n\n // Save new state and context to localStorage for recovery\n saveStateToLocalStorage(targetState, newContext);\n\n return newContext;\n });\n\n // Then update state\n setPrevState(state);\n prevStateRef.current = state;\n logger.debug(`Transitioning from ${state} to ${targetState}`);\n setState(targetState);\n\n if (onStateChange) {\n onStateChange(targetState, state);\n }\n\n setIsTransitioning(false);\n return true;\n },\n [canTransition, state, context, onStateChange]\n );\n\n /**\n * Reset flow to initial state\n */\n const reset = useCallback(() => {\n clearStoredState();\n setContext(initialFlowContext);\n prevContextRef.current = initialFlowContext;\n setPrevState(null);\n logger.debug('Resetting flow state to IDLE');\n setState(FlowState.IDLE);\n prevStateRef.current = FlowState.IDLE;\n\n if (onStateChange) {\n onStateChange(FlowState.IDLE, state);\n }\n }, [state, onStateChange]);\n\n /**\n * Handle an error by transitioning to error state\n */\n const handleError = useCallback(\n (error: Error) => {\n if (onError) {\n onError(error);\n }\n\n transition(FlowState.ERROR, { error });\n },\n [transition, onError]\n );\n\n /**\n * Recover state from localStorage\n */\n const recover = useCallback((): boolean => {\n const savedState = loadStateFromLocalStorage();\n\n if (!savedState) {\n setIsRecoveryAvailable(false);\n return false;\n }\n\n setContext(savedState.context);\n prevContextRef.current = savedState.context;\n setPrevState(state);\n prevStateRef.current = state;\n logger.debug(`Recovering state: ${savedState.state}`);\n setState(savedState.state);\n\n if (onStateChange) {\n onStateChange(savedState.state, state);\n }\n\n return true;\n }, [state, onStateChange]);\n\n /**\n * Update context without state transition\n */\n const updateContext = useCallback(\n (updates: Partial<FlowContext>) => {\n // Skip if no actual updates\n if (Object.keys(updates).length === 0) {\n return;\n }\n \n setContext((prevContext) => {\n // Check if any values are actually changing\n let hasChanges = false;\n \n // Type-safe way to check for changes\n (Object.keys(updates) as Array<keyof Partial<FlowContext>>).forEach(key => {\n if (updates[key] !== prevContext[key]) {\n hasChanges = true;\n }\n });\n \n // If nothing is changing, return the previous context\n if (!hasChanges) {\n return prevContext;\n }\n \n const newContext = { ...prevContext, ...updates };\n prevContextRef.current = newContext;\n saveStateToLocalStorage(state, newContext);\n return newContext;\n });\n },\n [state]\n );\n\n /**\n * Record an interruption in the flow (e.g., modal close, page reload)\n */\n const recordInterruption = useCallback(() => {\n updateContext({\n lastInterruption: {\n timestamp: Date.now(),\n state,\n context: { ...context },\n },\n });\n }, [state, context, updateContext]);\n\n // Register unload handler to record interruptions\n useEffect(() => {\n const handleBeforeUnload = () => {\n recordInterruption();\n };\n\n window.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [recordInterruption]);\n\n return {\n state,\n prevState,\n context,\n isTransitioning,\n isRecoveryAvailable,\n transition,\n updateContext,\n reset,\n recover,\n recordInterruption,\n handleError,\n };\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
2
  /**
3
3
  * Hook for handling interruptions during the flow
4
4
  *
@@ -6,12 +6,18 @@ import { useCallback, useEffect, useState } from 'react';
6
6
  * @returns Interruption handling methods and state
7
7
  */
8
8
  export var useInterruptHandler = function (options) {
9
- var state = options.state, recordInterruption = options.recordInterruption, onClose = options.onClose;
9
+ var recordInterruption = options.recordInterruption, onClose = options.onClose;
10
+ // Use ref to track previous state
11
+ var prevStateRef = useRef(options.state);
10
12
  var _a = useState(false), isClosing = _a[0], setIsClosing = _a[1];
11
13
  /**
12
14
  * Handle modal close request
13
15
  */
14
16
  var handleCloseRequest = useCallback(function () {
17
+ // Skip if already closing
18
+ if (isClosing) {
19
+ return true;
20
+ }
15
21
  // Always proceed with closing
16
22
  setIsClosing(true);
17
23
  recordInterruption();
@@ -22,12 +28,12 @@ export var useInterruptHandler = function (options) {
22
28
  }
23
29
  }, 300);
24
30
  return true;
25
- }, [recordInterruption, onClose]);
31
+ }, [recordInterruption, onClose, isClosing]);
26
32
  /**
27
33
  * Handle beforeunload event to record interruptions
28
34
  */
29
35
  useEffect(function () {
30
- var handleBeforeUnload = function (event) {
36
+ var handleBeforeUnload = function () {
31
37
  // Record the interruption
32
38
  recordInterruption();
33
39
  };
@@ -36,21 +42,18 @@ export var useInterruptHandler = function (options) {
36
42
  window.removeEventListener('beforeunload', handleBeforeUnload);
37
43
  };
38
44
  }, [recordInterruption]);
39
- /**
40
- * Handle focus events to detect when user returns to the page
41
- */
45
+ // Track state changes
42
46
  useEffect(function () {
43
- var handleFocus = function () {
44
- // Here we could potentially check for state changes
45
- // that happened while the user was away
46
- };
47
- window.addEventListener('focus', handleFocus);
48
- return function () {
49
- window.removeEventListener('focus', handleFocus);
50
- };
51
- }, []);
47
+ var currentState = options.state;
48
+ var prevState = prevStateRef.current;
49
+ // Update ref if state has changed
50
+ if (currentState !== prevState) {
51
+ prevStateRef.current = currentState;
52
+ }
53
+ }, [options.state]);
52
54
  return {
53
55
  isClosing: isClosing,
54
56
  handleCloseRequest: handleCloseRequest,
55
57
  };
56
58
  };
59
+ //# sourceMappingURL=useInterruptHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInterruptHandler.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/hooks/useInterruptHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE;;;;;GAKG;AACH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,OAanC;IACS,IAAA,kBAAkB,GAAc,OAAO,mBAArB,EAAE,OAAO,GAAK,OAAO,QAAZ,CAAa;IAEhD,kCAAkC;IAClC,IAAM,YAAY,GAAG,MAAM,CAAY,OAAO,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAElD;;OAEG;IACH,IAAM,kBAAkB,GAAG,WAAW,CAAC;QACrC,0BAA0B;QAC1B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8BAA8B;QAC9B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,kBAAkB,EAAE,CAAC;QAErB,wCAAwC;QACxC,UAAU,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC;QACR,IAAM,kBAAkB,GAAG;YACzB,0BAA0B;YAC1B,kBAAkB,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAE5D,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,sBAAsB;IACtB,SAAS,CAAC;QACR,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,IAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QAEvC,kCAAkC;QAClC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC;QACtC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpB,OAAO;QACL,SAAS,WAAA;QACT,kBAAkB,oBAAA;KACnB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { FlowState } from '../types';\n\n/**\n * Hook for handling interruptions during the flow\n *\n * @param options Configuration options\n * @returns Interruption handling methods and state\n */\nexport const useInterruptHandler = (options: {\n /**\n * Flow state\n */\n state: FlowState;\n /**\n * Record an interruption\n */\n recordInterruption: () => void;\n /**\n * Callback to handle modal close\n */\n onClose?: () => void;\n}) => {\n const { recordInterruption, onClose } = options;\n \n // Use ref to track previous state\n const prevStateRef = useRef<FlowState>(options.state);\n\n const [isClosing, setIsClosing] = useState(false);\n\n /**\n * Handle modal close request\n */\n const handleCloseRequest = useCallback(() => {\n // Skip if already closing\n if (isClosing) {\n return true;\n }\n \n // Always proceed with closing\n setIsClosing(true);\n recordInterruption();\n\n // Delay actual close to allow animation\n setTimeout(() => {\n if (onClose) {\n onClose();\n }\n }, 300);\n\n return true;\n }, [recordInterruption, onClose, isClosing]);\n\n /**\n * Handle beforeunload event to record interruptions\n */\n useEffect(() => {\n const handleBeforeUnload = () => {\n // Record the interruption\n recordInterruption();\n };\n\n window.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [recordInterruption]);\n\n // Track state changes\n useEffect(() => {\n const currentState = options.state;\n const prevState = prevStateRef.current;\n \n // Update ref if state has changed\n if (currentState !== prevState) {\n prevStateRef.current = currentState;\n }\n }, [options.state]);\n\n return {\n isClosing,\n handleCloseRequest,\n };\n};\n"]}
@@ -1,10 +1,6 @@
1
- import { NordUser } from '@n1xyz/nord-ts';
2
1
  /**
3
2
  * Hook to access the Nord instance and create a NordUser if needed
4
3
  */
5
4
  export declare const useNordInstance: () => {
6
- nord: import("@n1xyz/nord-ts").Nord | undefined;
7
- createNordUser: () => Promise<NordUser | null>;
8
5
  nordUser: any;
9
- createTransactionSignFunction: () => (transaction: any) => Promise<any>;
10
6
  };