@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.
- package/dist/Logic/getPseudoName.js +1 -0
- package/dist/Logic/getPseudoName.js.map +1 -0
- package/dist/Logic/sessionManager.js +1 -0
- package/dist/Logic/sessionManager.js.map +1 -0
- package/dist/Logic/transactionManager.js +1 -0
- package/dist/Logic/transactionManager.js.map +1 -0
- package/dist/Logic/utils.js +1 -0
- package/dist/Logic/utils.js.map +1 -0
- package/dist/Logic/words.js +1 -0
- package/dist/Logic/words.js.map +1 -0
- package/dist/Modal/LoadingFallback.js +1 -0
- package/dist/Modal/LoadingFallback.js.map +1 -0
- package/dist/Modal/N1WalletModal.js +5 -5
- package/dist/Modal/N1WalletModal.js.map +1 -0
- package/dist/Modal/NTSFlow/LoadingFallback.js +1 -0
- package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -0
- package/dist/Modal/NTSFlow/NTSFlow.js +1 -0
- package/dist/Modal/NTSFlow/NTSFlow.js.map +1 -0
- package/dist/Modal/NTSFlow/components/BackButton.js +1 -0
- package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -0
- package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -0
- package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -0
- package/dist/Modal/NTSFlow/index.js +1 -0
- package/dist/Modal/NTSFlow/index.js.map +1 -0
- package/dist/Modal/NTSFlow/views/ConnectView.js +1 -0
- package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +1 -0
- package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -0
- package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js +1 -0
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/SigningView.js +1 -0
- package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -0
- package/dist/Modal/NTSFlow/views/SuccessView.js +1 -0
- package/dist/Modal/NTSFlow/views/SuccessView.js.map +1 -0
- package/dist/Modal/NordFlow/NordFlow.js +7 -11
- package/dist/Modal/NordFlow/NordFlow.js.map +1 -0
- package/dist/Modal/NordFlow/components/ChainButton.js +1 -0
- package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -0
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +1 -0
- package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -0
- package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -0
- package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -0
- package/dist/Modal/NordFlow/components/MoreButton.js +1 -0
- package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -0
- package/dist/Modal/NordFlow/components/TransactionTable.js +1 -0
- package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -0
- package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -0
- package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -0
- package/dist/Modal/NordFlow/components/index.js +1 -0
- package/dist/Modal/NordFlow/components/index.js.map +1 -0
- package/dist/Modal/NordFlow/constants.js +6 -0
- package/dist/Modal/NordFlow/constants.js.map +1 -0
- package/dist/Modal/NordFlow/hoc/index.js +1 -0
- package/dist/Modal/NordFlow/hoc/index.js.map +1 -0
- package/dist/Modal/NordFlow/hoc/withImageFallback.js +1 -0
- package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/index.js +1 -0
- package/dist/Modal/NordFlow/hooks/index.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +39 -32
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useFlowState.js +44 -22
- package/dist/Modal/NordFlow/hooks/useFlowState.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js +19 -16
- package/dist/Modal/NordFlow/hooks/useInterruptHandler.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -4
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +65 -25
- package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +73 -52
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -0
- package/dist/Modal/NordFlow/index.js +1 -0
- package/dist/Modal/NordFlow/index.js.map +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +2 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +5 -3
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +2 -1
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +1 -0
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/index.js +1 -0
- package/dist/Modal/NordFlow/screens/index.js.map +1 -0
- package/dist/Modal/NordFlow/types.d.ts +1 -0
- package/dist/Modal/NordFlow/types.js +2 -0
- package/dist/Modal/NordFlow/types.js.map +1 -0
- package/dist/Modal/NordFlow/utils/imageUtils.js +1 -0
- package/dist/Modal/NordFlow/utils/imageUtils.js.map +1 -0
- package/dist/Modal/NordFlow/utils/index.js +1 -0
- package/dist/Modal/NordFlow/utils/index.js.map +1 -0
- package/dist/Modal/NordFlow/utils/nordUtils.js +1 -0
- package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -0
- package/dist/Modal/NordFlow/utils/persistence.js +1 -0
- package/dist/Modal/NordFlow/utils/persistence.js.map +1 -0
- package/dist/Modal/Sidebar/N1Sidebar.js +2 -0
- package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +1 -0
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -0
- package/dist/Provider/LazyWalletProvider.js +2 -1
- package/dist/Provider/LazyWalletProvider.js.map +1 -0
- package/dist/Provider/N1WalletProvider.js +3 -12
- package/dist/Provider/N1WalletProvider.js.map +1 -0
- package/dist/Provider/context.js +1 -0
- package/dist/Provider/context.js.map +1 -0
- package/dist/Provider/hooks.js +1 -0
- package/dist/Provider/hooks.js.map +1 -0
- package/dist/Provider/icons/CoinbaseWalletIcon.js +1 -0
- package/dist/Provider/icons/CoinbaseWalletIcon.js.map +1 -0
- package/dist/Provider/icons/ConnectionDotsSVG.js +1 -0
- package/dist/Provider/icons/ConnectionDotsSVG.js.map +1 -0
- package/dist/Provider/icons/MetamaskIcon.js +1 -0
- package/dist/Provider/icons/MetamaskIcon.js.map +1 -0
- package/dist/Provider/icons/PhantomIcon.js +1 -0
- package/dist/Provider/icons/PhantomIcon.js.map +1 -0
- package/dist/Provider/icons/UserIcon.js +1 -0
- package/dist/Provider/icons/UserIcon.js.map +1 -0
- package/dist/Provider/icons/WalletConnectIcon.js +1 -0
- package/dist/Provider/icons/WalletConnectIcon.js.map +1 -0
- package/dist/Provider/index.js +1 -0
- package/dist/Provider/index.js.map +1 -0
- package/dist/Provider/types.js +1 -0
- package/dist/Provider/types.js.map +1 -0
- package/dist/WidgetButton/N1ConnectButton.js +1 -0
- package/dist/WidgetButton/N1ConnectButton.js.map +1 -0
- package/dist/components/Logo.js +1 -0
- package/dist/components/Logo.js.map +1 -0
- package/dist/components/QRCodeLoader.js +1 -0
- package/dist/components/QRCodeLoader.js.map +1 -0
- package/dist/components/logos/ArbitrumLogo.js +1 -0
- package/dist/components/logos/ArbitrumLogo.js.map +1 -0
- package/dist/components/logos/BaseLogo.js +1 -0
- package/dist/components/logos/BaseLogo.js.map +1 -0
- package/dist/components/logos/BeraLogo.js +1 -0
- package/dist/components/logos/BeraLogo.js.map +1 -0
- package/dist/components/logos/BitcoinLogo.js +1 -0
- package/dist/components/logos/BitcoinLogo.js.map +1 -0
- package/dist/components/logos/EVMChainsGroup.js +1 -0
- package/dist/components/logos/EVMChainsGroup.js.map +1 -0
- package/dist/components/logos/EthereumLogo.js +1 -0
- package/dist/components/logos/EthereumLogo.js.map +1 -0
- package/dist/components/logos/HyperliquidLogo.js +1 -0
- package/dist/components/logos/HyperliquidLogo.js.map +1 -0
- package/dist/components/logos/MoreChainsGroup.js +1 -0
- package/dist/components/logos/MoreChainsGroup.js.map +1 -0
- package/dist/components/logos/OptimismLogo.js +1 -0
- package/dist/components/logos/OptimismLogo.js.map +1 -0
- package/dist/components/logos/SolanaLogo.js +1 -0
- package/dist/components/logos/SolanaLogo.js.map +1 -0
- package/dist/components/logos/index.js +1 -0
- package/dist/components/logos/index.js.map +1 -0
- package/dist/config/solana.js +1 -0
- package/dist/config/solana.js.map +1 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -0
- package/dist/errors/types.js +1 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/main.css +1 -1
- package/dist/utils/dynamicImports.js +1 -0
- package/dist/utils/dynamicImports.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +26 -2
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/shortenString.js +1 -0
- package/dist/utils/shortenString.js.map +1 -0
- package/package.json +2 -2
- package/dist/Modal/BackButton.d.ts +0 -3
- package/dist/Modal/BackButton.js +0 -26
- package/dist/Modal/ConnectView.d.ts +0 -1
- package/dist/Modal/ConnectView.js +0 -68
- package/dist/Modal/CreateSessionView.d.ts +0 -1
- package/dist/Modal/CreateSessionView.js +0 -248
- package/dist/Modal/CreateUserView.d.ts +0 -1
- package/dist/Modal/CreateUserView.js +0 -160
- package/dist/Modal/ModalHeader.d.ts +0 -1
- package/dist/Modal/ModalHeader.js +0 -20
- package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/Modal/NTSFlow/NordFlow/WalletConnectionFlow.js +0 -145
- package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/Modal/NTSFlow/NordFlow/components/AnimatedButton.js +0 -75
- package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/components/ChainButton.js +0 -5
- package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.d.ts +0 -1
- package/dist/Modal/NTSFlow/NordFlow/components/LoadingSquares.js +0 -5
- package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.d.ts +0 -13
- package/dist/Modal/NTSFlow/NordFlow/components/TransactionTable.js +0 -58
- package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/components/WaitingMessage.js +0 -6
- package/dist/Modal/NTSFlow/NordFlow/components/index.d.ts +0 -5
- package/dist/Modal/NTSFlow/NordFlow/components/index.js +0 -5
- package/dist/Modal/NTSFlow/NordFlow/constants.d.ts +0 -37
- package/dist/Modal/NTSFlow/NordFlow/constants.js +0 -223
- package/dist/Modal/NTSFlow/NordFlow/hooks/index.d.ts +0 -8
- package/dist/Modal/NTSFlow/NordFlow/hooks/index.js +0 -8
- package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/hooks/useButtonTyping.js +0 -43
- package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.d.ts +0 -38
- package/dist/Modal/NTSFlow/NordFlow/hooks/useDepositFlow.js +0 -166
- package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/Modal/NTSFlow/NordFlow/hooks/useFlowState.js +0 -163
- package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
- package/dist/Modal/NTSFlow/NordFlow/hooks/useInterruptHandler.js +0 -101
- package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/Modal/NTSFlow/NordFlow/hooks/useNordSession.js +0 -193
- package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/Modal/NTSFlow/NordFlow/hooks/useTableValues.js +0 -69
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.d.ts +0 -30
- package/dist/Modal/NTSFlow/NordFlow/hooks/useWalletConnect.js +0 -132
- package/dist/Modal/NTSFlow/NordFlow/index.d.ts +0 -3
- package/dist/Modal/NTSFlow/NordFlow/index.js +0 -3
- package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
- package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
- package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
- package/dist/Modal/NTSFlow/NordFlow/screens/04-AmountInputScreen.js +0 -20
- package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/05-DepositProgressScreen.js +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
- package/dist/Modal/NTSFlow/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
- package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/07-NordAuthScreen.js +0 -14
- package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/Modal/NTSFlow/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
- package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/Modal/NTSFlow/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
- package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/Modal/NTSFlow/NordFlow/screens/10-ErrorScreen.js +0 -13
- package/dist/Modal/NTSFlow/NordFlow/screens/index.d.ts +0 -10
- package/dist/Modal/NTSFlow/NordFlow/screens/index.js +0 -10
- package/dist/Modal/NTSFlow/NordFlow/types.d.ts +0 -105
- package/dist/Modal/NTSFlow/NordFlow/types.js +0 -34
- package/dist/Modal/NTSFlow/NordFlow/utils/persistence.d.ts +0 -24
- package/dist/Modal/NTSFlow/NordFlow/utils/persistence.js +0 -83
- package/dist/Modal/NoWhitelistView.d.ts +0 -1
- package/dist/Modal/NoWhitelistView.js +0 -42
- package/dist/Modal/NordFlow/NordFlowWrapper.d.ts +0 -11
- package/dist/Modal/NordFlow/NordFlowWrapper.js +0 -11
- package/dist/Modal/NordFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/Modal/NordFlow/WalletConnectionFlow.js +0 -145
- package/dist/Modal/NordFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/Modal/NordFlow/components/AnimatedButton.js +0 -75
- package/dist/Modal/NordFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/Modal/NordFlow/hooks/useButtonTyping.js +0 -43
- package/dist/Modal/NordFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/Modal/NordFlow/hooks/useNordSession.js +0 -391
- package/dist/Modal/NordFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/Modal/NordFlow/hooks/useTableValues.js +0 -69
- package/dist/Modal/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/Modal/NordFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/Modal/NordFlow/hooks/useWalletConnect.d.ts +0 -14
- package/dist/Modal/NordFlow/hooks/useWalletConnect.js +0 -221
- package/dist/Modal/NordFlow/index copy.d.ts +0 -1
- package/dist/Modal/NordFlow/index copy.js +0 -1
- package/dist/Modal/NordFlow/screens/07-NordAuthScreen.d.ts +0 -5
- package/dist/Modal/NordFlow/screens/07-NordAuthScreen.js +0 -17
- package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/Modal/NordFlow/screens/08-AuthLoadingScreen.js +0 -153
- package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/Modal/NordFlow/screens/09-FinalSuccessScreen.js +0 -47
- package/dist/Modal/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/Modal/NordFlow/screens/10-ErrorScreen.js +0 -62
- package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.d.ts +0 -1
- package/dist/Modal/Sidebar/NordTradingView/AccountSummary/AccountSummary.js +0 -116
- package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.d.ts +0 -5
- package/dist/Modal/Sidebar/NordTradingView/TradeHistory/TradeHistory.js +0 -138
- package/dist/Modal/SigningView.d.ts +0 -1
- package/dist/Modal/SigningView.js +0 -5
- package/dist/Modal/SuccessView.d.ts +0 -1
- package/dist/Modal/SuccessView.js +0 -10
- package/dist/NordFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/NordFlow/WalletConnectionFlow.js +0 -145
- package/dist/NordFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/NordFlow/components/AnimatedButton.js +0 -75
- package/dist/NordFlow/components/ChainButton.d.ts +0 -7
- package/dist/NordFlow/components/ChainButton.js +0 -5
- package/dist/NordFlow/components/LoadingSquares.d.ts +0 -1
- package/dist/NordFlow/components/LoadingSquares.js +0 -5
- package/dist/NordFlow/components/TransactionTable.d.ts +0 -13
- package/dist/NordFlow/components/TransactionTable.js +0 -58
- package/dist/NordFlow/components/WaitingMessage.d.ts +0 -6
- package/dist/NordFlow/components/WaitingMessage.js +0 -6
- package/dist/NordFlow/components/index.d.ts +0 -5
- package/dist/NordFlow/components/index.js +0 -5
- package/dist/NordFlow/constants.d.ts +0 -37
- package/dist/NordFlow/constants.js +0 -223
- package/dist/NordFlow/hooks/index.d.ts +0 -8
- package/dist/NordFlow/hooks/index.js +0 -8
- package/dist/NordFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/NordFlow/hooks/useButtonTyping.js +0 -43
- package/dist/NordFlow/hooks/useDepositFlow.d.ts +0 -38
- package/dist/NordFlow/hooks/useDepositFlow.js +0 -166
- package/dist/NordFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/NordFlow/hooks/useFlowState.js +0 -163
- package/dist/NordFlow/hooks/useInterruptHandler.d.ts +0 -27
- package/dist/NordFlow/hooks/useInterruptHandler.js +0 -101
- package/dist/NordFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/NordFlow/hooks/useNordSession.js +0 -193
- package/dist/NordFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/NordFlow/hooks/useTableValues.js +0 -69
- package/dist/NordFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/NordFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/NordFlow/hooks/useWalletConnect.d.ts +0 -30
- package/dist/NordFlow/hooks/useWalletConnect.js +0 -132
- package/dist/NordFlow/index.d.ts +0 -3
- package/dist/NordFlow/index.js +0 -3
- package/dist/NordFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
- package/dist/NordFlow/screens/01-ConnectWalletScreen.js +0 -17
- package/dist/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
- package/dist/NordFlow/screens/02-EvmWalletAuthScreen.js +0 -47
- package/dist/NordFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
- package/dist/NordFlow/screens/03-ChainSelectionScreen.js +0 -7
- package/dist/NordFlow/screens/04-AmountInputScreen.d.ts +0 -8
- package/dist/NordFlow/screens/04-AmountInputScreen.js +0 -20
- package/dist/NordFlow/screens/05-DepositProgressScreen.d.ts +0 -7
- package/dist/NordFlow/screens/05-DepositProgressScreen.js +0 -6
- package/dist/NordFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
- package/dist/NordFlow/screens/06-DepositSuccessScreen.js +0 -99
- package/dist/NordFlow/screens/07-NordAuthScreen.d.ts +0 -7
- package/dist/NordFlow/screens/07-NordAuthScreen.js +0 -14
- package/dist/NordFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/NordFlow/screens/08-AuthLoadingScreen.js +0 -20
- package/dist/NordFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/NordFlow/screens/09-FinalSuccessScreen.js +0 -18
- package/dist/NordFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/NordFlow/screens/10-ErrorScreen.js +0 -13
- package/dist/NordFlow/screens/index.d.ts +0 -10
- package/dist/NordFlow/screens/index.js +0 -10
- package/dist/NordFlow/types.d.ts +0 -105
- package/dist/NordFlow/types.js +0 -34
- package/dist/NordFlow/utils/persistence.d.ts +0 -24
- package/dist/NordFlow/utils/persistence.js +0 -83
- package/dist/WalletConnectionFlow/WalletConnectionFlow.d.ts +0 -9
- package/dist/WalletConnectionFlow/WalletConnectionFlow.js +0 -145
- package/dist/WalletConnectionFlow/components/AnimatedButton.d.ts +0 -14
- package/dist/WalletConnectionFlow/components/AnimatedButton.js +0 -75
- package/dist/WalletConnectionFlow/components/ChainButton.d.ts +0 -7
- package/dist/WalletConnectionFlow/components/ChainButton.js +0 -5
- package/dist/WalletConnectionFlow/components/LoadingSquares.d.ts +0 -1
- package/dist/WalletConnectionFlow/components/LoadingSquares.js +0 -5
- package/dist/WalletConnectionFlow/components/TransactionTable.d.ts +0 -13
- package/dist/WalletConnectionFlow/components/TransactionTable.js +0 -58
- package/dist/WalletConnectionFlow/components/WaitingMessage.d.ts +0 -6
- package/dist/WalletConnectionFlow/components/WaitingMessage.js +0 -6
- package/dist/WalletConnectionFlow/components/index.d.ts +0 -5
- package/dist/WalletConnectionFlow/components/index.js +0 -5
- package/dist/WalletConnectionFlow/constants.d.ts +0 -37
- package/dist/WalletConnectionFlow/constants.js +0 -223
- package/dist/WalletConnectionFlow/hooks/index.d.ts +0 -8
- package/dist/WalletConnectionFlow/hooks/index.js +0 -8
- package/dist/WalletConnectionFlow/hooks/useButtonTyping.d.ts +0 -7
- package/dist/WalletConnectionFlow/hooks/useButtonTyping.js +0 -43
- package/dist/WalletConnectionFlow/hooks/useDepositFlow.d.ts +0 -38
- package/dist/WalletConnectionFlow/hooks/useDepositFlow.js +0 -166
- package/dist/WalletConnectionFlow/hooks/useFlowState.d.ts +0 -32
- package/dist/WalletConnectionFlow/hooks/useFlowState.js +0 -163
- package/dist/WalletConnectionFlow/hooks/useInterruptHandler.d.ts +0 -27
- package/dist/WalletConnectionFlow/hooks/useInterruptHandler.js +0 -101
- package/dist/WalletConnectionFlow/hooks/useNordSession.d.ts +0 -32
- package/dist/WalletConnectionFlow/hooks/useNordSession.js +0 -193
- package/dist/WalletConnectionFlow/hooks/useTableValues.d.ts +0 -2
- package/dist/WalletConnectionFlow/hooks/useTableValues.js +0 -69
- package/dist/WalletConnectionFlow/hooks/useWaitingMessage.d.ts +0 -6
- package/dist/WalletConnectionFlow/hooks/useWaitingMessage.js +0 -89
- package/dist/WalletConnectionFlow/hooks/useWalletConnect.d.ts +0 -30
- package/dist/WalletConnectionFlow/hooks/useWalletConnect.js +0 -132
- package/dist/WalletConnectionFlow/index.d.ts +0 -3
- package/dist/WalletConnectionFlow/index.js +0 -3
- package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/01-ConnectWalletScreen.js +0 -17
- package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/02-EvmWalletAuthScreen.js +0 -47
- package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/03-ChainSelectionScreen.js +0 -7
- package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/04-AmountInputScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/05-DepositProgressScreen.js +0 -6
- package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/06-DepositSuccessScreen.js +0 -99
- package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/07-NordAuthScreen.js +0 -14
- package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/08-AuthLoadingScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.d.ts +0 -5
- package/dist/WalletConnectionFlow/screens/09-FinalSuccessScreen.js +0 -18
- package/dist/WalletConnectionFlow/screens/10-ErrorScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/10-ErrorScreen.js +0 -13
- package/dist/WalletConnectionFlow/screens/AmountInputScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/AmountInputScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/AppsTableScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/AppsTableScreen.js +0 -28
- package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/AuthLoadingScreen.js +0 -20
- package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/ChainSelectionScreen.js +0 -7
- package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/ConnectWalletScreen.js +0 -17
- package/dist/WalletConnectionFlow/screens/DepositProgressScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/DepositProgressScreen.js +0 -6
- package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.d.ts +0 -8
- package/dist/WalletConnectionFlow/screens/DepositSuccessScreen.js +0 -99
- package/dist/WalletConnectionFlow/screens/ErrorScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/ErrorScreen.js +0 -13
- package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/EthToSolAuthScreen.js +0 -47
- package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/EvmWalletAuthScreen.js +0 -47
- package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.d.ts +0 -5
- package/dist/WalletConnectionFlow/screens/FinalSuccessScreen.js +0 -18
- package/dist/WalletConnectionFlow/screens/NordAuthScreen.d.ts +0 -7
- package/dist/WalletConnectionFlow/screens/NordAuthScreen.js +0 -14
- package/dist/WalletConnectionFlow/screens/SigningScreen.d.ts +0 -6
- package/dist/WalletConnectionFlow/screens/SigningScreen.js +0 -6
- package/dist/WalletConnectionFlow/screens/index.d.ts +0 -10
- package/dist/WalletConnectionFlow/screens/index.js +0 -10
- package/dist/WalletConnectionFlow/types.d.ts +0 -105
- package/dist/WalletConnectionFlow/types.js +0 -34
- package/dist/WalletConnectionFlow/utils/persistence.d.ts +0 -24
- package/dist/WalletConnectionFlow/utils/persistence.js +0 -83
- package/dist/components/LazyLoadWrapper.d.ts +0 -8
- package/dist/components/LazyLoadWrapper.js +0 -17
- package/dist/components/WalletDeposit/AnimatedButton.d.ts +0 -17
- package/dist/components/WalletDeposit/AnimatedButton.js +0 -29
- package/dist/components/WalletDeposit/components/ChainButton.d.ts +0 -7
- package/dist/components/WalletDeposit/components/ChainButton.js +0 -5
- package/dist/components/WalletDeposit/components/LoadingSquares.d.ts +0 -1
- package/dist/components/WalletDeposit/components/LoadingSquares.js +0 -5
- package/dist/components/WalletDeposit/components/TransactionTable.d.ts +0 -13
- package/dist/components/WalletDeposit/components/TransactionTable.js +0 -58
- package/dist/components/WalletDeposit/components/WaitingMessage.d.ts +0 -6
- package/dist/components/WalletDeposit/components/WaitingMessage.js +0 -6
- package/dist/components/WalletDeposit/constants.d.ts +0 -15
- package/dist/components/WalletDeposit/constants.js +0 -32
- package/dist/components/WalletDeposit/hooks.d.ts +0 -9
- package/dist/components/WalletDeposit/hooks.js +0 -185
- package/dist/components/WalletDeposit/index.d.ts +0 -1
- package/dist/components/WalletDeposit/index.js +0 -136
- package/dist/components/WalletDeposit/screens/AmountInputScreen.d.ts +0 -12
- package/dist/components/WalletDeposit/screens/AmountInputScreen.js +0 -18
- package/dist/components/WalletDeposit/screens/AppsTableScreen.d.ts +0 -8
- package/dist/components/WalletDeposit/screens/AppsTableScreen.js +0 -28
- package/dist/components/WalletDeposit/screens/ChainSelectionScreen.d.ts +0 -5
- package/dist/components/WalletDeposit/screens/ChainSelectionScreen.js +0 -8
- package/dist/components/WalletDeposit/screens/InitialScreen.d.ts +0 -9
- package/dist/components/WalletDeposit/screens/InitialScreen.js +0 -18
- package/dist/components/WalletDeposit/screens/SigningScreen.d.ts +0 -6
- package/dist/components/WalletDeposit/screens/SigningScreen.js +0 -6
- package/dist/components/WalletDeposit/screens/SuccessScreen.d.ts +0 -12
- package/dist/components/WalletDeposit/screens/SuccessScreen.js +0 -7
- package/dist/components/WalletDeposit/types.d.ts +0 -48
- package/dist/components/WalletDeposit/types.js +0 -1
- package/dist/config/dynamic.d.ts +0 -20
- package/dist/config/dynamic.js +0 -47
- package/dist/hooks/useSolanaSession.d.ts +0 -17
- package/dist/hooks/useSolanaSession.js +0 -180
- package/dist/utils/lazyLoad.d.ts +0 -3
- package/dist/utils/lazyLoad.js +0 -9
- package/dist/utils/react-shim.d.ts +0 -2
- package/dist/utils/react-shim.js +0 -6
- package/dist/utils/solana-session.d.ts +0 -84
- 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"]}
|
|
@@ -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"]}
|
|
@@ -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"]}
|
|
@@ -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"]}
|
|
@@ -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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
//
|
|
74
|
-
|
|
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('
|
|
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('
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
305
|
-
|
|
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":"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","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
|
|
23
|
+
var onStateChange = options.onStateChange, onError = options.onError;
|
|
24
24
|
// Flow state
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
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,
|
|
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(
|
|
45
|
+
return transition.condition(contextData);
|
|
43
46
|
}
|
|
44
47
|
return true;
|
|
45
48
|
});
|
|
46
|
-
}, [state
|
|
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
|
-
|
|
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('
|
|
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
|
-
|
|
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
|
|
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 (
|
|
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
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
};
|