@abstraxn/signer-react 1.0.10 → 1.0.12
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/CHANGELOG.md +20 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProvider.js +37 -6
- package/dist/src/components/AbstraxnProvider/AbstraxnProvider.js.map +1 -1
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.js +35 -2
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.js.map +1 -1
- package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.js +13 -3
- package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.js.map +1 -1
- package/dist/src/components/AbstraxnProvider/useWalletInitialization.js +4 -1
- package/dist/src/components/AbstraxnProvider/useWalletInitialization.js.map +1 -1
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.d.ts +1 -1
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.js +8 -2
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.js.map +1 -1
- package/dist/src/hooks.js +6 -0
- package/dist/src/hooks.js.map +1 -1
- package/dist/src/wagmiConfig.d.ts +4 -4
- package/dist/src/wagmiConfig.js +21 -14
- package/dist/src/wagmiConfig.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [1.0.12] - 2026-02-18
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Wagmi store cookie reset on theme change** – Changing the app theme (e.g. light/dark toggle) no longer clears the wagmi connection state. The wagmi config `useMemo` now depends on a stable `chainsKey` (sorted chain IDs string) instead of the `wagmiChains` array reference, so the config is not recreated when only theme or other unrelated props change, and the `wagmi.store` cookie (and connection) is preserved.
|
|
15
|
+
|
|
16
|
+
- **Onboarding modal theme not updating with app theme** – When toggling app theme to dark mode, the full onboarding modal (card background, overlay, and wallet buttons) now updates correctly. Previously only the wallet list buttons appeared to change while the rest of the modal stayed light. The SDK now syncs `config.ui.theme` to OnboardingUIWeb when it changes (via `setTheme`), and `setTheme` updates both the root container and the modal content wrapper theme class so the entire modal reflects dark/light.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **TypeScript** – Wagmi theme ref is now typed as `useRef<"light" | "dark">` so it is assignable to `createWagmiConfig`’s theme parameter. Hydration guard `useEffect` explicitly returns `undefined` when no cleanup is needed to satisfy "Not all code paths return a value."
|
|
21
|
+
|
|
22
|
+
## [1.0.11] - 2026-02-16
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- **External wallet "session expired" when refresh would fix it** – When an external wallet (e.g. WalletConnect) hit "Connector not connected" due to in-memory state desync (session still valid, but wagmi state stale), the SDK now waits 400ms after reconnect so wagmi can update connector state, then retries getting the wallet client or the operation. If that still fails, it retries once more after a 300ms delay before showing "Your wallet session expired or was disconnected. Please reconnect your wallet." This fixes the case where the app appeared disconnected on submit (e.g. `useWriteContract`, `signMessage`, `sendTransaction`) but worked again after a page refresh. Applied in `useWriteContract` (hooks.ts), `signMessage`, and `sendTransaction` (AbstraxnProviderInner).
|
|
27
|
+
|
|
8
28
|
## [1.0.9] - 2026-02-11
|
|
9
29
|
|
|
10
30
|
### Fixed
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
* Main AbstraxnProvider component
|
|
4
4
|
* Handles QueryClient/WagmiProvider setup and conditional rendering
|
|
5
5
|
*/
|
|
6
|
-
import { useMemo } from "react";
|
|
6
|
+
import { useMemo, useRef, useEffect, useState } from "react";
|
|
7
7
|
import { WagmiProvider } from "wagmi";
|
|
8
8
|
import { createWagmiConfig } from "../../wagmiConfig";
|
|
9
9
|
import { EVM_CHAINS, toCoreChain } from "../../chains";
|
|
@@ -12,9 +12,24 @@ import { AbstraxnProviderWithoutWagmi } from "./AbstraxnProviderWithoutWagmi";
|
|
|
12
12
|
import { useQueryClientSafe, QueryClientWrapper, canUseReactQuery } from "./utils";
|
|
13
13
|
export function AbstraxnProvider({ config, children }) {
|
|
14
14
|
const externalWalletsEnabled = config.externalWallets?.enabled ?? false;
|
|
15
|
+
const externalSsr = config.externalWallets?.ssr ?? false;
|
|
15
16
|
// Get or create QueryClient - tries to use existing one from context first
|
|
16
17
|
// This ensures we use the app's QueryClient instance if it exists, preventing multiple instances
|
|
17
18
|
const queryClient = useQueryClientSafe();
|
|
19
|
+
// ✅ Hydration guard for SSR - wait for client-side to be ready for wallet detection
|
|
20
|
+
const [isHydrated, setIsHydrated] = useState(() => {
|
|
21
|
+
return typeof window !== 'undefined';
|
|
22
|
+
});
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (externalSsr && typeof window !== 'undefined' && !isHydrated) {
|
|
25
|
+
// Wait for wallet injection scripts to run (Phantom, etc.)
|
|
26
|
+
const timer = setTimeout(() => {
|
|
27
|
+
setIsHydrated(true);
|
|
28
|
+
}, 100);
|
|
29
|
+
return () => clearTimeout(timer);
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}, [externalSsr, isHydrated]);
|
|
18
33
|
// Create wagmi config if external wallets are enabled
|
|
19
34
|
// Use useMemo to ensure config is created synchronously during render
|
|
20
35
|
// This prevents the "Loading wallet connectors..." state from flashing or blocking initial render
|
|
@@ -104,8 +119,20 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
104
119
|
.sort()
|
|
105
120
|
.join(",") || "";
|
|
106
121
|
const walletConnectProjectId = config.externalWallets?.walletConnectProjectId ?? "";
|
|
107
|
-
|
|
108
|
-
|
|
122
|
+
// Stable key for chains so wagmi config is not recreated when only theme (or other
|
|
123
|
+
// unrelated props) change. Prevents wagmi.store cookie from being reset on theme toggle.
|
|
124
|
+
const chainsKey = useMemo(() => wagmiChains
|
|
125
|
+
.map((c) => c.id)
|
|
126
|
+
.sort((a, b) => a - b)
|
|
127
|
+
.join(","), [wagmiChains]);
|
|
128
|
+
// ✅ Use ref for theme to prevent wagmi config recreation on theme changes
|
|
129
|
+
const wagmiThemeRef = useRef(config.ui?.theme === "light" ? "light" : "dark");
|
|
130
|
+
useEffect(() => {
|
|
131
|
+
const currentTheme = config.ui?.theme || "dark";
|
|
132
|
+
if (currentTheme === "light" || currentTheme === "dark") {
|
|
133
|
+
wagmiThemeRef.current = currentTheme;
|
|
134
|
+
}
|
|
135
|
+
}, [config.ui?.theme]);
|
|
109
136
|
const { wagmiConfig, configError } = useMemo(() => {
|
|
110
137
|
if (!externalWalletsEnabled)
|
|
111
138
|
return { wagmiConfig: null, configError: null };
|
|
@@ -118,7 +145,7 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
118
145
|
config.externalWallets.connectors.length > 0
|
|
119
146
|
? config.externalWallets.connectors
|
|
120
147
|
: undefined;
|
|
121
|
-
const configResult = createWagmiConfig(wagmiChains, config.externalWallets?.walletConnectProjectId, connectors,
|
|
148
|
+
const configResult = createWagmiConfig(wagmiChains, config.externalWallets?.walletConnectProjectId, connectors, wagmiThemeRef.current, config.externalWallets?.ssr);
|
|
122
149
|
return { wagmiConfig: configResult, configError: null };
|
|
123
150
|
}
|
|
124
151
|
catch (error) {
|
|
@@ -132,10 +159,9 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
132
159
|
}
|
|
133
160
|
}, [
|
|
134
161
|
externalWalletsEnabled,
|
|
135
|
-
|
|
162
|
+
chainsKey,
|
|
136
163
|
connectorsKey,
|
|
137
164
|
walletConnectProjectId,
|
|
138
|
-
themeKey,
|
|
139
165
|
externalSsr,
|
|
140
166
|
config.wagmiConfig,
|
|
141
167
|
]);
|
|
@@ -161,6 +187,11 @@ export function AbstraxnProvider({ config, children }) {
|
|
|
161
187
|
// Don't render AbstraxnProviderInner until wagmiConfig is ready
|
|
162
188
|
return (_jsx(QueryClientWrapper, { queryClient: queryClient, children: _jsx("div", { style: { display: "none" }, children: "Loading wallet connectors..." }) }));
|
|
163
189
|
}
|
|
190
|
+
// ✅ For SSR mode, wait for hydration before rendering WagmiProvider
|
|
191
|
+
// This ensures injected wallets (Phantom, etc.) are detected properly
|
|
192
|
+
if (externalSsr && !isHydrated) {
|
|
193
|
+
return (_jsx(QueryClientWrapper, { queryClient: queryClient, children: _jsx("div", { style: { display: "none" }, children: "Hydrating wallet connectors..." }) }));
|
|
194
|
+
}
|
|
164
195
|
// Do NOT pass key to WagmiProvider. Remounting loses connection state and causes
|
|
165
196
|
// "Connector not connected" in Next.js (e.g. when config loads after hydration).
|
|
166
197
|
return (_jsx(QueryClientWrapper, { queryClient: queryClient, children: _jsx(WagmiProvider, { config: wagmiConfig, initialState: config.initialState, children: _jsx(AbstraxnProviderWithWagmi, { config: config, children: children }) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstraxnProvider.js","sourceRoot":"","sources":["../../../../src/components/AbstraxnProvider/AbstraxnProvider.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstraxnProvider.js","sourceRoot":"","sources":["../../../../src/components/AbstraxnProvider/AbstraxnProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -979,6 +979,17 @@ export function AbstraxnProviderInner({ config, children, base, wagmi, }) {
|
|
|
979
979
|
}
|
|
980
980
|
};
|
|
981
981
|
}, []); // Only run once on mount
|
|
982
|
+
// Sync theme to OnboardingUIWeb when config.ui.theme changes (e.g. app theme toggle)
|
|
983
|
+
// So the full modal (card + overlay) goes dark/light, not just the React-mounted wallet buttons
|
|
984
|
+
const currentTheme = config.ui?.theme || "light";
|
|
985
|
+
useEffect(() => {
|
|
986
|
+
if (!onboardingRef.current)
|
|
987
|
+
return;
|
|
988
|
+
const onboarding = onboardingRef.current;
|
|
989
|
+
if (typeof onboarding.setTheme === "function") {
|
|
990
|
+
onboarding.setTheme(currentTheme);
|
|
991
|
+
}
|
|
992
|
+
}, [currentTheme]);
|
|
982
993
|
// Ref to store the root instance to prevent re-mounting (defined early)
|
|
983
994
|
const externalWalletRootRef = useRef(null);
|
|
984
995
|
const externalWalletMountedRef = useRef(false);
|
|
@@ -1520,13 +1531,25 @@ export function AbstraxnProviderInner({ config, children, base, wagmi, }) {
|
|
|
1520
1531
|
? [wagmiAccount.connector]
|
|
1521
1532
|
: undefined,
|
|
1522
1533
|
});
|
|
1534
|
+
// Give wagmi time to update connector state after reconnect (fixes desync where refresh would work)
|
|
1535
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
1523
1536
|
const signature = await wagmiSignMessage.signMessageAsync({
|
|
1524
1537
|
message,
|
|
1525
1538
|
});
|
|
1526
1539
|
return signature;
|
|
1527
1540
|
}
|
|
1528
1541
|
catch (reconnectErr) {
|
|
1529
|
-
//
|
|
1542
|
+
// First retry failed; try once more after delay
|
|
1543
|
+
try {
|
|
1544
|
+
await new Promise((r) => setTimeout(r, 300));
|
|
1545
|
+
const signature = await wagmiSignMessage.signMessageAsync({
|
|
1546
|
+
message,
|
|
1547
|
+
});
|
|
1548
|
+
return signature;
|
|
1549
|
+
}
|
|
1550
|
+
catch {
|
|
1551
|
+
// Reconnect or retry failed, fall through to user-facing error
|
|
1552
|
+
}
|
|
1530
1553
|
}
|
|
1531
1554
|
}
|
|
1532
1555
|
const error = isConnectorNotConnected
|
|
@@ -1621,11 +1644,21 @@ export function AbstraxnProviderInner({ config, children, base, wagmi, }) {
|
|
|
1621
1644
|
? [wagmiAccount.connector]
|
|
1622
1645
|
: undefined,
|
|
1623
1646
|
});
|
|
1647
|
+
// Give wagmi time to update connector state after reconnect (fixes desync where refresh would work)
|
|
1648
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
1624
1649
|
const hash = await wagmiSendTransaction.sendTransactionAsync(wagmiTx);
|
|
1625
1650
|
return { hash };
|
|
1626
1651
|
}
|
|
1627
1652
|
catch (reconnectErr) {
|
|
1628
|
-
//
|
|
1653
|
+
// First retry failed; try once more after delay
|
|
1654
|
+
try {
|
|
1655
|
+
await new Promise((r) => setTimeout(r, 300));
|
|
1656
|
+
const hash = await wagmiSendTransaction.sendTransactionAsync(wagmiTx);
|
|
1657
|
+
return { hash };
|
|
1658
|
+
}
|
|
1659
|
+
catch {
|
|
1660
|
+
// Reconnect or retry failed, fall through to user-facing error
|
|
1661
|
+
}
|
|
1629
1662
|
}
|
|
1630
1663
|
}
|
|
1631
1664
|
const error = isConnectorNotConnected
|