@dynamic-labs/sdk-react-core 3.0.0-alpha.44 → 3.0.0-alpha.45

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 CHANGED
@@ -1,4 +1,12 @@
1
1
 
2
+ ## [3.0.0-alpha.45](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.44...v3.0.0-alpha.45) (2024-08-16)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * always check for dynamicOauthCode and use during signin or verify ([#6618](https://github.com/dynamic-labs/DynamicAuth/issues/6618)) ([dd33231](https://github.com/dynamic-labs/DynamicAuth/commit/dd332310c9fdfa7bb593b7f567751133a93c6938))
8
+ * display qr code when no primary is selected ([#6605](https://github.com/dynamic-labs/DynamicAuth/issues/6605)) ([406afa3](https://github.com/dynamic-labs/DynamicAuth/commit/406afa32b38a29a2d8ce96803ae45ab35adb5ce3))
9
+
2
10
  ## [3.0.0-alpha.44](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.43...v3.0.0-alpha.44) (2024-08-15)
3
11
 
4
12
 
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "3.0.0-alpha.44";
6
+ var version = "3.0.0-alpha.45";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.516",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "3.0.0-alpha.44";
2
+ var version = "3.0.0-alpha.45";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.516",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "3.0.0-alpha.44",
3
+ "version": "3.0.0-alpha.45",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -17,17 +17,17 @@
17
17
  "react-i18next": "13.5.0",
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
- "@dynamic-labs/iconic": "3.0.0-alpha.44",
21
- "@dynamic-labs/logger": "3.0.0-alpha.44",
22
- "@dynamic-labs/message-transport": "3.0.0-alpha.44",
23
- "@dynamic-labs/multi-wallet": "3.0.0-alpha.44",
24
- "@dynamic-labs/rpc-providers": "3.0.0-alpha.44",
25
- "@dynamic-labs/store": "3.0.0-alpha.44",
26
- "@dynamic-labs/types": "3.0.0-alpha.44",
27
- "@dynamic-labs/utils": "3.0.0-alpha.44",
28
- "@dynamic-labs/viem-utils": "3.0.0-alpha.44",
29
- "@dynamic-labs/wallet-book": "3.0.0-alpha.44",
30
- "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.44",
20
+ "@dynamic-labs/iconic": "3.0.0-alpha.45",
21
+ "@dynamic-labs/logger": "3.0.0-alpha.45",
22
+ "@dynamic-labs/message-transport": "3.0.0-alpha.45",
23
+ "@dynamic-labs/multi-wallet": "3.0.0-alpha.45",
24
+ "@dynamic-labs/rpc-providers": "3.0.0-alpha.45",
25
+ "@dynamic-labs/store": "3.0.0-alpha.45",
26
+ "@dynamic-labs/types": "3.0.0-alpha.45",
27
+ "@dynamic-labs/utils": "3.0.0-alpha.45",
28
+ "@dynamic-labs/viem-utils": "3.0.0-alpha.45",
29
+ "@dynamic-labs/wallet-book": "3.0.0-alpha.45",
30
+ "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.45",
31
31
  "eventemitter3": "5.0.1"
32
32
  },
33
33
  "devDependencies": {
@@ -122,12 +122,15 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
122
122
  return;
123
123
  const url = new URL(window.location.href);
124
124
  const dynamicOauthState = url.searchParams.get('dynamicOauthState');
125
- if (!dynamicOauthState) {
125
+ const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
126
+ if (!dynamicOauthState || !dynamicOauthCode) {
126
127
  return;
127
128
  }
128
129
  const socialStorageItem = socialStorage.searchSocialStorageByState(dynamicOauthState);
129
130
  if (!socialStorageItem)
130
131
  return;
132
+ // we got back the dynamicOauthCode from the oauth provider, set it here so we can use it to sign in
133
+ socialStorageItem.code = dynamicOauthCode;
131
134
  setSocialStorageItem(socialStorageItem);
132
135
  // Clear the state from local storage
133
136
  socialStorage.deleteSocialStorage(socialStorageItem.provider);
@@ -144,6 +147,7 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
144
147
  updateInterfaceStateForLink();
145
148
  }
146
149
  yield completeConnection({
150
+ authCode: socialStorageItem.code,
147
151
  authMode,
148
152
  captchaToken: socialStorageItem.captchaToken,
149
153
  provider: socialStorageItem.provider,
@@ -118,12 +118,15 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
118
118
  return;
119
119
  const url = new URL(window.location.href);
120
120
  const dynamicOauthState = url.searchParams.get('dynamicOauthState');
121
- if (!dynamicOauthState) {
121
+ const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
122
+ if (!dynamicOauthState || !dynamicOauthCode) {
122
123
  return;
123
124
  }
124
125
  const socialStorageItem = searchSocialStorageByState(dynamicOauthState);
125
126
  if (!socialStorageItem)
126
127
  return;
128
+ // we got back the dynamicOauthCode from the oauth provider, set it here so we can use it to sign in
129
+ socialStorageItem.code = dynamicOauthCode;
127
130
  setSocialStorageItem(socialStorageItem);
128
131
  // Clear the state from local storage
129
132
  deleteSocialStorage(socialStorageItem.provider);
@@ -140,6 +143,7 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
140
143
  updateInterfaceStateForLink();
141
144
  }
142
145
  yield completeConnection({
146
+ authCode: socialStorageItem.code,
143
147
  authMode,
144
148
  captchaToken: socialStorageItem.captchaToken,
145
149
  provider: socialStorageItem.provider,
@@ -8,6 +8,8 @@ export type SocialStorageItem = {
8
8
  codeVerifier: string | undefined;
9
9
  /** Captcha token used to verify the user is not a bot */
10
10
  captchaToken?: string;
11
+ /** Oauth code from redirect from oauth provider, this will be provided on response from redirect endpoint **/
12
+ code?: string;
11
13
  };
12
14
  export type SocialStorage = Partial<Record<ProviderEnum, SocialStorageItem>>;
13
15
  export declare const searchSocialStorageByState: (targetState: string) => SocialStorageItem | undefined;
@@ -241,7 +241,7 @@ const useSocialAuth = ({ sessionTimeout, onSettled, onError, onFarcasterUrl, })
241
241
  const mobileRedirectUrl = effectiveRedirectUrl || window.location.href;
242
242
  return oauth.initAuth(environmentId, provider, {
243
243
  redirectUrl: isMobile
244
- ? removeDynamicOauthStateFromUrl(mobileRedirectUrl)
244
+ ? removeDynamicOauthParamsFromUrl(mobileRedirectUrl)
245
245
  : undefined,
246
246
  state,
247
247
  });
@@ -394,9 +394,10 @@ const useSocialAuth = ({ sessionTimeout, onSettled, onError, onFarcasterUrl, })
394
394
  setIsProcessing,
395
395
  };
396
396
  };
397
- const removeDynamicOauthStateFromUrl = (url) => {
397
+ const removeDynamicOauthParamsFromUrl = (url) => {
398
398
  const urlObject = new URL(url);
399
399
  urlObject.searchParams.delete('dynamicOauthState');
400
+ urlObject.searchParams.delete('dynamicOauthCode');
400
401
  return urlObject.toString();
401
402
  };
402
403
 
@@ -237,7 +237,7 @@ const useSocialAuth = ({ sessionTimeout, onSettled, onError, onFarcasterUrl, })
237
237
  const mobileRedirectUrl = effectiveRedirectUrl || window.location.href;
238
238
  return initAuth(environmentId, provider, {
239
239
  redirectUrl: isMobile$1
240
- ? removeDynamicOauthStateFromUrl(mobileRedirectUrl)
240
+ ? removeDynamicOauthParamsFromUrl(mobileRedirectUrl)
241
241
  : undefined,
242
242
  state,
243
243
  });
@@ -390,9 +390,10 @@ const useSocialAuth = ({ sessionTimeout, onSettled, onError, onFarcasterUrl, })
390
390
  setIsProcessing,
391
391
  };
392
392
  };
393
- const removeDynamicOauthStateFromUrl = (url) => {
393
+ const removeDynamicOauthParamsFromUrl = (url) => {
394
394
  const urlObject = new URL(url);
395
395
  urlObject.searchParams.delete('dynamicOauthState');
396
+ urlObject.searchParams.delete('dynamicOauthCode');
396
397
  return urlObject.toString();
397
398
  };
398
399
 
@@ -177,7 +177,7 @@ const useWalletConnectors = ({ authMode, connectedWallets, walletConnectorOption
177
177
  const setPrimaryWallet = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
178
178
  const { newWallet: newPrimaryWallet, connectedAccounts } = yield getSelectedWallet(walletId);
179
179
  newPrimaryWallet.isPrimary = true;
180
- if (!primaryWalletId) {
180
+ if (!primaryWalletId && !checkIfShowQrCodeModal(newPrimaryWallet)) {
181
181
  yield newPrimaryWallet.connector.connect();
182
182
  setPrimaryWalletId(walletId);
183
183
  return;
@@ -173,7 +173,7 @@ const useWalletConnectors = ({ authMode, connectedWallets, walletConnectorOption
173
173
  const setPrimaryWallet = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
174
174
  const { newWallet: newPrimaryWallet, connectedAccounts } = yield getSelectedWallet(walletId);
175
175
  newPrimaryWallet.isPrimary = true;
176
- if (!primaryWalletId) {
176
+ if (!primaryWalletId && !checkIfShowQrCodeModal(newPrimaryWallet)) {
177
177
  yield newPrimaryWallet.connector.connect();
178
178
  setPrimaryWalletId(walletId);
179
179
  return;