@1sat/react 0.0.29 → 0.0.31

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.
@@ -1 +1 @@
1
- {"version":3,"file":"SigmaCallback.d.ts","sourceRoot":"","sources":["../src/SigmaCallback.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAI3D,MAAM,WAAW,kBAAkB;IAClC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,SAAS,CAAA;CAC9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,EAC7B,UAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,GACX,EAAE,kBAAkB,2CAoGpB"}
1
+ {"version":3,"file":"SigmaCallback.d.ts","sourceRoot":"","sources":["../src/SigmaCallback.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAG3D,MAAM,WAAW,kBAAkB;IAClC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,SAAS,CAAA;CAC9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,EAC7B,UAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,GACX,EAAE,kBAAkB,2CAwGpB"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '@1sat/connect';
2
- export { WalletProvider, useWallet, loadStoredProvider, type WalletContextValue, type WalletProviderProps, type WalletStatus, } from './wallet-context';
2
+ export { WalletProvider, useWallet, loadStoredProvider, clearSigmaGuard, type WalletContextValue, type WalletProviderProps, type WalletStatus, } from './wallet-context';
3
3
  export { SigmaCallback, type SigmaCallbackProps } from './SigmaCallback';
4
4
  export { ConnectDialog, type ConnectDialogProps, type ConnectDialogProviderInfo, type ConnectDialogRenderProps, } from './ConnectDialog';
5
5
  export { ConnectDialogProvider, useConnectDialog, type ConnectDialogProviderProps, } from './ConnectDialogProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAG7B,OAAO,EACN,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GACjB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGxE,OAAO,EACN,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC7B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,0BAA0B,GAC/B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EACN,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC9B,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAG7B,OAAO,EACN,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GACjB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGxE,OAAO,EACN,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC7B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,0BAA0B,GAC/B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EACN,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC9B,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -42,9 +42,25 @@ function clearStored() {
42
42
  return;
43
43
  localStorage.removeItem(STORAGE_KEY);
44
44
  }
45
+ var SIGMA_GUARD_KEY = "onesat_sigma_reconnecting";
46
+ function setSigmaGuard() {
47
+ if (typeof window === "undefined")
48
+ return;
49
+ sessionStorage.setItem(SIGMA_GUARD_KEY, "true");
50
+ }
51
+ function hasSigmaGuard() {
52
+ if (typeof window === "undefined")
53
+ return false;
54
+ return sessionStorage.getItem(SIGMA_GUARD_KEY) === "true";
55
+ }
56
+ function clearSigmaGuard() {
57
+ if (typeof window === "undefined")
58
+ return;
59
+ sessionStorage.removeItem(SIGMA_GUARD_KEY);
60
+ }
45
61
  var WalletContext = createContext(null);
46
62
  function WalletProvider({
47
- autoDetect = true,
63
+ autoReconnect = false,
48
64
  providers,
49
65
  children
50
66
  }) {
@@ -103,24 +119,49 @@ function WalletProvider({
103
119
  }
104
120
  }, [availableProviders, providers, applyResult]);
105
121
  const mountRef = useRef({
106
- autoDetect,
122
+ autoReconnect,
107
123
  availableProviders,
108
124
  connect,
109
125
  applyResult
110
126
  });
111
127
  mountRef.current = {
112
- autoDetect,
128
+ autoReconnect,
113
129
  availableProviders,
114
130
  connect,
115
131
  applyResult
116
132
  };
117
133
  useEffect(() => {
118
- const { autoDetect: auto, connect: doConnect } = mountRef.current;
119
- if (auto) {
120
- doConnect();
121
- } else {
122
- setStatus("selecting");
134
+ const { autoReconnect: shouldReconnect, availableProviders: configured, connect: doConnect } = mountRef.current;
135
+ if (!shouldReconnect) {
136
+ setStatus("disconnected");
137
+ return;
138
+ }
139
+ const stored = loadStoredProvider();
140
+ if (!stored) {
141
+ setStatus("disconnected");
142
+ return;
143
+ }
144
+ const isConfigured = configured.some((p) => p.type === stored);
145
+ if (!isConfigured) {
146
+ clearStored();
147
+ setStatus("disconnected");
148
+ return;
123
149
  }
150
+ if (stored === "sigma" && hasSigmaGuard()) {
151
+ clearStored();
152
+ clearSigmaGuard();
153
+ setStatus("disconnected");
154
+ return;
155
+ }
156
+ if (stored === "sigma") {
157
+ setSigmaGuard();
158
+ }
159
+ doConnect(stored).catch(() => {
160
+ clearStored();
161
+ if (stored === "sigma")
162
+ clearSigmaGuard();
163
+ setStatus("disconnected");
164
+ });
124
165
  }, []);
125
166
  const value = useMemo(() => ({
126
167
  wallet,
@@ -129,6 +170,7 @@ function WalletProvider({
129
170
  providerType,
130
171
  availableProviders,
131
172
  connect,
173
+ applyResult,
132
174
  disconnect,
133
175
  error
134
176
  }), [
@@ -138,6 +180,7 @@ function WalletProvider({
138
180
  providerType,
139
181
  availableProviders,
140
182
  connect,
183
+ applyResult,
141
184
  disconnect,
142
185
  error
143
186
  ]);
@@ -164,6 +207,7 @@ function SigmaCallback({
164
207
  loadingContent,
165
208
  renderError
166
209
  }) {
210
+ const { applyResult } = useWallet();
167
211
  const [error, setError] = useState2(null);
168
212
  const [status, setStatus] = useState2("Completing authentication...");
169
213
  useEffect2(() => {
@@ -171,7 +215,9 @@ function SigmaCallback({
171
215
  async function completeSignIn() {
172
216
  const oauthResult = await completeSigmaOAuth(searchParams);
173
217
  setStatus("Connecting wallet...");
174
- await connectSigmaWallet(oauthResult.bapId);
218
+ const walletResult = await connectSigmaWallet(oauthResult.bapId);
219
+ applyResult(walletResult);
220
+ clearSigmaGuard();
175
221
  if (onComplete) {
176
222
  onComplete();
177
223
  } else {
@@ -180,10 +226,11 @@ function SigmaCallback({
180
226
  }
181
227
  completeSignIn().catch((err) => {
182
228
  console.error("Sigma sign-in error:", err);
229
+ clearSigmaGuard();
183
230
  const msg = err instanceof Error ? err.message : typeof err === "object" && err !== null && ("message" in err) ? String(err.message) : "Authentication failed";
184
231
  setError(msg);
185
232
  });
186
- }, [redirectTo]);
233
+ }, [redirectTo, applyResult, onComplete]);
187
234
  if (error) {
188
235
  if (renderError) {
189
236
  return /* @__PURE__ */ jsx2(Fragment, {
@@ -516,6 +563,7 @@ export {
516
563
  useWallet,
517
564
  useConnectDialog,
518
565
  loadStoredProvider,
566
+ clearSigmaGuard,
519
567
  WalletSelector,
520
568
  WalletProvider,
521
569
  SigmaCallback,
@@ -1,4 +1,4 @@
1
- import { type AvailableProvider, type WalletProviderConfig } from '@1sat/connect';
1
+ import { type AvailableProvider, type ConnectWalletResult, type WalletProviderConfig } from '@1sat/connect';
2
2
  import type { WalletInterface } from '@bsv/sdk';
3
3
  import { type ReactNode } from 'react';
4
4
  export type WalletStatus = 'disconnected' | 'detecting' | 'selecting' | 'connecting' | 'connected';
@@ -9,15 +9,17 @@ export interface WalletContextValue {
9
9
  providerType: string | null;
10
10
  availableProviders: AvailableProvider[];
11
11
  connect: (providerType?: string) => Promise<void>;
12
+ applyResult: (result: ConnectWalletResult) => void;
12
13
  disconnect: () => void;
13
14
  error: Error | null;
14
15
  }
15
16
  export interface WalletProviderProps {
16
- autoDetect?: boolean;
17
+ autoReconnect?: boolean;
17
18
  providers?: WalletProviderConfig[];
18
19
  children: ReactNode;
19
20
  }
20
21
  export declare function loadStoredProvider(): string | null;
21
- export declare function WalletProvider({ autoDetect, providers, children, }: WalletProviderProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function clearSigmaGuard(): void;
23
+ export declare function WalletProvider({ autoReconnect, providers, children, }: WalletProviderProps): import("react/jsx-runtime").JSX.Element;
22
24
  export declare function useWallet(): WalletContextValue;
23
25
  //# sourceMappingURL=wallet-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-context.d.ts","sourceRoot":"","sources":["../src/wallet-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,iBAAiB,EAEtB,KAAK,oBAAoB,EAGzB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EACN,KAAK,SAAS,EAQd,MAAM,OAAO,CAAA;AAEd,MAAM,MAAM,YAAY,GACrB,cAAc,GACd,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,CAAA;AAEd,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,YAAY,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACnB;AAID,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAUlD;AAcD,wBAAgB,cAAc,CAAC,EAC9B,UAAiB,EACjB,SAAS,EACT,QAAQ,GACR,EAAE,mBAAmB,2CAwHrB;AAED,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
1
+ {"version":3,"file":"wallet-context.d.ts","sourceRoot":"","sources":["../src/wallet-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAGzB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EACN,KAAK,SAAS,EAQd,MAAM,OAAO,CAAA;AAEd,MAAM,MAAM,YAAY,GACrB,cAAc,GACd,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,CAAA;AAEd,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,YAAY,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,WAAW,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAClD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACnB;AAID,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAUlD;AAwBD,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAID,wBAAgB,cAAc,CAAC,EAC9B,aAAqB,EACrB,SAAS,EACT,QAAQ,GACR,EAAE,mBAAmB,2CA0JrB;AAED,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/react",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "description": "React hooks and components for 1Sat wallet integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",