@dynamic-labs/sdk-react-core 0.17.0-RC.2 → 0.17.0-RC.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/CHANGELOG.md +14 -0
- package/package.cjs +3 -3
- package/package.js +3 -3
- package/package.json +6 -6
- package/src/index.cjs +2 -2
- package/src/index.js +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +17 -5
- package/src/lib/context/DynamicContext/DynamicContext.d.ts +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.js +17 -5
- package/src/lib/context/DynamicContext/useDynamicContext.cjs +2 -1
- package/src/lib/context/DynamicContext/useDynamicContext.d.ts +1 -1
- package/src/lib/context/DynamicContext/useDynamicContext.js +2 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +6 -0
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.d.ts +1 -0
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +6 -0
- package/src/lib/data/api.cjs +6 -1
- package/src/lib/data/api.js +7 -2
- package/src/lib/shared/utils/hooks/useGlobalLoading/index.d.ts +1 -0
- package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.cjs +35 -0
- package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.d.ts +17 -0
- package/src/lib/shared/utils/hooks/useGlobalLoading/useGlobalLoading.js +31 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +1 -2
- package/src/lib/views/EmailVerification/EmailVerification.cjs +4 -1
- package/src/lib/views/EmailVerification/EmailVerification.js +4 -1
- package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.cjs +3 -6
- package/src/lib/views/LoginWithEmailView/components/LoginWithEmailForm/LoginWithEmailForm.js +3 -6
- package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +5 -6
- package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +5 -6
- package/src/lib/views/{WalletNoAccess/WalletNoAccess.cjs → NoAccess/NoAccess.cjs} +17 -5
- package/src/lib/views/NoAccess/NoAccess.d.ts +2 -0
- package/src/lib/views/{WalletNoAccess/WalletNoAccess.js → NoAccess/NoAccess.js} +19 -7
- package/src/lib/views/NoAccess/index.d.ts +1 -0
- package/src/lib/views/WalletList/data.cjs +0 -6
- package/src/lib/views/WalletList/data.d.ts +0 -1
- package/src/lib/views/WalletList/data.js +1 -6
- package/src/lib/views/index.d.ts +1 -1
- package/src/lib/views/viewToComponentMap.cjs +3 -3
- package/src/lib/views/viewToComponentMap.js +3 -3
- package/src/lib/views/WalletNoAccess/WalletNoAccess.d.ts +0 -2
- package/src/lib/views/WalletNoAccess/index.d.ts +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
|
|
2
|
+
## [0.17.0-RC.3](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.2...v0.17.0-RC.3) (2023-04-21)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* consume social sign in settings from dashboard ([#1896](https://github.com/dynamic-labs/DynamicAuth/issues/1896)) ([484fc53](https://github.com/dynamic-labs/DynamicAuth/commit/484fc539ee4f4bbef02dea52a3c4dace1a647b70))
|
|
8
|
+
* **DYN-1820:** support allow list in email authorization ([#1916](https://github.com/dynamic-labs/DynamicAuth/issues/1916)) ([9356346](https://github.com/dynamic-labs/DynamicAuth/commit/93563460d3231f644f21c9acda1b0c33e4dcd893))
|
|
9
|
+
* **DYN-2092:** add and expose global loading state ([#1872](https://github.com/dynamic-labs/DynamicAuth/issues/1872)) ([2aa1781](https://github.com/dynamic-labs/DynamicAuth/commit/2aa1781d02a801b712ff0a3fd6f9d608cc420b2a))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* lock QR Code to 1.5.1 ([#1924](https://github.com/dynamic-labs/DynamicAuth/issues/1924)) ([5c49ba7](https://github.com/dynamic-labs/DynamicAuth/commit/5c49ba7ca20d1effdb8f3d367158adeacda42809))
|
|
15
|
+
|
|
2
16
|
## [0.17.0-RC.2](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.1...v0.17.0-RC.2) (2023-04-20)
|
|
3
17
|
|
|
4
18
|
|
package/package.cjs
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var version = "0.17.0-RC.
|
|
5
|
+
var version = "0.17.0-RC.3";
|
|
6
6
|
var dependencies = {
|
|
7
7
|
"react-focus-lock": "^2.9.2",
|
|
8
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
8
|
+
"@dynamic-labs/sdk-api": "0.0.178",
|
|
9
9
|
"@dynamic-labs/iconic": "^0.1.17",
|
|
10
10
|
"@dynamic-labs/wallet-book": "^0.0.11",
|
|
11
11
|
"@hcaptcha/react-hcaptcha": "~1.4.4",
|
|
12
12
|
"country-list": "^2.3.0",
|
|
13
13
|
yup: "^0.32.11",
|
|
14
14
|
formik: "^2.2.9",
|
|
15
|
-
qrcode: "
|
|
15
|
+
qrcode: "1.5.1",
|
|
16
16
|
ethers: "^5.7.2"
|
|
17
17
|
};
|
|
18
18
|
|
package/package.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var version = "0.17.0-RC.
|
|
1
|
+
var version = "0.17.0-RC.3";
|
|
2
2
|
var dependencies = {
|
|
3
3
|
"react-focus-lock": "^2.9.2",
|
|
4
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
4
|
+
"@dynamic-labs/sdk-api": "0.0.178",
|
|
5
5
|
"@dynamic-labs/iconic": "^0.1.17",
|
|
6
6
|
"@dynamic-labs/wallet-book": "^0.0.11",
|
|
7
7
|
"@hcaptcha/react-hcaptcha": "~1.4.4",
|
|
8
8
|
"country-list": "^2.3.0",
|
|
9
9
|
yup: "^0.32.11",
|
|
10
10
|
formik: "^2.2.9",
|
|
11
|
-
qrcode: "
|
|
11
|
+
qrcode: "1.5.1",
|
|
12
12
|
ethers: "^5.7.2"
|
|
13
13
|
};
|
|
14
14
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "0.17.0-RC.
|
|
3
|
+
"version": "0.17.0-RC.3",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"react-focus-lock": "^2.9.2",
|
|
11
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
11
|
+
"@dynamic-labs/sdk-api": "0.0.178",
|
|
12
12
|
"@dynamic-labs/iconic": "^0.1.17",
|
|
13
13
|
"@dynamic-labs/wallet-book": "^0.0.11",
|
|
14
14
|
"@hcaptcha/react-hcaptcha": "~1.4.4",
|
|
15
15
|
"country-list": "^2.3.0",
|
|
16
16
|
"yup": "^0.32.11",
|
|
17
17
|
"formik": "^2.2.9",
|
|
18
|
-
"qrcode": "
|
|
18
|
+
"qrcode": "1.5.1",
|
|
19
19
|
"ethers": "^5.7.2",
|
|
20
|
-
"@dynamic-labs/logger": "0.17.0-RC.
|
|
21
|
-
"@dynamic-labs/multi-wallet": "0.17.0-RC.
|
|
22
|
-
"@dynamic-labs/wallet-connector-core": "0.17.0-RC.
|
|
20
|
+
"@dynamic-labs/logger": "0.17.0-RC.3",
|
|
21
|
+
"@dynamic-labs/multi-wallet": "0.17.0-RC.3",
|
|
22
|
+
"@dynamic-labs/wallet-connector-core": "0.17.0-RC.3"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"semver": "^7.3.8"
|
package/src/index.cjs
CHANGED
|
@@ -91,7 +91,7 @@ var PendingSignatureView = require('./lib/views/PendingSignatureView/PendingSign
|
|
|
91
91
|
var CollectUserDataView = require('./lib/views/CollectUserDataView/CollectUserDataView.cjs');
|
|
92
92
|
var NoQrNotInstalledView = require('./lib/views/NoQrNotInstalledView/NoQrNotInstalledView.cjs');
|
|
93
93
|
var QrCodeView = require('./lib/views/QrCodeView/QrCodeView.cjs');
|
|
94
|
-
var
|
|
94
|
+
var NoAccess = require('./lib/views/NoAccess/NoAccess.cjs');
|
|
95
95
|
var EmailConfirmationWaitingView = require('./lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs');
|
|
96
96
|
var viewToComponentMap = require('./lib/views/viewToComponentMap.cjs');
|
|
97
97
|
var NetworkNotSupportedSwitchManual = require('./lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs');
|
|
@@ -190,7 +190,7 @@ exports.PendingSignatureView = PendingSignatureView.PendingSignatureView;
|
|
|
190
190
|
exports.CollectUserDataView = CollectUserDataView.CollectUserDataView;
|
|
191
191
|
exports.NoQrNotInstalledView = NoQrNotInstalledView.NoQrNotInstalledView;
|
|
192
192
|
exports.QrCodeView = QrCodeView.QrCodeView;
|
|
193
|
-
exports.
|
|
193
|
+
exports.NoAccess = NoAccess.NoAccess;
|
|
194
194
|
exports.EmailConfirmationWaitingView = EmailConfirmationWaitingView.EmailConfirmationWaitingView;
|
|
195
195
|
exports.viewToComponentMap = viewToComponentMap.viewToComponentMap;
|
|
196
196
|
exports.NetworkNotSupportedSwitchManual = NetworkNotSupportedSwitchManual.NetworkNotSupportedSwitchManual;
|
package/src/index.js
CHANGED
|
@@ -87,7 +87,7 @@ export { PendingSignatureView } from './lib/views/PendingSignatureView/PendingSi
|
|
|
87
87
|
export { CollectUserDataView } from './lib/views/CollectUserDataView/CollectUserDataView.js';
|
|
88
88
|
export { NoQrNotInstalledView } from './lib/views/NoQrNotInstalledView/NoQrNotInstalledView.js';
|
|
89
89
|
export { QrCodeView } from './lib/views/QrCodeView/QrCodeView.js';
|
|
90
|
-
export {
|
|
90
|
+
export { NoAccess } from './lib/views/NoAccess/NoAccess.js';
|
|
91
91
|
export { EmailConfirmationWaitingView } from './lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js';
|
|
92
92
|
export { viewToComponentMap } from './lib/views/viewToComponentMap.js';
|
|
93
93
|
export { NetworkNotSupportedSwitchManual } from './lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js';
|
|
@@ -53,6 +53,7 @@ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs
|
|
|
53
53
|
require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
|
|
54
54
|
require('../../components/ShadowDOM/ShadowDOM.cjs');
|
|
55
55
|
require('../../components/IconButton/IconButton.cjs');
|
|
56
|
+
var useGlobalLoading = require('../../shared/utils/hooks/useGlobalLoading/useGlobalLoading.cjs');
|
|
56
57
|
var helpers = require('./helpers.cjs');
|
|
57
58
|
var validators = require('./validators.cjs');
|
|
58
59
|
var useCustomerCallbacks = require('./useCustomerCallbacks/useCustomerCallbacks.cjs');
|
|
@@ -105,7 +106,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
105
106
|
walletUiUtils,
|
|
106
107
|
});
|
|
107
108
|
const [authMode, setAuthMode] = useLocalStorage.useLocalStorage(localStorage$1.AUTH_MODE, initialAuthenticationMode);
|
|
108
|
-
const { connectWallet, removeConnectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet.useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
|
|
109
|
+
const { connectWallet, removeConnectedInfo, connectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet.useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
|
|
109
110
|
const [selectedWalletConnector, setSelectedWalletConnector] = React.useState(null);
|
|
110
111
|
const removeAuthTokenAndUser = React.useCallback(() => {
|
|
111
112
|
localStorage.removeItem(localStorage$1.AUTH_TOKEN);
|
|
@@ -119,6 +120,14 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
119
120
|
setQrcodeUri,
|
|
120
121
|
wallets,
|
|
121
122
|
});
|
|
123
|
+
const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading.useGlobalLoading({
|
|
124
|
+
authMode,
|
|
125
|
+
connectedInfo,
|
|
126
|
+
connectedWallet,
|
|
127
|
+
primaryWallet,
|
|
128
|
+
projectSettings,
|
|
129
|
+
user,
|
|
130
|
+
});
|
|
122
131
|
const walletForUserFacingContext = authMode === 'connect-and-sign' || user ? primaryWallet : connectedWallet;
|
|
123
132
|
useSyncPrimaryWallet.useSyncPrimaryWallet({
|
|
124
133
|
multiWalletWidgetState,
|
|
@@ -290,6 +299,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
290
299
|
projectSettings,
|
|
291
300
|
qrcodeUri,
|
|
292
301
|
rpcProviders,
|
|
302
|
+
sdkHasLoaded,
|
|
293
303
|
secondaryWallets,
|
|
294
304
|
selectedWalletConnector,
|
|
295
305
|
setAuthMode,
|
|
@@ -305,6 +315,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
305
315
|
setPrimaryWallet,
|
|
306
316
|
setPrimaryWalletId,
|
|
307
317
|
setQrcodeUri,
|
|
318
|
+
setSdkHasLoaded,
|
|
308
319
|
setSelectedWalletConnector,
|
|
309
320
|
setShowAuthFlow,
|
|
310
321
|
setShowDynamicUserProfile,
|
|
@@ -333,9 +344,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
333
344
|
accessDeniedMessagePrimary,
|
|
334
345
|
accessDeniedMessageSecondary,
|
|
335
346
|
accountSwitchState,
|
|
336
|
-
appLogo,
|
|
337
347
|
appLogoUrl,
|
|
338
|
-
displayName,
|
|
339
348
|
appName,
|
|
340
349
|
authMode,
|
|
341
350
|
authorizationViewDisplayOrder,
|
|
@@ -344,20 +353,20 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
344
353
|
computeConnectedStateForWallets,
|
|
345
354
|
connectWallet,
|
|
346
355
|
connectedWallet,
|
|
347
|
-
defaultNumberOfWalletsToShow,
|
|
348
356
|
primaryWallet,
|
|
349
357
|
secondaryWallets,
|
|
350
358
|
consumeNonce,
|
|
351
359
|
cssOverrides,
|
|
352
360
|
debugError,
|
|
353
361
|
onboardingOnlyJwt,
|
|
362
|
+
defaultNumberOfWalletsToShow,
|
|
354
363
|
desktopUri,
|
|
355
364
|
displayTermsOfService,
|
|
356
365
|
environmentId,
|
|
357
366
|
eventsCallbacks,
|
|
358
367
|
handleLogOut,
|
|
359
368
|
handleUnlinkWallet,
|
|
360
|
-
|
|
369
|
+
isAuthenticated,
|
|
361
370
|
isProjectSettingsLoading,
|
|
362
371
|
isSingleWalletAccount,
|
|
363
372
|
isVerifying,
|
|
@@ -379,6 +388,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
379
388
|
projectSettings,
|
|
380
389
|
qrcodeUri,
|
|
381
390
|
rpcProviders,
|
|
391
|
+
sdkHasLoaded,
|
|
382
392
|
selectedWalletConnector,
|
|
383
393
|
setAuthMode,
|
|
384
394
|
setAuthorizationViewDisplayOrder,
|
|
@@ -388,6 +398,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
388
398
|
setNetwork,
|
|
389
399
|
setPrimaryWallet,
|
|
390
400
|
setPrimaryWalletId,
|
|
401
|
+
setSdkHasLoaded,
|
|
391
402
|
setShowQrcodeModal,
|
|
392
403
|
setUser,
|
|
393
404
|
shadowDOMEnabled,
|
|
@@ -402,6 +413,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
402
413
|
termsOfServiceUrl,
|
|
403
414
|
theme,
|
|
404
415
|
toolkitEnabled,
|
|
416
|
+
user,
|
|
405
417
|
vendorCredentials,
|
|
406
418
|
walletUiUtils,
|
|
407
419
|
wallets,
|
|
@@ -56,6 +56,7 @@ export interface IDynamicContext {
|
|
|
56
56
|
projectSettings: ProjectSettings | undefined;
|
|
57
57
|
qrcodeUri: string;
|
|
58
58
|
rpcProviders: DynamicRPCProviders;
|
|
59
|
+
sdkHasLoaded: boolean;
|
|
59
60
|
secondaryWallets: Wallet[];
|
|
60
61
|
selectedWalletConnector: WalletConnector | null;
|
|
61
62
|
setAuthMode: Dispatch<SetStateAction<AuthModeType>>;
|
|
@@ -49,6 +49,7 @@ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
|
|
|
49
49
|
import '../../components/Transition/OpacityTransition/OpacityTransition.js';
|
|
50
50
|
import '../../components/ShadowDOM/ShadowDOM.js';
|
|
51
51
|
import '../../components/IconButton/IconButton.js';
|
|
52
|
+
import { useGlobalLoading } from '../../shared/utils/hooks/useGlobalLoading/useGlobalLoading.js';
|
|
52
53
|
import { initExpirationTime } from './helpers.js';
|
|
53
54
|
import { validateAuthUser } from './validators.js';
|
|
54
55
|
import { useCustomerCallbacks } from './useCustomerCallbacks/useCustomerCallbacks.js';
|
|
@@ -101,7 +102,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
101
102
|
walletUiUtils,
|
|
102
103
|
});
|
|
103
104
|
const [authMode, setAuthMode] = useLocalStorage(AUTH_MODE, initialAuthenticationMode);
|
|
104
|
-
const { connectWallet, removeConnectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
|
|
105
|
+
const { connectWallet, removeConnectedInfo, connectedInfo, connectedWallet, setConnectedWallet, connectWalletByAddressAndChain, } = useConnectWallet(wallets, authMode, environmentId, enableVisitTrackingOnConnectOnly);
|
|
105
106
|
const [selectedWalletConnector, setSelectedWalletConnector] = useState(null);
|
|
106
107
|
const removeAuthTokenAndUser = useCallback(() => {
|
|
107
108
|
localStorage.removeItem(AUTH_TOKEN);
|
|
@@ -115,6 +116,14 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
115
116
|
setQrcodeUri,
|
|
116
117
|
wallets,
|
|
117
118
|
});
|
|
119
|
+
const { sdkHasLoaded, setSdkHasLoaded } = useGlobalLoading({
|
|
120
|
+
authMode,
|
|
121
|
+
connectedInfo,
|
|
122
|
+
connectedWallet,
|
|
123
|
+
primaryWallet,
|
|
124
|
+
projectSettings,
|
|
125
|
+
user,
|
|
126
|
+
});
|
|
118
127
|
const walletForUserFacingContext = authMode === 'connect-and-sign' || user ? primaryWallet : connectedWallet;
|
|
119
128
|
useSyncPrimaryWallet({
|
|
120
129
|
multiWalletWidgetState,
|
|
@@ -286,6 +295,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
286
295
|
projectSettings,
|
|
287
296
|
qrcodeUri,
|
|
288
297
|
rpcProviders,
|
|
298
|
+
sdkHasLoaded,
|
|
289
299
|
secondaryWallets,
|
|
290
300
|
selectedWalletConnector,
|
|
291
301
|
setAuthMode,
|
|
@@ -301,6 +311,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
301
311
|
setPrimaryWallet,
|
|
302
312
|
setPrimaryWalletId,
|
|
303
313
|
setQrcodeUri,
|
|
314
|
+
setSdkHasLoaded,
|
|
304
315
|
setSelectedWalletConnector,
|
|
305
316
|
setShowAuthFlow,
|
|
306
317
|
setShowDynamicUserProfile,
|
|
@@ -329,9 +340,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
329
340
|
accessDeniedMessagePrimary,
|
|
330
341
|
accessDeniedMessageSecondary,
|
|
331
342
|
accountSwitchState,
|
|
332
|
-
appLogo,
|
|
333
343
|
appLogoUrl,
|
|
334
|
-
displayName,
|
|
335
344
|
appName,
|
|
336
345
|
authMode,
|
|
337
346
|
authorizationViewDisplayOrder,
|
|
@@ -340,20 +349,20 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
340
349
|
computeConnectedStateForWallets,
|
|
341
350
|
connectWallet,
|
|
342
351
|
connectedWallet,
|
|
343
|
-
defaultNumberOfWalletsToShow,
|
|
344
352
|
primaryWallet,
|
|
345
353
|
secondaryWallets,
|
|
346
354
|
consumeNonce,
|
|
347
355
|
cssOverrides,
|
|
348
356
|
debugError,
|
|
349
357
|
onboardingOnlyJwt,
|
|
358
|
+
defaultNumberOfWalletsToShow,
|
|
350
359
|
desktopUri,
|
|
351
360
|
displayTermsOfService,
|
|
352
361
|
environmentId,
|
|
353
362
|
eventsCallbacks,
|
|
354
363
|
handleLogOut,
|
|
355
364
|
handleUnlinkWallet,
|
|
356
|
-
|
|
365
|
+
isAuthenticated,
|
|
357
366
|
isProjectSettingsLoading,
|
|
358
367
|
isSingleWalletAccount,
|
|
359
368
|
isVerifying,
|
|
@@ -375,6 +384,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
375
384
|
projectSettings,
|
|
376
385
|
qrcodeUri,
|
|
377
386
|
rpcProviders,
|
|
387
|
+
sdkHasLoaded,
|
|
378
388
|
selectedWalletConnector,
|
|
379
389
|
setAuthMode,
|
|
380
390
|
setAuthorizationViewDisplayOrder,
|
|
@@ -384,6 +394,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
384
394
|
setNetwork,
|
|
385
395
|
setPrimaryWallet,
|
|
386
396
|
setPrimaryWalletId,
|
|
397
|
+
setSdkHasLoaded,
|
|
387
398
|
setShowQrcodeModal,
|
|
388
399
|
setUser,
|
|
389
400
|
shadowDOMEnabled,
|
|
@@ -398,6 +409,7 @@ const DynamicContextProvider = ({ settings: { accessDeniedMessagePrimary, access
|
|
|
398
409
|
termsOfServiceUrl,
|
|
399
410
|
theme,
|
|
400
411
|
toolkitEnabled,
|
|
412
|
+
user,
|
|
401
413
|
vendorCredentials,
|
|
402
414
|
walletUiUtils,
|
|
403
415
|
wallets,
|
|
@@ -11,7 +11,7 @@ const useDynamicContext = () => {
|
|
|
11
11
|
if (context === undefined) {
|
|
12
12
|
throw new Error('useDynamicContext must be used within a DynamicContextProvider');
|
|
13
13
|
}
|
|
14
|
-
const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
|
|
14
|
+
const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, sdkHasLoaded, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
|
|
15
15
|
return {
|
|
16
16
|
accountSwitchState,
|
|
17
17
|
authMode,
|
|
@@ -28,6 +28,7 @@ const useDynamicContext = () => {
|
|
|
28
28
|
primaryWallet,
|
|
29
29
|
qrcodeUri,
|
|
30
30
|
rpcProviders,
|
|
31
|
+
sdkHasLoaded,
|
|
31
32
|
secondaryWallets,
|
|
32
33
|
setMultiWalletWidgetState,
|
|
33
34
|
setNetwork,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { IDynamicContext } from './DynamicContext';
|
|
2
|
-
export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'connectedWallets' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'loadingNetwork' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'secondaryWallets' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'showAuthFlow' | 'showQrcodeModal' | 'setShowDynamicUserProfile' | 'user' | 'walletConnector' | 'wallets'>;
|
|
2
|
+
export type UseDynamicContext = Pick<IDynamicContext, 'accountSwitchState' | 'authMode' | 'authToken' | 'awaitingSignatureState' | 'connectedWallets' | 'handleLogOut' | 'handleUnlinkWallet' | 'isAuthenticated' | 'loadingNetwork' | 'multiWalletWidgetState' | 'network' | 'networkConfigurations' | 'primaryWallet' | 'qrcodeUri' | 'rpcProviders' | 'secondaryWallets' | 'setMultiWalletWidgetState' | 'setNetwork' | 'setPrimaryWallet' | 'setShowAuthFlow' | 'setShowQrcodeModal' | 'shadowDOMEnabled' | 'sdkHasLoaded' | 'showAuthFlow' | 'showQrcodeModal' | 'setShowDynamicUserProfile' | 'user' | 'walletConnector' | 'wallets'>;
|
|
3
3
|
export declare const useDynamicContext: () => UseDynamicContext;
|
|
@@ -7,7 +7,7 @@ const useDynamicContext = () => {
|
|
|
7
7
|
if (context === undefined) {
|
|
8
8
|
throw new Error('useDynamicContext must be used within a DynamicContextProvider');
|
|
9
9
|
}
|
|
10
|
-
const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
|
|
10
|
+
const { accountSwitchState, awaitingSignatureState, authMode, authToken, connectedWallets, handleLogOut, handleUnlinkWallet, isAuthenticated, loadingNetwork, multiWalletWidgetState, network, networkConfigurations, primaryWallet, qrcodeUri, rpcProviders, sdkHasLoaded, secondaryWallets, setShowAuthFlow, setNetwork, showAuthFlow, showQrcodeModal, setMultiWalletWidgetState, setShowQrcodeModal, setPrimaryWallet, setShowDynamicUserProfile, user, walletConnector, wallets, shadowDOMEnabled, } = context;
|
|
11
11
|
return {
|
|
12
12
|
accountSwitchState,
|
|
13
13
|
authMode,
|
|
@@ -24,6 +24,7 @@ const useDynamicContext = () => {
|
|
|
24
24
|
primaryWallet,
|
|
25
25
|
qrcodeUri,
|
|
26
26
|
rpcProviders,
|
|
27
|
+
sdkHasLoaded,
|
|
27
28
|
secondaryWallets,
|
|
28
29
|
setMultiWalletWidgetState,
|
|
29
30
|
setNetwork,
|
|
@@ -31,6 +31,7 @@ require('../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs');
|
|
|
31
31
|
|
|
32
32
|
const SocialRedirectContext = React.createContext(undefined);
|
|
33
33
|
const SocialRedirectContextProvider = ({ children, }) => {
|
|
34
|
+
var _a, _b;
|
|
34
35
|
const { setShowAuthFlow, wallets, setSelectedWalletConnector, walletUiUtils, consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
35
36
|
const { setView } = ViewContext.useViewContext();
|
|
36
37
|
const verifyWallet = useVerifyWallet.useVerifyWallet({
|
|
@@ -40,6 +41,10 @@ const SocialRedirectContextProvider = ({ children, }) => {
|
|
|
40
41
|
projectSettings,
|
|
41
42
|
setIsSingleWalletAccount,
|
|
42
43
|
});
|
|
44
|
+
const enabledSocialProvidersInDb = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _a === void 0 ? void 0 : _a.providers) !== null && _b !== void 0 ? _b : [];
|
|
45
|
+
const enabledSocialProviders = enabledSocialProvidersInDb
|
|
46
|
+
.filter((provider) => provider.enabled)
|
|
47
|
+
.map((provider) => provider.provider);
|
|
43
48
|
const socialWalletConnector = wallets
|
|
44
49
|
.map(({ walletConnector }) => walletConnector)
|
|
45
50
|
.find(multiWallet.isSocialWalletConnector);
|
|
@@ -88,6 +93,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
|
|
|
88
93
|
walletUiUtils,
|
|
89
94
|
]);
|
|
90
95
|
return (jsxRuntime.jsx(SocialRedirectContext.Provider, Object.assign({ value: {
|
|
96
|
+
enabledSocialProviders,
|
|
91
97
|
redirectStatus,
|
|
92
98
|
setSocialProvider,
|
|
93
99
|
socialProvider,
|
|
@@ -3,6 +3,7 @@ import { SocialOAuthProvider } from '@dynamic-labs/multi-wallet';
|
|
|
3
3
|
import { WalletConnector } from '../../..';
|
|
4
4
|
type SocialRedirectStatus = 'idle' | 'loading' | 'success' | 'error';
|
|
5
5
|
type SocialContextReturnType = {
|
|
6
|
+
enabledSocialProviders: SocialOAuthProvider[];
|
|
6
7
|
redirectStatus: SocialRedirectStatus;
|
|
7
8
|
setSocialProvider: (val: SocialOAuthProvider) => void;
|
|
8
9
|
socialProvider: SocialOAuthProvider | undefined;
|
|
@@ -27,6 +27,7 @@ import '../../utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js';
|
|
|
27
27
|
|
|
28
28
|
const SocialRedirectContext = createContext(undefined);
|
|
29
29
|
const SocialRedirectContextProvider = ({ children, }) => {
|
|
30
|
+
var _a, _b;
|
|
30
31
|
const { setShowAuthFlow, wallets, setSelectedWalletConnector, walletUiUtils, consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, } = useInternalDynamicContext();
|
|
31
32
|
const { setView } = useViewContext();
|
|
32
33
|
const verifyWallet = useVerifyWallet({
|
|
@@ -36,6 +37,10 @@ const SocialRedirectContextProvider = ({ children, }) => {
|
|
|
36
37
|
projectSettings,
|
|
37
38
|
setIsSingleWalletAccount,
|
|
38
39
|
});
|
|
40
|
+
const enabledSocialProvidersInDb = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.socialSignIn) === null || _a === void 0 ? void 0 : _a.providers) !== null && _b !== void 0 ? _b : [];
|
|
41
|
+
const enabledSocialProviders = enabledSocialProvidersInDb
|
|
42
|
+
.filter((provider) => provider.enabled)
|
|
43
|
+
.map((provider) => provider.provider);
|
|
39
44
|
const socialWalletConnector = wallets
|
|
40
45
|
.map(({ walletConnector }) => walletConnector)
|
|
41
46
|
.find(isSocialWalletConnector);
|
|
@@ -84,6 +89,7 @@ const SocialRedirectContextProvider = ({ children, }) => {
|
|
|
84
89
|
walletUiUtils,
|
|
85
90
|
]);
|
|
86
91
|
return (jsx(SocialRedirectContext.Provider, Object.assign({ value: {
|
|
92
|
+
enabledSocialProviders,
|
|
87
93
|
redirectStatus,
|
|
88
94
|
setSocialProvider,
|
|
89
95
|
socialProvider,
|
package/src/lib/data/api.cjs
CHANGED
|
@@ -70,6 +70,9 @@ const signInWithEmailVerification = ({ verificationToken, verificationUUID, envi
|
|
|
70
70
|
catch (e) {
|
|
71
71
|
const data = yield e.json();
|
|
72
72
|
logger.logger.error(data.error);
|
|
73
|
+
if (data.error.code === 'no_email_on_access_list') {
|
|
74
|
+
throw new multiWallet.NoAccessError({ email: data.payload.email });
|
|
75
|
+
}
|
|
73
76
|
throw new multiWallet.EmailVerificationError(data.code);
|
|
74
77
|
}
|
|
75
78
|
});
|
|
@@ -248,7 +251,9 @@ const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalle
|
|
|
248
251
|
throw new multiWallet.ChainalysisError(data.payload.walletPublicKey);
|
|
249
252
|
}
|
|
250
253
|
if (data.error.code === 'missing_from_list') {
|
|
251
|
-
throw new multiWallet.NoAccessError(
|
|
254
|
+
throw new multiWallet.NoAccessError({
|
|
255
|
+
walletPublicKey: data.payload.walletPublicKey,
|
|
256
|
+
});
|
|
252
257
|
}
|
|
253
258
|
return undefined;
|
|
254
259
|
}
|
package/src/lib/data/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
2
|
-
import { EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, WalletUsedError, WalletNotDeployedError, ChainalysisError
|
|
2
|
+
import { NoAccessError, EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, WalletUsedError, WalletNotDeployedError, ChainalysisError } from '@dynamic-labs/multi-wallet';
|
|
3
3
|
import { SDKApi, Configuration, VerifyRequestFromJSON, ChainEnum, WalletProviderEnum, AuthModeEnum } from '@dynamic-labs/sdk-api';
|
|
4
4
|
import { VERSION, API_VERSION } from '../../version.js';
|
|
5
5
|
import ApiEndpoint from '../config/ApiEndpoint.js';
|
|
@@ -66,6 +66,9 @@ const signInWithEmailVerification = ({ verificationToken, verificationUUID, envi
|
|
|
66
66
|
catch (e) {
|
|
67
67
|
const data = yield e.json();
|
|
68
68
|
logger.error(data.error);
|
|
69
|
+
if (data.error.code === 'no_email_on_access_list') {
|
|
70
|
+
throw new NoAccessError({ email: data.payload.email });
|
|
71
|
+
}
|
|
69
72
|
throw new EmailVerificationError(data.code);
|
|
70
73
|
}
|
|
71
74
|
});
|
|
@@ -244,7 +247,9 @@ const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalle
|
|
|
244
247
|
throw new ChainalysisError(data.payload.walletPublicKey);
|
|
245
248
|
}
|
|
246
249
|
if (data.error.code === 'missing_from_list') {
|
|
247
|
-
throw new NoAccessError(
|
|
250
|
+
throw new NoAccessError({
|
|
251
|
+
walletPublicKey: data.payload.walletPublicKey,
|
|
252
|
+
});
|
|
248
253
|
}
|
|
249
254
|
return undefined;
|
|
250
255
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useGlobalLoading } from './useGlobalLoading';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var index = require('../../functions/lastAuthenticatedAccount/index.cjs');
|
|
7
|
+
|
|
8
|
+
const useGlobalLoading = ({ authMode, connectedInfo, connectedWallet, projectSettings, primaryWallet, user, }) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const [sdkHasLoaded, setSdkHasLoaded] = React.useState(false);
|
|
11
|
+
const primaryWalletIsLoading = user &&
|
|
12
|
+
((_a = index.lastAuthenticatedAccount(user)) === null || _a === void 0 ? void 0 : _a.format) === 'blockchain' &&
|
|
13
|
+
!primaryWallet;
|
|
14
|
+
const connectOnlyUserIsLoading = authMode === 'connect-only' && connectedInfo && !connectedWallet;
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (projectSettings) {
|
|
17
|
+
if (primaryWalletIsLoading || connectOnlyUserIsLoading) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
setSdkHasLoaded(true);
|
|
21
|
+
}
|
|
22
|
+
}, [
|
|
23
|
+
projectSettings,
|
|
24
|
+
primaryWallet,
|
|
25
|
+
user,
|
|
26
|
+
primaryWalletIsLoading,
|
|
27
|
+
connectOnlyUserIsLoading,
|
|
28
|
+
]);
|
|
29
|
+
return {
|
|
30
|
+
sdkHasLoaded,
|
|
31
|
+
setSdkHasLoaded,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports.useGlobalLoading = useGlobalLoading;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ProjectSettings } from '@dynamic-labs/sdk-api';
|
|
3
|
+
import { UserProfile, Wallet } from '../../../types';
|
|
4
|
+
import { ConnectedWalletConnectorType } from '../../../../utils/hooks/useConnectWallet/useConnectWallet';
|
|
5
|
+
type Props = {
|
|
6
|
+
authMode: string;
|
|
7
|
+
connectedInfo: ConnectedWalletConnectorType | null;
|
|
8
|
+
connectedWallet: Wallet | null;
|
|
9
|
+
primaryWallet: Wallet | null;
|
|
10
|
+
projectSettings: ProjectSettings | undefined;
|
|
11
|
+
user: UserProfile | undefined;
|
|
12
|
+
};
|
|
13
|
+
export declare const useGlobalLoading: ({ authMode, connectedInfo, connectedWallet, projectSettings, primaryWallet, user, }: Props) => {
|
|
14
|
+
sdkHasLoaded: boolean;
|
|
15
|
+
setSdkHasLoaded: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { lastAuthenticatedAccount } from '../../functions/lastAuthenticatedAccount/index.js';
|
|
3
|
+
|
|
4
|
+
const useGlobalLoading = ({ authMode, connectedInfo, connectedWallet, projectSettings, primaryWallet, user, }) => {
|
|
5
|
+
var _a;
|
|
6
|
+
const [sdkHasLoaded, setSdkHasLoaded] = useState(false);
|
|
7
|
+
const primaryWalletIsLoading = user &&
|
|
8
|
+
((_a = lastAuthenticatedAccount(user)) === null || _a === void 0 ? void 0 : _a.format) === 'blockchain' &&
|
|
9
|
+
!primaryWallet;
|
|
10
|
+
const connectOnlyUserIsLoading = authMode === 'connect-only' && connectedInfo && !connectedWallet;
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (projectSettings) {
|
|
13
|
+
if (primaryWalletIsLoading || connectOnlyUserIsLoading) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
setSdkHasLoaded(true);
|
|
17
|
+
}
|
|
18
|
+
}, [
|
|
19
|
+
projectSettings,
|
|
20
|
+
primaryWallet,
|
|
21
|
+
user,
|
|
22
|
+
primaryWalletIsLoading,
|
|
23
|
+
connectOnlyUserIsLoading,
|
|
24
|
+
]);
|
|
25
|
+
return {
|
|
26
|
+
sdkHasLoaded,
|
|
27
|
+
setSdkHasLoaded,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { useGlobalLoading };
|