@n1xyz/wallet-widget 0.0.33-alpha.1 → 0.0.33-alpha.3
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/animations/N1Loader.js +14 -8
- package/dist/animations/N1Loader.js.map +1 -1
- package/dist/animations/Processing.js +14 -8
- package/dist/animations/Processing.js.map +1 -1
- package/dist/components/LoadingFallback.js +6 -2
- package/dist/components/LoadingFallback.js.map +1 -1
- package/dist/components/Logo.js +25 -22
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/N1ConnectButton.js +18 -12
- package/dist/components/N1ConnectButton.js.map +1 -1
- package/dist/components/logos/ArbitrumLogo.js +7 -3
- package/dist/components/logos/ArbitrumLogo.js.map +1 -1
- package/dist/components/logos/BaseLogo.js +7 -3
- package/dist/components/logos/BaseLogo.js.map +1 -1
- package/dist/components/logos/BeraLogo.js +7 -3
- package/dist/components/logos/BeraLogo.js.map +1 -1
- package/dist/components/logos/BitcoinLogo.js +7 -3
- package/dist/components/logos/BitcoinLogo.js.map +1 -1
- package/dist/components/logos/EthereumLogo.js +7 -3
- package/dist/components/logos/EthereumLogo.js.map +1 -1
- package/dist/components/logos/HyperliquidLogo.js +7 -3
- package/dist/components/logos/HyperliquidLogo.js.map +1 -1
- package/dist/components/logos/OptimismLogo.js +7 -3
- package/dist/components/logos/OptimismLogo.js.map +1 -1
- package/dist/components/logos/SolanaLogo.js +7 -3
- package/dist/components/logos/SolanaLogo.js.map +1 -1
- package/dist/components/logos/ZeroOneLogo.js +7 -3
- package/dist/components/logos/ZeroOneLogo.js.map +1 -1
- package/dist/components/logos/index.js +25 -9
- package/dist/components/logos/index.js.map +1 -1
- package/dist/config/solana.js +7 -3
- package/dist/config/solana.js.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/context/n1-wallet-context.js +8 -4
- package/dist/context/n1-wallet-context.js.map +1 -1
- package/dist/errors/types.js +6 -3
- package/dist/errors/types.js.map +1 -1
- package/dist/features/onboarding-flow/N1WalletModal.js +59 -23
- package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js +50 -46
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +7 -4
- package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
- package/dist/features/onboarding-flow/components/Header.js +15 -11
- package/dist/features/onboarding-flow/components/Header.js.map +1 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js +10 -6
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js +13 -10
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js +14 -8
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
- package/dist/features/onboarding-flow/components/index.js +21 -5
- package/dist/features/onboarding-flow/components/index.js.map +1 -1
- package/dist/features/onboarding-flow/index.js +5 -1
- package/dist/features/onboarding-flow/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +60 -55
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +48 -43
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js +11 -7
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +74 -69
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
- package/dist/features/onboarding-flow/providers/debug.js +21 -18
- package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
- package/dist/features/onboarding-flow/providers/index.js +16 -5
- package/dist/features/onboarding-flow/providers/index.js.map +1 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +20 -15
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +11 -8
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +38 -34
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +51 -47
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +12 -8
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +28 -25
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +13 -10
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +10 -7
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
- package/dist/features/onboarding-flow/screens/index.js +23 -7
- package/dist/features/onboarding-flow/screens/index.js.map +1 -1
- package/dist/features/onboarding-flow/types.js +6 -3
- package/dist/features/onboarding-flow/types.js.map +1 -1
- package/dist/features/onboarding-flow/utils/depositStorage.js +8 -3
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
- package/dist/features/onboarding-flow/utils/imageUtils.js +9 -3
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUser.js +38 -2
- package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
- package/dist/features/onboarding-flow/utils/nordUtils.js +12 -5
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/session.js +17 -14
- package/dist/features/onboarding-flow/utils/session.js.map +1 -1
- package/dist/features/onboarding-flow/utils/transaction.js +4 -1
- package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
- package/dist/features/onboarding-flow/utils/utils.js +16 -8
- package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.js +15 -9
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
- package/dist/hooks/index.js +18 -2
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useN1Wallet.js +10 -6
- package/dist/hooks/useN1Wallet.js.map +1 -1
- package/dist/hooks/useNordUserInitialization.js +34 -31
- package/dist/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/index.js +21 -7
- package/dist/index.js.map +1 -1
- package/dist/polyfills/windowEthereumGuard.js +2 -1
- package/dist/polyfills/windowEthereumGuard.js.map +1 -1
- package/dist/providers/LazyWalletProvider.js +74 -38
- package/dist/providers/LazyWalletProvider.js.map +1 -1
- package/dist/providers/N1WalletProvider.js +109 -70
- package/dist/providers/N1WalletProvider.js.map +1 -1
- package/dist/providers/ShadowRootWrapper.js +10 -4
- package/dist/providers/ShadowRootWrapper.js.map +1 -1
- package/dist/providers/WalletErrorBoundary.js +11 -6
- package/dist/providers/WalletErrorBoundary.js.map +1 -1
- package/dist/styles/embedded-main-css.js +3 -1
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/types/wallet.js +7 -4
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/ed25519.js +20 -14
- package/dist/utils/ed25519.js.map +1 -1
- package/dist/utils/getPseudoName.js +10 -7
- package/dist/utils/getPseudoName.js.map +1 -1
- package/dist/utils/logger.js +5 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/shortenString.js +6 -2
- package/dist/utils/shortenString.js.map +1 -1
- package/dist/utils/words.js +4 -1
- package/dist/utils/words.js.map +1 -1
- package/package.json +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/providers/LazyWalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from '../hooks/useN1Wallet';\nimport { logger } from '../utils/logger';\n\nconst AUTH_FLOW_IDLE_CLOSE_DELAY_MS = 1200;\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n const primaryWalletStateRef = useRef<any>(null);\n const prevShowAuthFlowRef = useRef<boolean>(false);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n setStartClosingLogin,\n } = useN1WalletInternalContext();\n\n const { setShowLogin, showLogin } = useN1WalletContext();\n const pendingAuthCloseRef = useRef<number | null>(null);\n\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut, showAuthFlow } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (!setShowAuthFlow) {\n showAuthFlowRef.current = null;\n return;\n }\n\n const proxiedSetShowAuthFlow = (show: boolean) => {\n setShowAuthFlow(show);\n };\n\n showAuthFlowRef.current = proxiedSetShowAuthFlow;\n\n return () => {\n if (showAuthFlowRef.current === proxiedSetShowAuthFlow) {\n showAuthFlowRef.current = null;\n }\n };\n }, [setShowAuthFlow, setShowLogin, setStartClosingLogin]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n \n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n primaryWalletStateRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n useEffect(() => {\n const wasAuthFlowOpen = prevShowAuthFlowRef.current;\n prevShowAuthFlowRef.current = showAuthFlow;\n\n if (pendingAuthCloseRef.current != null) {\n if (typeof window !== 'undefined') {\n window.clearTimeout(pendingAuthCloseRef.current);\n }\n pendingAuthCloseRef.current = null;\n }\n\n if (\n wasAuthFlowOpen &&\n !showAuthFlow &&\n showLogin\n ) {\n const closeIfStillIdle = () => {\n pendingAuthCloseRef.current = null;\n if (!primaryWalletStateRef.current) {\n logger.debug(\n 'Dynamic auth flow closed before wallet connection; closing Nord widget'\n );\n setShowLogin(false);\n setStartClosingLogin(true);\n }\n };\n\n if (typeof window === 'undefined') {\n closeIfStillIdle();\n } else {\n pendingAuthCloseRef.current = window.setTimeout(\n closeIfStillIdle,\n AUTH_FLOW_IDLE_CLOSE_DELAY_MS\n );\n }\n }\n }, [showAuthFlow, showLogin, setShowLogin, setStartClosingLogin]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = () => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: 'dark',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [DynamicWidgetComponent, setDynamicWidgetComponent] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n\n useEffect(() => {\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider, DynamicWidget },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n setDynamicWidgetComponent(() => DynamicWidget);\n setWalletConnectors([SolanaWalletConnectors]);\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, []);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(),\n walletConnectors,\n }),\n [walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme=\"dark\">\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n {DynamicWidgetComponent ? <DynamicWidgetComponent /> : null}\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/providers/LazyWalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from '../hooks/useN1Wallet';\nimport { logger } from '../utils/logger';\n\nconst AUTH_FLOW_IDLE_CLOSE_DELAY_MS = 1200;\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n const primaryWalletStateRef = useRef<any>(null);\n const prevShowAuthFlowRef = useRef<boolean>(false);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n setStartClosingLogin,\n } = useN1WalletInternalContext();\n\n const { setShowLogin, showLogin } = useN1WalletContext();\n const pendingAuthCloseRef = useRef<number | null>(null);\n\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut, showAuthFlow } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (!setShowAuthFlow) {\n showAuthFlowRef.current = null;\n return;\n }\n\n const proxiedSetShowAuthFlow = (show: boolean) => {\n setShowAuthFlow(show);\n };\n\n showAuthFlowRef.current = proxiedSetShowAuthFlow;\n\n return () => {\n if (showAuthFlowRef.current === proxiedSetShowAuthFlow) {\n showAuthFlowRef.current = null;\n }\n };\n }, [setShowAuthFlow, setShowLogin, setStartClosingLogin]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n \n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n primaryWalletStateRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n useEffect(() => {\n const wasAuthFlowOpen = prevShowAuthFlowRef.current;\n prevShowAuthFlowRef.current = showAuthFlow;\n\n if (pendingAuthCloseRef.current != null) {\n if (typeof window !== 'undefined') {\n window.clearTimeout(pendingAuthCloseRef.current);\n }\n pendingAuthCloseRef.current = null;\n }\n\n if (\n wasAuthFlowOpen &&\n !showAuthFlow &&\n showLogin\n ) {\n const closeIfStillIdle = () => {\n pendingAuthCloseRef.current = null;\n if (!primaryWalletStateRef.current) {\n logger.debug(\n 'Dynamic auth flow closed before wallet connection; closing Nord widget'\n );\n setShowLogin(false);\n setStartClosingLogin(true);\n }\n };\n\n if (typeof window === 'undefined') {\n closeIfStillIdle();\n } else {\n pendingAuthCloseRef.current = window.setTimeout(\n closeIfStillIdle,\n AUTH_FLOW_IDLE_CLOSE_DELAY_MS\n );\n }\n }\n }, [showAuthFlow, showLogin, setShowLogin, setStartClosingLogin]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = () => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: 'dark',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [DynamicWidgetComponent, setDynamicWidgetComponent] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n\n useEffect(() => {\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider, DynamicWidget },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n setDynamicWidgetComponent(() => DynamicWidget);\n setWalletConnectors([SolanaWalletConnectors]);\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, []);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(),\n walletConnectors,\n }),\n [walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme=\"dark\">\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n {DynamicWidgetComponent ? <DynamicWidgetComponent /> : null}\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
'use client';
|
|
2
3
|
var __assign = (this && this.__assign) || function () {
|
|
3
4
|
__assign = Object.assign || function(t) {
|
|
@@ -10,6 +11,39 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
11
|
};
|
|
11
12
|
return __assign.apply(this, arguments);
|
|
12
13
|
};
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
13
47
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
48
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
49
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -46,89 +80,94 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
80
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
81
|
}
|
|
48
82
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var
|
|
63
|
-
|
|
83
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
84
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
85
|
+
};
|
|
86
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
87
|
+
exports.N1WalletProvider = N1WalletProvider;
|
|
88
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
89
|
+
require("../polyfills/windowEthereumGuard");
|
|
90
|
+
var react_1 = __importStar(require("react"));
|
|
91
|
+
var react_shadow_1 = __importDefault(require("react-shadow"));
|
|
92
|
+
var N1WalletModal_1 = require("../features/onboarding-flow/N1WalletModal");
|
|
93
|
+
var providers_1 = require("../features/onboarding-flow/providers");
|
|
94
|
+
var types_1 = require("../errors/types");
|
|
95
|
+
var logger_1 = require("../utils/logger");
|
|
96
|
+
var WalletErrorBoundary_1 = __importDefault(require("./WalletErrorBoundary"));
|
|
97
|
+
var n1_wallet_context_1 = require("../context/n1-wallet-context");
|
|
98
|
+
var useNordUserInitialization_1 = require("../hooks/useNordUserInitialization");
|
|
99
|
+
var wallet_1 = require("../types/wallet");
|
|
100
|
+
var embedded_main_css_1 = __importDefault(require("../styles/embedded-main-css"));
|
|
101
|
+
var LazyWalletProvider = react_1.default.lazy(function () {
|
|
102
|
+
return Promise.resolve().then(function () { return __importStar(require('./LazyWalletProvider')); }).then(function (mod) { return ({
|
|
64
103
|
default: mod.LazyWalletProvider,
|
|
65
104
|
}); });
|
|
66
105
|
});
|
|
67
|
-
var ModalContent =
|
|
106
|
+
var ModalContent = react_1.default.memo(function (_a) {
|
|
68
107
|
var css = _a.css;
|
|
69
|
-
return (
|
|
108
|
+
return ((0, jsx_runtime_1.jsxs)(react_shadow_1.default.div, { children: [(0, jsx_runtime_1.jsx)("style", { children: css }), (0, jsx_runtime_1.jsx)(N1WalletModal_1.N1WalletModal, {})] }));
|
|
70
109
|
});
|
|
71
|
-
var DynamicBridge =
|
|
110
|
+
var DynamicBridge = react_1.default.memo(function () { return null; });
|
|
72
111
|
function NordWrapper(_a) {
|
|
73
112
|
var children = _a.children;
|
|
74
113
|
// Use the extracted hook for NordUser initialization
|
|
75
|
-
useNordUserInitialization();
|
|
76
|
-
return (
|
|
114
|
+
(0, useNordUserInitialization_1.useNordUserInitialization)();
|
|
115
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }));
|
|
77
116
|
}
|
|
78
|
-
|
|
117
|
+
function N1WalletProvider(_a) {
|
|
79
118
|
var _this = this;
|
|
80
119
|
var children = _a.children, providedSessionMode = _a.providedSessionMode, onError = _a.onError, nord = _a.nord, colorOverrides = _a.colorOverrides, skipFinalScreen = _a.skipFinalScreen;
|
|
81
|
-
var _b = useState(false), isConnected = _b[0], setIsConnected = _b[1];
|
|
82
|
-
var _c = useState(null), sessionPubKey = _c[0], setSessionPubKey = _c[1];
|
|
83
|
-
var _d = useState(null), walletPubKey = _d[0], setWalletPubKey = _d[1];
|
|
84
|
-
var _e = useState(null), userChain = _e[0], setUserChain = _e[1];
|
|
85
|
-
var _f = useState(''), username = _f[0], setUsername = _f[1];
|
|
120
|
+
var _b = (0, react_1.useState)(false), isConnected = _b[0], setIsConnected = _b[1];
|
|
121
|
+
var _c = (0, react_1.useState)(null), sessionPubKey = _c[0], setSessionPubKey = _c[1];
|
|
122
|
+
var _d = (0, react_1.useState)(null), walletPubKey = _d[0], setWalletPubKey = _d[1];
|
|
123
|
+
var _e = (0, react_1.useState)(null), userChain = _e[0], setUserChain = _e[1];
|
|
124
|
+
var _f = (0, react_1.useState)(''), username = _f[0], setUsername = _f[1];
|
|
86
125
|
// TODO: Define proper types for message and transaction
|
|
87
|
-
var _g = useState(null), signMessageWithSessionKey = _g[0], setSignMessageWithSessionKey = _g[1];
|
|
88
|
-
var _h = useState(null), signMessageWithWalletKey = _h[0], setSignMessageWithWalletKey = _h[1];
|
|
89
|
-
var _j = useState(null), signTransactionWithWalletKey = _j[0], setSignTransactionWithWalletKey = _j[1];
|
|
90
|
-
var _k = useState(false), loading = _k[0], setLoading = _k[1];
|
|
91
|
-
var _l = useState(N1ModalViewMode.Automatic), viewMode = _l[0], setViewMode = _l[1];
|
|
126
|
+
var _g = (0, react_1.useState)(null), signMessageWithSessionKey = _g[0], setSignMessageWithSessionKey = _g[1];
|
|
127
|
+
var _h = (0, react_1.useState)(null), signMessageWithWalletKey = _h[0], setSignMessageWithWalletKey = _h[1];
|
|
128
|
+
var _j = (0, react_1.useState)(null), signTransactionWithWalletKey = _j[0], setSignTransactionWithWalletKey = _j[1];
|
|
129
|
+
var _k = (0, react_1.useState)(false), loading = _k[0], setLoading = _k[1];
|
|
130
|
+
var _l = (0, react_1.useState)(wallet_1.N1ModalViewMode.Automatic), viewMode = _l[0], setViewMode = _l[1];
|
|
92
131
|
// TODO: Import NordUser type from @n1xyz/nord-ts if available
|
|
93
|
-
var _m = useState(null), nordUser = _m[0], setNordUser = _m[1];
|
|
94
|
-
var _o = useState(function () { return function () {
|
|
95
|
-
logger.warn('disconnectWallet invoked before handler registration');
|
|
132
|
+
var _m = (0, react_1.useState)(null), nordUser = _m[0], setNordUser = _m[1];
|
|
133
|
+
var _o = (0, react_1.useState)(function () { return function () {
|
|
134
|
+
logger_1.logger.warn('disconnectWallet invoked before handler registration');
|
|
96
135
|
}; }), disconnectWalletHandler = _o[0], setDisconnectWalletHandler = _o[1];
|
|
97
136
|
// dynamic
|
|
98
|
-
var _p = useState([]), balances = _p[0], setBalances = _p[1];
|
|
99
|
-
var _q = useState(''), chain = _q[0], setChain = _q[1];
|
|
100
|
-
var _r = useState(null), dynamicSdkHasLoaded = _r[0], setDynamicSdkHasLoaded = _r[1];
|
|
101
|
-
var _s = useState(false), showLogin = _s[0], setShowLoginState = _s[1];
|
|
102
|
-
var _t = useState(false), startClosingLogin = _t[0], setStartClosingLogin = _t[1];
|
|
103
|
-
var _u = useState(null), showDynamicWidget = _u[0], setShowDynamicWidget = _u[1];
|
|
104
|
-
var _v = useState(0), depositFlowRequestId = _v[0], setDepositFlowRequestId = _v[1];
|
|
105
|
-
var nextOpenAllowedAtRef = useRef(0);
|
|
106
|
-
var pendingShowLoginRef = useRef(false);
|
|
137
|
+
var _p = (0, react_1.useState)([]), balances = _p[0], setBalances = _p[1];
|
|
138
|
+
var _q = (0, react_1.useState)(''), chain = _q[0], setChain = _q[1];
|
|
139
|
+
var _r = (0, react_1.useState)(null), dynamicSdkHasLoaded = _r[0], setDynamicSdkHasLoaded = _r[1];
|
|
140
|
+
var _s = (0, react_1.useState)(false), showLogin = _s[0], setShowLoginState = _s[1];
|
|
141
|
+
var _t = (0, react_1.useState)(false), startClosingLogin = _t[0], setStartClosingLogin = _t[1];
|
|
142
|
+
var _u = (0, react_1.useState)(null), showDynamicWidget = _u[0], setShowDynamicWidget = _u[1];
|
|
143
|
+
var _v = (0, react_1.useState)(0), depositFlowRequestId = _v[0], setDepositFlowRequestId = _v[1];
|
|
144
|
+
var nextOpenAllowedAtRef = (0, react_1.useRef)(0);
|
|
145
|
+
var pendingShowLoginRef = (0, react_1.useRef)(false);
|
|
107
146
|
// dynamic
|
|
108
|
-
var _w = useState(''), address = _w[0], setAddress = _w[1];
|
|
109
|
-
var _x = useState(null), dynamicHandleLogOut = _x[0], setDynamicHandleLogOut = _x[1];
|
|
110
|
-
var _y = useState(null), dynamicWallet = _y[0], setDynamicWallet = _y[1];
|
|
111
|
-
var sessionMode = N1SessionMode.Nord;
|
|
112
|
-
useEffect(function () {
|
|
113
|
-
if (providedSessionMode !== N1SessionMode.Nord) {
|
|
114
|
-
logger.warn("Only Nord session mode is supported. Received ".concat(providedSessionMode, ", defaulting to Nord."));
|
|
147
|
+
var _w = (0, react_1.useState)(''), address = _w[0], setAddress = _w[1];
|
|
148
|
+
var _x = (0, react_1.useState)(null), dynamicHandleLogOut = _x[0], setDynamicHandleLogOut = _x[1];
|
|
149
|
+
var _y = (0, react_1.useState)(null), dynamicWallet = _y[0], setDynamicWallet = _y[1];
|
|
150
|
+
var sessionMode = wallet_1.N1SessionMode.Nord;
|
|
151
|
+
(0, react_1.useEffect)(function () {
|
|
152
|
+
if (providedSessionMode !== wallet_1.N1SessionMode.Nord) {
|
|
153
|
+
logger_1.logger.warn("Only Nord session mode is supported. Received ".concat(providedSessionMode, ", defaulting to Nord."));
|
|
115
154
|
}
|
|
116
155
|
}, [providedSessionMode]);
|
|
117
|
-
useEffect(function () {
|
|
156
|
+
(0, react_1.useEffect)(function () {
|
|
118
157
|
var isDynamicReady = Boolean(dynamicSdkHasLoaded);
|
|
119
158
|
setLoading(!isDynamicReady);
|
|
120
159
|
}, [dynamicSdkHasLoaded, setLoading]);
|
|
121
|
-
var handleError = useCallback(function (error) {
|
|
160
|
+
var handleError = (0, react_1.useCallback)(function (error) {
|
|
122
161
|
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
123
162
|
}, [onError]);
|
|
124
163
|
var throwTestError = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
125
164
|
return __generator(this, function (_a) {
|
|
126
|
-
handleError(new WalletError(WalletErrorCode.WALLET_NOT_FOUND, 'Test error: No compatible wallet was found'));
|
|
165
|
+
handleError(new types_1.WalletError(types_1.WalletErrorCode.WALLET_NOT_FOUND, 'Test error: No compatible wallet was found'));
|
|
127
166
|
return [2 /*return*/];
|
|
128
167
|
});
|
|
129
168
|
}); };
|
|
130
169
|
// Prepare CSS with color overrides if provided
|
|
131
|
-
var injectedCss =
|
|
170
|
+
var injectedCss = embedded_main_css_1.default;
|
|
132
171
|
if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {
|
|
133
172
|
// Apply all color overrides in order
|
|
134
173
|
colorOverrides.forEach(function (_a) {
|
|
@@ -140,15 +179,15 @@ export function N1WalletProvider(_a) {
|
|
|
140
179
|
}
|
|
141
180
|
});
|
|
142
181
|
}
|
|
143
|
-
var blockModalReopen = useCallback(function (duration) {
|
|
182
|
+
var blockModalReopen = (0, react_1.useCallback)(function (duration) {
|
|
144
183
|
if (duration === void 0) { duration = 600; }
|
|
145
184
|
var unblockAt = Date.now() + duration;
|
|
146
|
-
logger.debug('blockModalReopen invoked', { duration: duration, unblockAt: unblockAt });
|
|
185
|
+
logger_1.logger.debug('blockModalReopen invoked', { duration: duration, unblockAt: unblockAt });
|
|
147
186
|
nextOpenAllowedAtRef.current = Date.now() + duration;
|
|
148
187
|
}, []);
|
|
149
|
-
var applyShowLoginState = useCallback(function (next) {
|
|
188
|
+
var applyShowLoginState = (0, react_1.useCallback)(function (next) {
|
|
150
189
|
setShowLoginState(function (prev) {
|
|
151
|
-
logger.debug('setShowLogin invoked', {
|
|
190
|
+
logger_1.logger.debug('setShowLogin invoked', {
|
|
152
191
|
next: next,
|
|
153
192
|
prev: prev,
|
|
154
193
|
now: Date.now(),
|
|
@@ -158,43 +197,43 @@ export function N1WalletProvider(_a) {
|
|
|
158
197
|
return prev;
|
|
159
198
|
}
|
|
160
199
|
if (next) {
|
|
161
|
-
logger.debug('setShowLogin opening request stack trace', {
|
|
200
|
+
logger_1.logger.debug('setShowLogin opening request stack trace', {
|
|
162
201
|
stack: new Error('setShowLogin stack').stack,
|
|
163
202
|
});
|
|
164
203
|
if (Date.now() < nextOpenAllowedAtRef.current) {
|
|
165
|
-
logger.debug('setShowLogin blocked by cooldown', {
|
|
204
|
+
logger_1.logger.debug('setShowLogin blocked by cooldown', {
|
|
166
205
|
next: next,
|
|
167
206
|
prev: prev,
|
|
168
207
|
});
|
|
169
208
|
return prev;
|
|
170
209
|
}
|
|
171
|
-
logger.debug('setShowLogin opening modal');
|
|
210
|
+
logger_1.logger.debug('setShowLogin opening modal');
|
|
172
211
|
return true;
|
|
173
212
|
}
|
|
174
|
-
logger.debug('setShowLogin closing modal');
|
|
213
|
+
logger_1.logger.debug('setShowLogin closing modal');
|
|
175
214
|
blockModalReopen();
|
|
176
215
|
return false;
|
|
177
216
|
});
|
|
178
217
|
}, [blockModalReopen]);
|
|
179
|
-
useEffect(function () {
|
|
218
|
+
(0, react_1.useEffect)(function () {
|
|
180
219
|
if (dynamicSdkHasLoaded && pendingShowLoginRef.current) {
|
|
181
|
-
logger.debug('setShowLogin deferred open; Dynamic SDK ready, opening modal');
|
|
220
|
+
logger_1.logger.debug('setShowLogin deferred open; Dynamic SDK ready, opening modal');
|
|
182
221
|
pendingShowLoginRef.current = false;
|
|
183
222
|
applyShowLoginState(true);
|
|
184
223
|
}
|
|
185
224
|
}, [dynamicSdkHasLoaded, applyShowLoginState]);
|
|
186
|
-
var setShowLogin = useCallback(function (next) {
|
|
225
|
+
var setShowLogin = (0, react_1.useCallback)(function (next) {
|
|
187
226
|
if (next && !dynamicSdkHasLoaded) {
|
|
188
|
-
logger.debug('setShowLogin deferred until Dynamic SDK is ready');
|
|
227
|
+
logger_1.logger.debug('setShowLogin deferred until Dynamic SDK is ready');
|
|
189
228
|
pendingShowLoginRef.current = true;
|
|
190
229
|
return;
|
|
191
230
|
}
|
|
192
231
|
pendingShowLoginRef.current = false;
|
|
193
232
|
applyShowLoginState(next);
|
|
194
233
|
}, [dynamicSdkHasLoaded, applyShowLoginState]);
|
|
195
|
-
var startDepositFlow = useCallback(function () {
|
|
234
|
+
var startDepositFlow = (0, react_1.useCallback)(function () {
|
|
196
235
|
if (!nordUser || !nordUser.sessionId) {
|
|
197
|
-
logger.warn('startDepositFlow called without an authenticated Nord session; falling back to regular flow');
|
|
236
|
+
logger_1.logger.warn('startDepositFlow called without an authenticated Nord session; falling back to regular flow');
|
|
198
237
|
setShowLogin(true);
|
|
199
238
|
return false;
|
|
200
239
|
}
|
|
@@ -225,7 +264,7 @@ export function N1WalletProvider(_a) {
|
|
|
225
264
|
throwTestError: throwTestError,
|
|
226
265
|
nord: nord,
|
|
227
266
|
nordUser: nordUser,
|
|
228
|
-
disconnectWallet: useCallback(function () {
|
|
267
|
+
disconnectWallet: (0, react_1.useCallback)(function () {
|
|
229
268
|
disconnectWalletHandler();
|
|
230
269
|
}, [disconnectWalletHandler]),
|
|
231
270
|
};
|
|
@@ -262,6 +301,6 @@ export function N1WalletProvider(_a) {
|
|
|
262
301
|
depositFlowRequestId: depositFlowRequestId,
|
|
263
302
|
setDisconnectWalletHandler: setDisconnectWalletHandler,
|
|
264
303
|
};
|
|
265
|
-
return (
|
|
304
|
+
return ((0, jsx_runtime_1.jsx)(WalletErrorBoundary_1.default, { onError: handleError, children: (0, jsx_runtime_1.jsx)(n1_wallet_context_1.N1WalletContext.Provider, { value: walletContextValue, children: (0, jsx_runtime_1.jsx)(n1_wallet_context_1.N1InternalWalletContext.Provider, { value: __assign(__assign({}, internalWalletContextValue), { skipFinalScreen: skipFinalScreen }), children: (0, jsx_runtime_1.jsx)(NordWrapper, { children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(providers_1.OnboardingProvider, { children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [children, (0, jsx_runtime_1.jsx)(ModalContent, { css: injectedCss })] }) }), (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: null, children: (0, jsx_runtime_1.jsx)(LazyWalletProvider, { children: (0, jsx_runtime_1.jsx)(DynamicBridge, {}) }) })] }) }) }) }) }));
|
|
266
305
|
}
|
|
267
306
|
//# sourceMappingURL=N1WalletProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/providers/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport '../polyfills/windowEthereumGuard';\n\nimport React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../features/onboarding-flow/N1WalletModal';\nimport { OnboardingProvider } from '../features/onboarding-flow/providers';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from '../context/n1-wallet-context';\nimport { useNordUserInitialization } from '../hooks/useNordUserInitialization';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from '../types/wallet';\nimport mainCss from '../styles/embedded-main-css';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nconst ModalContent = React.memo(({ css }: { css: string }) => (\n <root.div>\n <style>{css}</style>\n <N1WalletModal />\n </root.div>\n));\n\nconst DynamicBridge = React.memo(() => null);\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n onError,\n nord,\n colorOverrides,\n skipFinalScreen,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n \n // TODO: Define proper types for message and transaction\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: unknown) => Promise<unknown>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: unknown) => Promise<unknown>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: unknown) => Promise<unknown>) | null>(null);\n \n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Automatic\n );\n \n // TODO: Import NordUser type from @n1xyz/nord-ts if available\n const [nordUser, setNordUser] = useState<any>(null);\n \n const [disconnectWalletHandler, setDisconnectWalletHandler] = useState<() => void>(\n () => () => {\n logger.warn('disconnectWallet invoked before handler registration');\n }\n );\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n\n const [showLogin, setShowLoginState] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n const [depositFlowRequestId, setDepositFlowRequestId] = useState(0);\n const nextOpenAllowedAtRef = useRef(0);\n const pendingShowLoginRef = useRef(false);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n const sessionMode = N1SessionMode.Nord;\n\n useEffect(() => {\n if (providedSessionMode !== N1SessionMode.Nord) {\n logger.warn(\n `Only Nord session mode is supported. Received ${providedSessionMode}, defaulting to Nord.`\n );\n }\n }, [providedSessionMode]);\n\n useEffect(() => {\n const isDynamicReady = Boolean(dynamicSdkHasLoaded);\n setLoading(!isDynamicReady);\n }, [dynamicSdkHasLoaded, setLoading]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Prepare CSS with color overrides if provided\n let injectedCss = mainCss;\n if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {\n // Apply all color overrides in order\n colorOverrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Replace all instances, case-insensitive\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n injectedCss = injectedCss.replace(regex, replacement);\n }\n });\n }\n\n const blockModalReopen = useCallback((duration: number = 600) => {\n const unblockAt = Date.now() + duration;\n logger.debug('blockModalReopen invoked', { duration, unblockAt });\n nextOpenAllowedAtRef.current = Date.now() + duration;\n }, []);\n\n const applyShowLoginState = useCallback(\n (next: boolean) => {\n setShowLoginState((prev) => {\n logger.debug('setShowLogin invoked', {\n next,\n prev,\n now: Date.now(),\n nextOpenAllowed: nextOpenAllowedAtRef.current,\n });\n\n if (next === prev) {\n return prev;\n }\n\n if (next) {\n logger.debug('setShowLogin opening request stack trace', {\n stack: new Error('setShowLogin stack').stack,\n });\n if (Date.now() < nextOpenAllowedAtRef.current) {\n logger.debug('setShowLogin blocked by cooldown', {\n next,\n prev,\n });\n return prev;\n }\n logger.debug('setShowLogin opening modal');\n return true;\n }\n\n logger.debug('setShowLogin closing modal');\n blockModalReopen();\n return false;\n });\n },\n [blockModalReopen]\n );\n\n useEffect(() => {\n if (dynamicSdkHasLoaded && pendingShowLoginRef.current) {\n logger.debug('setShowLogin deferred open; Dynamic SDK ready, opening modal');\n pendingShowLoginRef.current = false;\n applyShowLoginState(true);\n }\n }, [dynamicSdkHasLoaded, applyShowLoginState]);\n\n const setShowLogin = useCallback(\n (next: boolean) => {\n if (next && !dynamicSdkHasLoaded) {\n logger.debug('setShowLogin deferred until Dynamic SDK is ready');\n pendingShowLoginRef.current = true;\n return;\n }\n\n pendingShowLoginRef.current = false;\n applyShowLoginState(next);\n },\n [dynamicSdkHasLoaded, applyShowLoginState]\n );\n\n const startDepositFlow = useCallback(() => {\n if (!nordUser || !nordUser.sessionId) {\n logger.warn(\n 'startDepositFlow called without an authenticated Nord session; falling back to regular flow'\n );\n setShowLogin(true);\n return false;\n }\n\n setStartClosingLogin(false);\n setDepositFlowRequestId((prev) => prev + 1);\n setShowLogin(true);\n return true;\n }, [nordUser, setShowLogin, setStartClosingLogin]);\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n balances,\n chain,\n isConnected,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n startDepositFlow,\n setViewMode,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n nord,\n nordUser,\n disconnectWallet: useCallback(() => {\n disconnectWalletHandler();\n }, [disconnectWalletHandler]),\n };\n\n // Create the internal wallet context value\n const internalWalletContextValue = {\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n blockModalReopen,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n sessionMode,\n setNordUser,\n depositFlowRequestId,\n setDisconnectWalletHandler,\n };\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n ...internalWalletContextValue,\n skipFinalScreen, // make available to modal context tree\n }}\n >\n <NordWrapper>\n <>\n <OnboardingProvider>\n <>\n {children}\n <ModalContent css={injectedCss} />\n </>\n </OnboardingProvider>\n <Suspense fallback={null}>\n <LazyWalletProvider>\n <DynamicBridge />\n </LazyWalletProvider>\n </Suspense>\n </>\n </NordWrapper>\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/providers/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport '../polyfills/windowEthereumGuard';\n\nimport React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';\nimport root from 'react-shadow';\nimport { N1WalletModal } from '../features/onboarding-flow/N1WalletModal';\nimport { OnboardingProvider } from '../features/onboarding-flow/providers';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from '../context/n1-wallet-context';\nimport { useNordUserInitialization } from '../hooks/useNordUserInitialization';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from '../types/wallet';\nimport mainCss from '../styles/embedded-main-css';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nconst ModalContent = React.memo(({ css }: { css: string }) => (\n <root.div>\n <style>{css}</style>\n <N1WalletModal />\n </root.div>\n));\n\nconst DynamicBridge = React.memo(() => null);\n\nfunction NordWrapper({ children }: { children: React.ReactNode }) {\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization();\n return (\n <>\n {children}\n </>\n )\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n onError,\n nord,\n colorOverrides,\n skipFinalScreen,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n \n // TODO: Define proper types for message and transaction\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: unknown) => Promise<unknown>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: unknown) => Promise<unknown>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: unknown) => Promise<unknown>) | null>(null);\n \n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Automatic\n );\n \n // TODO: Import NordUser type from @n1xyz/nord-ts if available\n const [nordUser, setNordUser] = useState<any>(null);\n \n const [disconnectWalletHandler, setDisconnectWalletHandler] = useState<() => void>(\n () => () => {\n logger.warn('disconnectWallet invoked before handler registration');\n }\n );\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n\n const [showLogin, setShowLoginState] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n const [depositFlowRequestId, setDepositFlowRequestId] = useState(0);\n const nextOpenAllowedAtRef = useRef(0);\n const pendingShowLoginRef = useRef(false);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n const sessionMode = N1SessionMode.Nord;\n\n useEffect(() => {\n if (providedSessionMode !== N1SessionMode.Nord) {\n logger.warn(\n `Only Nord session mode is supported. Received ${providedSessionMode}, defaulting to Nord.`\n );\n }\n }, [providedSessionMode]);\n\n useEffect(() => {\n const isDynamicReady = Boolean(dynamicSdkHasLoaded);\n setLoading(!isDynamicReady);\n }, [dynamicSdkHasLoaded, setLoading]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Prepare CSS with color overrides if provided\n let injectedCss = mainCss;\n if (Array.isArray(colorOverrides) && colorOverrides.length > 0) {\n // Apply all color overrides in order\n colorOverrides.forEach(({ color, replacement }) => {\n if (color && replacement) {\n // Replace all instances, case-insensitive\n const regex = new RegExp(color.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n injectedCss = injectedCss.replace(regex, replacement);\n }\n });\n }\n\n const blockModalReopen = useCallback((duration: number = 600) => {\n const unblockAt = Date.now() + duration;\n logger.debug('blockModalReopen invoked', { duration, unblockAt });\n nextOpenAllowedAtRef.current = Date.now() + duration;\n }, []);\n\n const applyShowLoginState = useCallback(\n (next: boolean) => {\n setShowLoginState((prev) => {\n logger.debug('setShowLogin invoked', {\n next,\n prev,\n now: Date.now(),\n nextOpenAllowed: nextOpenAllowedAtRef.current,\n });\n\n if (next === prev) {\n return prev;\n }\n\n if (next) {\n logger.debug('setShowLogin opening request stack trace', {\n stack: new Error('setShowLogin stack').stack,\n });\n if (Date.now() < nextOpenAllowedAtRef.current) {\n logger.debug('setShowLogin blocked by cooldown', {\n next,\n prev,\n });\n return prev;\n }\n logger.debug('setShowLogin opening modal');\n return true;\n }\n\n logger.debug('setShowLogin closing modal');\n blockModalReopen();\n return false;\n });\n },\n [blockModalReopen]\n );\n\n useEffect(() => {\n if (dynamicSdkHasLoaded && pendingShowLoginRef.current) {\n logger.debug('setShowLogin deferred open; Dynamic SDK ready, opening modal');\n pendingShowLoginRef.current = false;\n applyShowLoginState(true);\n }\n }, [dynamicSdkHasLoaded, applyShowLoginState]);\n\n const setShowLogin = useCallback(\n (next: boolean) => {\n if (next && !dynamicSdkHasLoaded) {\n logger.debug('setShowLogin deferred until Dynamic SDK is ready');\n pendingShowLoginRef.current = true;\n return;\n }\n\n pendingShowLoginRef.current = false;\n applyShowLoginState(next);\n },\n [dynamicSdkHasLoaded, applyShowLoginState]\n );\n\n const startDepositFlow = useCallback(() => {\n if (!nordUser || !nordUser.sessionId) {\n logger.warn(\n 'startDepositFlow called without an authenticated Nord session; falling back to regular flow'\n );\n setShowLogin(true);\n return false;\n }\n\n setStartClosingLogin(false);\n setDepositFlowRequestId((prev) => prev + 1);\n setShowLogin(true);\n return true;\n }, [nordUser, setShowLogin, setStartClosingLogin]);\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n balances,\n chain,\n isConnected,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n startDepositFlow,\n setViewMode,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n nord,\n nordUser,\n disconnectWallet: useCallback(() => {\n disconnectWalletHandler();\n }, [disconnectWalletHandler]),\n };\n\n // Create the internal wallet context value\n const internalWalletContextValue = {\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n blockModalReopen,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n sessionMode,\n setNordUser,\n depositFlowRequestId,\n setDisconnectWalletHandler,\n };\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n ...internalWalletContextValue,\n skipFinalScreen, // make available to modal context tree\n }}\n >\n <NordWrapper>\n <>\n <OnboardingProvider>\n <>\n {children}\n <ModalContent css={injectedCss} />\n </>\n </OnboardingProvider>\n <Suspense fallback={null}>\n <LazyWalletProvider>\n <DynamicBridge />\n </LazyWalletProvider>\n </Suspense>\n </>\n </NordWrapper>\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ShadowRootWrapper = ShadowRootWrapper;
|
|
7
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
var react_shadow_1 = __importDefault(require("react-shadow"));
|
|
9
|
+
function ShadowRootWrapper(_a) {
|
|
4
10
|
var children = _a.children, injectedCss = _a.injectedCss;
|
|
5
|
-
return (
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)(react_shadow_1.default.div, { children: [(0, jsx_runtime_1.jsx)("style", { children: injectedCss }), children] }));
|
|
6
12
|
}
|
|
7
13
|
//# sourceMappingURL=ShadowRootWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadowRootWrapper.js","sourceRoot":"","sources":["../../src/providers/ShadowRootWrapper.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShadowRootWrapper.js","sourceRoot":"","sources":["../../src/providers/ShadowRootWrapper.tsx"],"names":[],"mappings":";;;;;AAQA,8CAOC;;AAdD,8DAAgC;AAOhC,SAAgB,iBAAiB,CAAC,EAAiD;QAA/C,QAAQ,cAAA,EAAE,WAAW,iBAAA;IACvD,OAAO,CACL,wBAAC,sBAAI,CAAC,GAAG,eACP,4CAAQ,WAAW,GAAS,EAC3B,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport root from 'react-shadow';\n\ninterface ShadowRootWrapperProps {\n children: React.ReactNode;\n injectedCss: string;\n}\n\nexport function ShadowRootWrapper({ children, injectedCss }: ShadowRootWrapperProps) {\n return (\n <root.div>\n <style>{injectedCss}</style>\n {children}\n </root.div>\n );\n} \n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __extends = (this && this.__extends) || (function () {
|
|
2
3
|
var extendStatics = function (d, b) {
|
|
3
4
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -13,8 +14,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
13
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
15
|
};
|
|
15
16
|
})();
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
var react_1 = __importDefault(require("react"));
|
|
22
|
+
var types_1 = require("../errors/types");
|
|
18
23
|
// Error boundary to catch WalletErrors
|
|
19
24
|
var WalletErrorBoundary = /** @class */ (function (_super) {
|
|
20
25
|
__extends(WalletErrorBoundary, _super);
|
|
@@ -30,12 +35,12 @@ var WalletErrorBoundary = /** @class */ (function (_super) {
|
|
|
30
35
|
};
|
|
31
36
|
WalletErrorBoundary.prototype.componentDidCatch = function (error) {
|
|
32
37
|
console.error('[N1 Wallet] Unhandled error captured by WalletErrorBoundary:', error);
|
|
33
|
-
if (error instanceof WalletError) {
|
|
38
|
+
if (error instanceof types_1.WalletError) {
|
|
34
39
|
this.props.onError(error);
|
|
35
40
|
}
|
|
36
41
|
else {
|
|
37
42
|
// Convert unknown errors to WalletError
|
|
38
|
-
this.props.onError(new WalletError(WalletErrorCode.UNKNOWN, error.message || 'An unexpected error occurred', { originalError: error }));
|
|
43
|
+
this.props.onError(new types_1.WalletError(types_1.WalletErrorCode.UNKNOWN, error.message || 'An unexpected error occurred', { originalError: error }));
|
|
39
44
|
}
|
|
40
45
|
};
|
|
41
46
|
WalletErrorBoundary.prototype.componentDidUpdate = function (prevProps, prevState) {
|
|
@@ -52,6 +57,6 @@ var WalletErrorBoundary = /** @class */ (function (_super) {
|
|
|
52
57
|
return this.props.children;
|
|
53
58
|
};
|
|
54
59
|
return WalletErrorBoundary;
|
|
55
|
-
}(
|
|
56
|
-
|
|
60
|
+
}(react_1.default.Component));
|
|
61
|
+
exports.default = WalletErrorBoundary;
|
|
57
62
|
//# sourceMappingURL=WalletErrorBoundary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../src/providers/WalletErrorBoundary.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../src/providers/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,yCAA+D;AAW/D,uCAAuC;AACvC;IAAkC,uCAGjC;IAHD;;QAIE,WAAK,GAA6B;YAChC,QAAQ,EAAE,KAAK;SAChB,CAAC;;IAuCJ,CAAC;IArCQ,4CAAwB,GAA/B;QACE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,+CAAiB,GAAjB,UAAkB,KAAY;QAC5B,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,KAAK,YAAY,mBAAW,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,IAAI,mBAAW,CACb,uBAAe,CAAC,OAAO,EACvB,KAAK,CAAC,OAAO,IAAI,8BAA8B,EAC/C,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gDAAkB,GAAlB,UACE,SAAmC,EACnC,SAAmC;QAEnC,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5F,wDAAwD;YACxD,yDAAyD;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,oCAAM,GAAN;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,AA7CD,CAAkC,eAAK,CAAC,SAAS,GA6ChD;AAED,kBAAe,mBAAmB,CAAC","sourcesContent":["import React from 'react';\nimport { WalletError, WalletErrorCode } from '../errors/types';\n\ntype WalletErrorBoundaryProps = {\n children: React.ReactNode;\n onError: (error: WalletError) => void;\n};\n\ntype WalletErrorBoundaryState = {\n hasError: boolean;\n};\n\n// Error boundary to catch WalletErrors\nclass WalletErrorBoundary extends React.Component<\n WalletErrorBoundaryProps,\n WalletErrorBoundaryState\n> {\n state: WalletErrorBoundaryState = {\n hasError: false,\n };\n\n static getDerivedStateFromError(): WalletErrorBoundaryState {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error) {\n console.error('[N1 Wallet] Unhandled error captured by WalletErrorBoundary:', error);\n if (error instanceof WalletError) {\n this.props.onError(error);\n } else {\n // Convert unknown errors to WalletError\n this.props.onError(\n new WalletError(\n WalletErrorCode.UNKNOWN,\n error.message || 'An unexpected error occurred',\n { originalError: error }\n )\n );\n }\n }\n\n componentDidUpdate(\n prevProps: WalletErrorBoundaryProps,\n prevState: WalletErrorBoundaryState\n ) {\n if (prevState.hasError && this.state.hasError && prevProps.children !== this.props.children) {\n // reset error state when children change after an error\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n return null;\n }\n return this.props.children;\n }\n}\n\nexport default WalletErrorBoundary;\n"]}
|