signer-test-sdk-react 0.0.19 → 0.0.21
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/src/AbstraxnProvider.js +101 -7
- package/dist/src/AbstraxnProvider.js.map +1 -1
- package/dist/src/components/OnboardingUI/OnboardingUIReact.js +9 -3
- package/dist/src/components/OnboardingUI/OnboardingUIReact.js.map +1 -1
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js +57 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +18 -0
- package/dist/src/wagmiConfig.d.ts +1 -1
- package/dist/src/wagmiConfig.js +9 -8
- package/dist/src/wagmiConfig.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -458,10 +458,24 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
458
458
|
// Store in localStorage for restoration
|
|
459
459
|
try {
|
|
460
460
|
localStorage.setItem('abstraxn_connection_type', connectionTypeValue);
|
|
461
|
+
localStorage.setItem('abstraxn_oauth_pending', 'google');
|
|
461
462
|
}
|
|
462
463
|
catch (e) {
|
|
463
464
|
// Ignore localStorage errors
|
|
464
465
|
}
|
|
466
|
+
// Clear existing query params before starting new flow
|
|
467
|
+
if (typeof window !== 'undefined') {
|
|
468
|
+
const url = new URL(window.location.href);
|
|
469
|
+
// Remove auth params that might be present from previous attempts
|
|
470
|
+
url.searchParams.delete('code');
|
|
471
|
+
url.searchParams.delete('state');
|
|
472
|
+
url.searchParams.delete('error');
|
|
473
|
+
url.searchParams.delete('success');
|
|
474
|
+
url.searchParams.delete('accessToken');
|
|
475
|
+
url.searchParams.delete('provider');
|
|
476
|
+
url.searchParams.delete('authProvider');
|
|
477
|
+
window.history.replaceState({}, document.title, url.toString());
|
|
478
|
+
}
|
|
465
479
|
const authManager = walletInstance.getAuthManager();
|
|
466
480
|
await authManager.loginWithGoogle();
|
|
467
481
|
},
|
|
@@ -472,10 +486,24 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
472
486
|
setConnectionType(connectionTypeValue);
|
|
473
487
|
try {
|
|
474
488
|
localStorage.setItem('abstraxn_connection_type', connectionTypeValue);
|
|
489
|
+
localStorage.setItem('abstraxn_oauth_pending', 'twitter');
|
|
475
490
|
}
|
|
476
491
|
catch (e) {
|
|
477
492
|
// Ignore localStorage errors
|
|
478
493
|
}
|
|
494
|
+
// Clear existing query params before starting new flow
|
|
495
|
+
if (typeof window !== 'undefined') {
|
|
496
|
+
const url = new URL(window.location.href);
|
|
497
|
+
// Remove auth params that might be present from previous attempts
|
|
498
|
+
url.searchParams.delete('code');
|
|
499
|
+
url.searchParams.delete('state');
|
|
500
|
+
url.searchParams.delete('error');
|
|
501
|
+
url.searchParams.delete('success');
|
|
502
|
+
url.searchParams.delete('accessToken');
|
|
503
|
+
url.searchParams.delete('provider');
|
|
504
|
+
url.searchParams.delete('authProvider');
|
|
505
|
+
window.history.replaceState({}, document.title, url.toString());
|
|
506
|
+
}
|
|
479
507
|
const authManager = walletInstance.getAuthManager();
|
|
480
508
|
await authManager.loginWithTwitter();
|
|
481
509
|
},
|
|
@@ -486,10 +514,24 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
486
514
|
setConnectionType(connectionTypeValue);
|
|
487
515
|
try {
|
|
488
516
|
localStorage.setItem('abstraxn_connection_type', connectionTypeValue);
|
|
517
|
+
localStorage.setItem('abstraxn_oauth_pending', 'discord');
|
|
489
518
|
}
|
|
490
519
|
catch (e) {
|
|
491
520
|
// Ignore localStorage errors
|
|
492
521
|
}
|
|
522
|
+
// Clear existing query params before starting new flow
|
|
523
|
+
if (typeof window !== 'undefined') {
|
|
524
|
+
const url = new URL(window.location.href);
|
|
525
|
+
// Remove auth params that might be present from previous attempts
|
|
526
|
+
url.searchParams.delete('code');
|
|
527
|
+
url.searchParams.delete('state');
|
|
528
|
+
url.searchParams.delete('error');
|
|
529
|
+
url.searchParams.delete('success');
|
|
530
|
+
url.searchParams.delete('accessToken');
|
|
531
|
+
url.searchParams.delete('provider');
|
|
532
|
+
url.searchParams.delete('authProvider');
|
|
533
|
+
window.history.replaceState({}, document.title, url.toString());
|
|
534
|
+
}
|
|
493
535
|
const authManager = walletInstance.getAuthManager();
|
|
494
536
|
await authManager.loginWithDiscord();
|
|
495
537
|
},
|
|
@@ -655,7 +697,12 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
655
697
|
}
|
|
656
698
|
return path.includes(`/${provider}`);
|
|
657
699
|
};
|
|
658
|
-
|
|
700
|
+
try {
|
|
701
|
+
onboarding.init();
|
|
702
|
+
}
|
|
703
|
+
catch (err) {
|
|
704
|
+
console.error('Failed to initialize OnboardingUI:', err);
|
|
705
|
+
}
|
|
659
706
|
// Check if we should keep it open (if handling a callback)
|
|
660
707
|
const urlParams = new URLSearchParams(window.location.search);
|
|
661
708
|
const shouldKeepOpen = hasAuthParams(urlParams);
|
|
@@ -682,13 +729,26 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
682
729
|
}
|
|
683
730
|
onboardingRef.current = onboarding;
|
|
684
731
|
// Handle Google OAuth callback (only in useEffect, not exposed)
|
|
685
|
-
const handleGoogleCallback = async () => {
|
|
732
|
+
const handleGoogleCallback = async (force = false) => {
|
|
686
733
|
if (googleCallbackHandledRef.current)
|
|
687
734
|
return;
|
|
688
735
|
const urlParams = new URLSearchParams(window.location.search);
|
|
689
736
|
if (!hasAuthParams(urlParams) || matchesProvider('twitter', urlParams) || matchesProvider('discord', urlParams)) {
|
|
690
737
|
return;
|
|
691
738
|
}
|
|
739
|
+
// Check if we initiated this OAuth flow
|
|
740
|
+
let oauthPending = null;
|
|
741
|
+
try {
|
|
742
|
+
oauthPending = localStorage.getItem('abstraxn_oauth_pending');
|
|
743
|
+
}
|
|
744
|
+
catch (e) { }
|
|
745
|
+
if (!force && !oauthPending)
|
|
746
|
+
return;
|
|
747
|
+
// Clear the pending flag
|
|
748
|
+
try {
|
|
749
|
+
localStorage.removeItem('abstraxn_oauth_pending');
|
|
750
|
+
}
|
|
751
|
+
catch (e) { }
|
|
692
752
|
// Show loading modal if success=true is in URL
|
|
693
753
|
const hasSuccess = urlParams.get('success') === 'true';
|
|
694
754
|
if (hasSuccess && onboardingRef.current) {
|
|
@@ -748,6 +808,19 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
748
808
|
if (!hasAuthParams(urlParams) || !matchesProvider('discord', urlParams)) {
|
|
749
809
|
return;
|
|
750
810
|
}
|
|
811
|
+
// Check if we initiated this OAuth flow
|
|
812
|
+
let oauthPending = null;
|
|
813
|
+
try {
|
|
814
|
+
oauthPending = localStorage.getItem('abstraxn_oauth_pending');
|
|
815
|
+
}
|
|
816
|
+
catch (e) { }
|
|
817
|
+
if (!oauthPending)
|
|
818
|
+
return;
|
|
819
|
+
// Clear the pending flag
|
|
820
|
+
try {
|
|
821
|
+
localStorage.removeItem('abstraxn_oauth_pending');
|
|
822
|
+
}
|
|
823
|
+
catch (e) { }
|
|
751
824
|
// Show loading modal if success=true is in URL
|
|
752
825
|
const hasSuccess = urlParams.get('success') === 'true';
|
|
753
826
|
if (hasSuccess && onboardingRef.current) {
|
|
@@ -807,6 +880,19 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
807
880
|
if (!hasAuthParams(urlParams) || !matchesProvider('twitter', urlParams)) {
|
|
808
881
|
return;
|
|
809
882
|
}
|
|
883
|
+
// Check if we initiated this OAuth flow
|
|
884
|
+
let oauthPending = null;
|
|
885
|
+
try {
|
|
886
|
+
oauthPending = localStorage.getItem('abstraxn_oauth_pending');
|
|
887
|
+
}
|
|
888
|
+
catch (e) { }
|
|
889
|
+
if (!oauthPending)
|
|
890
|
+
return;
|
|
891
|
+
// Clear the pending flag
|
|
892
|
+
try {
|
|
893
|
+
localStorage.removeItem('abstraxn_oauth_pending');
|
|
894
|
+
}
|
|
895
|
+
catch (e) { }
|
|
810
896
|
// Show loading modal if success=true is in URL
|
|
811
897
|
const hasSuccess = urlParams.get('success') === 'true';
|
|
812
898
|
if (hasSuccess && onboardingRef.current) {
|
|
@@ -917,6 +1003,10 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
917
1003
|
// Show onboarding UI (defined first to avoid hoisting issues)
|
|
918
1004
|
const showOnboarding = useCallback(() => {
|
|
919
1005
|
setError(null); // Clear any previous errors
|
|
1006
|
+
if (!onboardingRef.current) {
|
|
1007
|
+
console.error('OnboardingUI not initialized - cannot show modal');
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
920
1010
|
if (onboardingRef.current) {
|
|
921
1011
|
const onboarding = onboardingRef.current;
|
|
922
1012
|
// Re-initialize if destroyed
|
|
@@ -1613,7 +1703,7 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
1613
1703
|
}
|
|
1614
1704
|
}, []);
|
|
1615
1705
|
// Handle Google callback
|
|
1616
|
-
const handleGoogleCallback = useCallback(async () => {
|
|
1706
|
+
const handleGoogleCallback = useCallback(async (_force = false) => {
|
|
1617
1707
|
if (!walletRef.current)
|
|
1618
1708
|
return;
|
|
1619
1709
|
setLoading(true);
|
|
@@ -2350,7 +2440,7 @@ function AbstraxnProviderInner({ config, children, base, wagmi }) {
|
|
|
2350
2440
|
loginWithOTP,
|
|
2351
2441
|
verifyOTP,
|
|
2352
2442
|
loginWithGoogle,
|
|
2353
|
-
handleGoogleCallback,
|
|
2443
|
+
handleGoogleCallback: () => handleGoogleCallback(true),
|
|
2354
2444
|
refreshWhoami,
|
|
2355
2445
|
uiConfig: config.ui,
|
|
2356
2446
|
// External wallet methods
|
|
@@ -2987,8 +3077,12 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
2987
3077
|
const { wagmiConfig, configError } = useMemo(() => {
|
|
2988
3078
|
if (!externalWalletsEnabled)
|
|
2989
3079
|
return { wagmiConfig: null, configError: null };
|
|
3080
|
+
// Use provided config if available
|
|
3081
|
+
if (config.wagmiConfig) {
|
|
3082
|
+
return { wagmiConfig: config.wagmiConfig, configError: null };
|
|
3083
|
+
}
|
|
2990
3084
|
try {
|
|
2991
|
-
const configResult = createWagmiConfig(wagmiChains, config.externalWallets?.walletConnectProjectId, config.externalWallets?.connectors, config.ui?.theme || 'dark');
|
|
3085
|
+
const configResult = createWagmiConfig(wagmiChains, config.externalWallets?.walletConnectProjectId, config.externalWallets?.connectors, config.ui?.theme || 'dark', config.externalWallets?.ssr);
|
|
2992
3086
|
return { wagmiConfig: configResult, configError: null };
|
|
2993
3087
|
}
|
|
2994
3088
|
catch (error) {
|
|
@@ -2998,7 +3092,7 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
2998
3092
|
configError: error instanceof Error ? error : new Error('Failed to create wagmi config')
|
|
2999
3093
|
};
|
|
3000
3094
|
}
|
|
3001
|
-
}, [externalWalletsEnabled, wagmiChains, config.externalWallets?.walletConnectProjectId, config.externalWallets?.connectors]);
|
|
3095
|
+
}, [externalWalletsEnabled, wagmiChains, config.externalWallets?.walletConnectProjectId, config.externalWallets?.connectors, config.wagmiConfig, config.externalWallets?.ssr]);
|
|
3002
3096
|
// If external wallets are enabled, wrap with QueryClientProvider and WagmiProvider
|
|
3003
3097
|
if (externalWalletsEnabled) {
|
|
3004
3098
|
// Check if React Query is available BEFORE doing anything else
|
|
@@ -3021,7 +3115,7 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
3021
3115
|
// Don't render AbstraxnProviderInner until wagmiConfig is ready
|
|
3022
3116
|
return (_jsx(QueryClientWrapper, { queryClient: queryClient, children: _jsx("div", { style: { display: 'none' }, children: "Loading wallet connectors..." }) }));
|
|
3023
3117
|
}
|
|
3024
|
-
return (_jsx(QueryClientWrapper, { queryClient: queryClient, children: _jsx(WagmiProvider, { config: wagmiConfig, children: _jsx(AbstraxnProviderWithWagmi, { config: config, children: children }) }) }));
|
|
3118
|
+
return (_jsx(QueryClientWrapper, { queryClient: queryClient, children: _jsx(WagmiProvider, { config: wagmiConfig, initialState: config.initialState, children: _jsx(AbstraxnProviderWithWagmi, { config: config, children: children }) }) }));
|
|
3025
3119
|
}
|
|
3026
3120
|
// If external wallets are disabled, use the provider without wagmi
|
|
3027
3121
|
return _jsx(AbstraxnProviderWithoutWagmi, { config: config, children: children });
|