@web3auth/modal 8.0.1 → 8.2.0

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/modal.cjs.js CHANGED
@@ -110,7 +110,7 @@ const defaultOtherModalConfig = {
110
110
 
111
111
  /***/ }),
112
112
 
113
- /***/ 710:
113
+ /***/ 73:
114
114
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
115
115
 
116
116
  "use strict";
@@ -136,6 +136,12 @@ const no_modal_namespaceObject = require("@web3auth/no-modal");
136
136
  const openlogin_adapter_namespaceObject = require("@web3auth/openlogin-adapter");
137
137
  ;// CONCATENATED MODULE: external "@web3auth/ui"
138
138
  const ui_namespaceObject = require("@web3auth/ui");
139
+ ;// CONCATENATED MODULE: external "lodash.clonedeep"
140
+ const external_lodash_clonedeep_namespaceObject = require("lodash.clonedeep");
141
+ var external_lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(external_lodash_clonedeep_namespaceObject);
142
+ ;// CONCATENATED MODULE: external "lodash.merge"
143
+ const external_lodash_merge_namespaceObject = require("lodash.merge");
144
+ var external_lodash_merge_default = /*#__PURE__*/__webpack_require__.n(external_lodash_merge_namespaceObject);
139
145
  // EXTERNAL MODULE: ./src/config.ts
140
146
  var config = __webpack_require__(149);
141
147
  ;// CONCATENATED MODULE: ./src/modalManager.ts
@@ -147,6 +153,8 @@ var config = __webpack_require__(149);
147
153
 
148
154
 
149
155
 
156
+
157
+
150
158
  class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
151
159
  constructor(options) {
152
160
  super(options);
@@ -155,13 +163,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
155
163
  defineProperty_default()(this, "modalConfig", config/* defaultOtherModalConfig */.Lu);
156
164
  this.options = objectSpread2_default()({}, options);
157
165
  if (!this.options.uiConfig) this.options.uiConfig = {};
158
- if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = (0,ui_namespaceObject.getUserLanguage)(this.options.uiConfig.defaultLanguage);
159
- if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
160
166
  if (!this.coreOptions.privateKeyProvider) throw base_.WalletInitializationError.invalidParams("privateKeyProvider is required");
161
- this.loginModal = new ui_namespaceObject.LoginModal(objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
162
- adapterListener: this
163
- }));
164
- this.subscribeToLoginModalEvents();
165
167
  }
166
168
  setModalConfig(modalConfig) {
167
169
  super.checkInitRequirements();
@@ -169,13 +171,51 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
169
171
  }
170
172
  async initModal(params) {
171
173
  super.checkInitRequirements();
174
+ let projectConfig;
175
+ try {
176
+ projectConfig = await (0,base_.fetchProjectConfig)(this.options.clientId);
177
+ } catch (e) {
178
+ throw base_.WalletInitializationError.notReady("failed to fetch project configurations");
179
+ }
180
+ const {
181
+ whitelabel
182
+ } = projectConfig;
183
+ this.options.uiConfig = external_lodash_merge_default()(external_lodash_clonedeep_default()(whitelabel), this.options.uiConfig);
184
+ if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = (0,ui_namespaceObject.getUserLanguage)(this.options.uiConfig.defaultLanguage);
185
+ if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
186
+ this.loginModal = new ui_namespaceObject.LoginModal(objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
187
+ adapterListener: this
188
+ }));
189
+ this.subscribeToLoginModalEvents();
190
+ const {
191
+ sms_otp_enabled: smsOtpEnabled
192
+ } = projectConfig;
193
+ if (smsOtpEnabled !== undefined) {
194
+ var _params;
195
+ const adapterConfig = {
196
+ [base_.WALLET_ADAPTERS.OPENLOGIN]: {
197
+ label: base_.WALLET_ADAPTERS.OPENLOGIN,
198
+ loginMethods: {
199
+ [openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
200
+ name: openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS,
201
+ showOnModal: smsOtpEnabled,
202
+ showOnDesktop: smsOtpEnabled,
203
+ showOnMobile: smsOtpEnabled
204
+ }
205
+ }
206
+ }
207
+ };
208
+ if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
209
+ modalConfig: {}
210
+ };
211
+ params.modalConfig = external_lodash_merge_default()(external_lodash_clonedeep_default()(params.modalConfig), adapterConfig);
212
+ }
172
213
  await this.loginModal.initModal();
173
214
  const providedChainConfig = this.options.chainConfig;
174
- // TODO: get stuff from dashboard here
175
215
  // merge default adapters with the custom configured adapters.
176
216
  const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];
177
217
  const adapterConfigurationPromises = allAdapters.map(async adapterName => {
178
- var _this$modalConfig$ada, _params$modalConfig, _this$modalConfig$ada2, _this$modalConfig$ada3;
218
+ var _this$modalConfig$ada, _params2, _this$modalConfig$ada2, _this$modalConfig$ada3;
179
219
  // start with the default config of adapter.
180
220
  let adapterConfig = ((_this$modalConfig$ada = this.modalConfig.adapters) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada[adapterName]) || {
181
221
  label: adapterName,
@@ -185,7 +225,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
185
225
  };
186
226
 
187
227
  // override the default config of adapter if some config is being provided by the user.
188
- if (params !== null && params !== void 0 && (_params$modalConfig = params.modalConfig) !== null && _params$modalConfig !== void 0 && _params$modalConfig[adapterName]) {
228
+ if ((_params2 = params) !== null && _params2 !== void 0 && (_params2 = _params2.modalConfig) !== null && _params2 !== void 0 && _params2[adapterName]) {
189
229
  adapterConfig = objectSpread2_default()(objectSpread2_default()({}, adapterConfig), params.modalConfig[adapterName]);
190
230
  }
191
231
  this.modalConfig.adapters[adapterName] = adapterConfig;
@@ -218,6 +258,16 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
218
258
  network: web3AuthNetwork,
219
259
  whiteLabel: this.options.uiConfig
220
260
  });
261
+ if (smsOtpEnabled !== undefined) {
262
+ finalOpenloginAdapterSettings.loginConfig = {
263
+ [openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
264
+ showOnModal: smsOtpEnabled,
265
+ showOnDesktop: smsOtpEnabled,
266
+ showOnMobile: smsOtpEnabled,
267
+ showOnSocialBackupFactor: smsOtpEnabled
268
+ }
269
+ };
270
+ }
221
271
  if (this.options.uiConfig.uxMode) {
222
272
  finalOpenloginAdapterSettings.uxMode = this.options.uiConfig.uxMode;
223
273
  }
@@ -266,6 +316,18 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
266
316
  privateKeyProvider: this.coreOptions.privateKeyProvider
267
317
  });
268
318
  }
319
+ if (smsOtpEnabled !== undefined) {
320
+ openloginAdapter.setAdapterSettings({
321
+ loginConfig: {
322
+ [openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
323
+ showOnModal: smsOtpEnabled,
324
+ showOnDesktop: smsOtpEnabled,
325
+ showOnMobile: smsOtpEnabled,
326
+ showOnSocialBackupFactor: smsOtpEnabled
327
+ }
328
+ }
329
+ });
330
+ }
269
331
  if ((_this$options$uiConfi = this.options.uiConfig) !== null && _this$options$uiConfi !== void 0 && _this$options$uiConfi.uxMode) {
270
332
  openloginAdapter.setAdapterSettings({
271
333
  uxMode: this.options.uiConfig.uxMode
@@ -279,24 +341,39 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
279
341
  }
280
342
  } else if (adapterName === base_.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
281
343
  const walletConnectAdapter = this.walletAdapters[adapterName];
282
- walletConnectAdapter.setAdapterSettings({
283
- adapterSettings: {
284
- walletConnectInitOptions: {
285
- // Using a default wallet connect project id for web3auth modal integration
286
- projectId: "d3c63f19f9582f8ba48e982057eb096b" // TODO: get from dashboard
344
+ const {
345
+ wallet_connect_enabled: walletConnectEnabled,
346
+ wallet_connect_project_id: walletConnectProjectId
347
+ } = projectConfig;
348
+ if (walletConnectEnabled === false) {
349
+ var _this$modalConfig$ada5, _this$modalConfig$ada6, _this$modalConfig$ada7;
350
+ // override user specified config by hiding wallet connect
351
+ this.modalConfig.adapters = objectSpread2_default()(objectSpread2_default()({}, (_this$modalConfig$ada5 = this.modalConfig.adapters) !== null && _this$modalConfig$ada5 !== void 0 ? _this$modalConfig$ada5 : {}), {}, {
352
+ [base_.WALLET_ADAPTERS.WALLET_CONNECT_V2]: objectSpread2_default()(objectSpread2_default()({}, (_this$modalConfig$ada6 = (_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[base_.WALLET_ADAPTERS.WALLET_CONNECT_V2]) !== null && _this$modalConfig$ada6 !== void 0 ? _this$modalConfig$ada6 : {}), {}, {
353
+ showOnModal: false
354
+ })
355
+ });
356
+ this.modalConfig.adapters[base_.WALLET_ADAPTERS.WALLET_CONNECT_V2].showOnModal = false;
357
+ } else {
358
+ if (!walletConnectProjectId) throw base_.WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
359
+ walletConnectAdapter.setAdapterSettings({
360
+ adapterSettings: {
361
+ walletConnectInitOptions: {
362
+ projectId: walletConnectProjectId
363
+ }
287
364
  }
288
- }
289
- });
365
+ });
366
+ }
290
367
  }
291
368
  return adapterName;
292
369
  }
293
370
  });
294
371
  const adapterNames = await Promise.all(adapterConfigurationPromises);
295
372
  const hasInAppWallets = Object.values(this.walletAdapters).some(adapter => {
296
- var _this$modalConfig$ada5, _this$modalConfig$ada6, _adapter$name;
373
+ var _this$modalConfig$ada8, _this$modalConfig$ada9, _adapter$name;
297
374
  if (adapter.type !== base_.ADAPTER_CATEGORY.IN_APP) return false;
298
- if (((_this$modalConfig$ada5 = this.modalConfig.adapters) === null || _this$modalConfig$ada5 === void 0 || (_this$modalConfig$ada5 = _this$modalConfig$ada5[adapter.name]) === null || _this$modalConfig$ada5 === void 0 ? void 0 : _this$modalConfig$ada5.showOnModal) !== true) return false;
299
- if (!((_this$modalConfig$ada6 = this.modalConfig.adapters) !== null && _this$modalConfig$ada6 !== void 0 && (_this$modalConfig$ada6 = _this$modalConfig$ada6[adapter.name]) !== null && _this$modalConfig$ada6 !== void 0 && _this$modalConfig$ada6.loginMethods)) return true;
375
+ if (((_this$modalConfig$ada8 = this.modalConfig.adapters) === null || _this$modalConfig$ada8 === void 0 || (_this$modalConfig$ada8 = _this$modalConfig$ada8[adapter.name]) === null || _this$modalConfig$ada8 === void 0 ? void 0 : _this$modalConfig$ada8.showOnModal) !== true) return false;
376
+ if (!((_this$modalConfig$ada9 = this.modalConfig.adapters) !== null && _this$modalConfig$ada9 !== void 0 && (_this$modalConfig$ada9 = _this$modalConfig$ada9[adapter.name]) !== null && _this$modalConfig$ada9 !== void 0 && _this$modalConfig$ada9.loginMethods)) return true;
300
377
  const mergedLoginMethods = (0,ui_namespaceObject.getAdapterSocialLogins)(adapter.name, (_adapter$name = this.modalConfig.adapters[adapter.name]) === null || _adapter$name === void 0 ? void 0 : _adapter$name.loginMethods);
301
378
  if (Object.values(mergedLoginMethods).some(method => method.showOnModal)) return true;
302
379
  return false;
@@ -334,8 +411,8 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
334
411
  this.status = base_.ADAPTER_STATUS.READY;
335
412
  await Promise.all(initPromises);
336
413
  const hasExternalWallets = allAdapters.some(adapterName => {
337
- var _this$walletAdapters$, _this$modalConfig$ada7;
338
- return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === base_.ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[adapterName].showOnModal);
414
+ var _this$walletAdapters$, _this$modalConfig$ada10;
415
+ return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === base_.ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada10 = this.modalConfig.adapters) === null || _this$modalConfig$ada10 === void 0 ? void 0 : _this$modalConfig$ada10[adapterName].showOnModal);
339
416
  });
340
417
  if (hasExternalWallets) {
341
418
  this.loginModal.initExternalWalletContainer();
@@ -351,7 +428,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
351
428
  }
352
429
  }
353
430
  async connect() {
354
- // if (!this.loginModal.initialized) throw new Error("Login modal is not initialized");
431
+ if (!this.loginModal) throw new Error("Login modal is not initialized");
355
432
  // if already connected return provider
356
433
  if (this.connectedAdapterName && this.status === base_.ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
357
434
  this.loginModal.open();
@@ -552,7 +629,7 @@ __webpack_require__.r(__webpack_exports__);
552
629
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
553
630
  /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _interface__WEBPACK_IMPORTED_MODULE_1__) if(["default","defaultEvmDappModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","defaultSolanaDappModalConfig","defaultSolanaWalletModalConfig"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _interface__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
554
631
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
555
- /* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(710);
632
+ /* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73);
556
633
 
557
634
 
558
635
 
@@ -560,5 +637,4 @@ __webpack_require__.r(__webpack_exports__);
560
637
 
561
638
  module.exports = __webpack_exports__;
562
639
  /******/ })()
563
- ;
564
- //# sourceMappingURL=modal.cjs.js.map
640
+ ;
package/dist/modal.esm.js CHANGED
@@ -1,10 +1,12 @@
1
- import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WalletInitializationError, log, WALLET_ADAPTERS, getChainConfig, ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
1
+ import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WalletInitializationError, fetchProjectConfig, WALLET_ADAPTERS, log, getChainConfig, ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
2
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import { CommonJRPCProvider } from '@web3auth/base-provider';
5
5
  import { Web3AuthNoModal } from '@web3auth/no-modal';
6
- import { getOpenloginDefaultOptions, OpenloginAdapter } from '@web3auth/openlogin-adapter';
6
+ import { LOGIN_PROVIDER, getOpenloginDefaultOptions, OpenloginAdapter } from '@web3auth/openlogin-adapter';
7
7
  import { getUserLanguage, LoginModal, getAdapterSocialLogins, LOGIN_MODAL_EVENTS, OPENLOGIN_PROVIDERS } from '@web3auth/ui';
8
+ import clonedeep from 'lodash.clonedeep';
9
+ import merge from 'lodash.merge';
8
10
 
9
11
  const defaultSolanaDappModalConfig = {
10
12
  chainNamespace: CHAIN_NAMESPACES.SOLANA,
@@ -100,13 +102,7 @@ class Web3Auth extends Web3AuthNoModal {
100
102
  _defineProperty(this, "modalConfig", defaultOtherModalConfig);
101
103
  this.options = _objectSpread({}, options);
102
104
  if (!this.options.uiConfig) this.options.uiConfig = {};
103
- if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
104
- if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
105
105
  if (!this.coreOptions.privateKeyProvider) throw WalletInitializationError.invalidParams("privateKeyProvider is required");
106
- this.loginModal = new LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
107
- adapterListener: this
108
- }));
109
- this.subscribeToLoginModalEvents();
110
106
  }
111
107
  setModalConfig(modalConfig) {
112
108
  super.checkInitRequirements();
@@ -114,13 +110,51 @@ class Web3Auth extends Web3AuthNoModal {
114
110
  }
115
111
  async initModal(params) {
116
112
  super.checkInitRequirements();
113
+ let projectConfig;
114
+ try {
115
+ projectConfig = await fetchProjectConfig(this.options.clientId);
116
+ } catch (e) {
117
+ throw WalletInitializationError.notReady("failed to fetch project configurations");
118
+ }
119
+ const {
120
+ whitelabel
121
+ } = projectConfig;
122
+ this.options.uiConfig = merge(clonedeep(whitelabel), this.options.uiConfig);
123
+ if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
124
+ if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
125
+ this.loginModal = new LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
126
+ adapterListener: this
127
+ }));
128
+ this.subscribeToLoginModalEvents();
129
+ const {
130
+ sms_otp_enabled: smsOtpEnabled
131
+ } = projectConfig;
132
+ if (smsOtpEnabled !== undefined) {
133
+ var _params;
134
+ const adapterConfig = {
135
+ [WALLET_ADAPTERS.OPENLOGIN]: {
136
+ label: WALLET_ADAPTERS.OPENLOGIN,
137
+ loginMethods: {
138
+ [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
139
+ name: LOGIN_PROVIDER.SMS_PASSWORDLESS,
140
+ showOnModal: smsOtpEnabled,
141
+ showOnDesktop: smsOtpEnabled,
142
+ showOnMobile: smsOtpEnabled
143
+ }
144
+ }
145
+ }
146
+ };
147
+ if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
148
+ modalConfig: {}
149
+ };
150
+ params.modalConfig = merge(clonedeep(params.modalConfig), adapterConfig);
151
+ }
117
152
  await this.loginModal.initModal();
118
153
  const providedChainConfig = this.options.chainConfig;
119
- // TODO: get stuff from dashboard here
120
154
  // merge default adapters with the custom configured adapters.
121
155
  const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];
122
156
  const adapterConfigurationPromises = allAdapters.map(async adapterName => {
123
- var _this$modalConfig$ada, _params$modalConfig, _this$modalConfig$ada2, _this$modalConfig$ada3;
157
+ var _this$modalConfig$ada, _params2, _this$modalConfig$ada2, _this$modalConfig$ada3;
124
158
  // start with the default config of adapter.
125
159
  let adapterConfig = ((_this$modalConfig$ada = this.modalConfig.adapters) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada[adapterName]) || {
126
160
  label: adapterName,
@@ -130,7 +164,7 @@ class Web3Auth extends Web3AuthNoModal {
130
164
  };
131
165
 
132
166
  // override the default config of adapter if some config is being provided by the user.
133
- if (params !== null && params !== void 0 && (_params$modalConfig = params.modalConfig) !== null && _params$modalConfig !== void 0 && _params$modalConfig[adapterName]) {
167
+ if ((_params2 = params) !== null && _params2 !== void 0 && (_params2 = _params2.modalConfig) !== null && _params2 !== void 0 && _params2[adapterName]) {
134
168
  adapterConfig = _objectSpread(_objectSpread({}, adapterConfig), params.modalConfig[adapterName]);
135
169
  }
136
170
  this.modalConfig.adapters[adapterName] = adapterConfig;
@@ -163,6 +197,16 @@ class Web3Auth extends Web3AuthNoModal {
163
197
  network: web3AuthNetwork,
164
198
  whiteLabel: this.options.uiConfig
165
199
  });
200
+ if (smsOtpEnabled !== undefined) {
201
+ finalOpenloginAdapterSettings.loginConfig = {
202
+ [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
203
+ showOnModal: smsOtpEnabled,
204
+ showOnDesktop: smsOtpEnabled,
205
+ showOnMobile: smsOtpEnabled,
206
+ showOnSocialBackupFactor: smsOtpEnabled
207
+ }
208
+ };
209
+ }
166
210
  if (this.options.uiConfig.uxMode) {
167
211
  finalOpenloginAdapterSettings.uxMode = this.options.uiConfig.uxMode;
168
212
  }
@@ -211,6 +255,18 @@ class Web3Auth extends Web3AuthNoModal {
211
255
  privateKeyProvider: this.coreOptions.privateKeyProvider
212
256
  });
213
257
  }
258
+ if (smsOtpEnabled !== undefined) {
259
+ openloginAdapter.setAdapterSettings({
260
+ loginConfig: {
261
+ [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
262
+ showOnModal: smsOtpEnabled,
263
+ showOnDesktop: smsOtpEnabled,
264
+ showOnMobile: smsOtpEnabled,
265
+ showOnSocialBackupFactor: smsOtpEnabled
266
+ }
267
+ }
268
+ });
269
+ }
214
270
  if ((_this$options$uiConfi = this.options.uiConfig) !== null && _this$options$uiConfi !== void 0 && _this$options$uiConfi.uxMode) {
215
271
  openloginAdapter.setAdapterSettings({
216
272
  uxMode: this.options.uiConfig.uxMode
@@ -224,24 +280,39 @@ class Web3Auth extends Web3AuthNoModal {
224
280
  }
225
281
  } else if (adapterName === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
226
282
  const walletConnectAdapter = this.walletAdapters[adapterName];
227
- walletConnectAdapter.setAdapterSettings({
228
- adapterSettings: {
229
- walletConnectInitOptions: {
230
- // Using a default wallet connect project id for web3auth modal integration
231
- projectId: "d3c63f19f9582f8ba48e982057eb096b" // TODO: get from dashboard
283
+ const {
284
+ wallet_connect_enabled: walletConnectEnabled,
285
+ wallet_connect_project_id: walletConnectProjectId
286
+ } = projectConfig;
287
+ if (walletConnectEnabled === false) {
288
+ var _this$modalConfig$ada5, _this$modalConfig$ada6, _this$modalConfig$ada7;
289
+ // override user specified config by hiding wallet connect
290
+ this.modalConfig.adapters = _objectSpread(_objectSpread({}, (_this$modalConfig$ada5 = this.modalConfig.adapters) !== null && _this$modalConfig$ada5 !== void 0 ? _this$modalConfig$ada5 : {}), {}, {
291
+ [WALLET_ADAPTERS.WALLET_CONNECT_V2]: _objectSpread(_objectSpread({}, (_this$modalConfig$ada6 = (_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[WALLET_ADAPTERS.WALLET_CONNECT_V2]) !== null && _this$modalConfig$ada6 !== void 0 ? _this$modalConfig$ada6 : {}), {}, {
292
+ showOnModal: false
293
+ })
294
+ });
295
+ this.modalConfig.adapters[WALLET_ADAPTERS.WALLET_CONNECT_V2].showOnModal = false;
296
+ } else {
297
+ if (!walletConnectProjectId) throw WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
298
+ walletConnectAdapter.setAdapterSettings({
299
+ adapterSettings: {
300
+ walletConnectInitOptions: {
301
+ projectId: walletConnectProjectId
302
+ }
232
303
  }
233
- }
234
- });
304
+ });
305
+ }
235
306
  }
236
307
  return adapterName;
237
308
  }
238
309
  });
239
310
  const adapterNames = await Promise.all(adapterConfigurationPromises);
240
311
  const hasInAppWallets = Object.values(this.walletAdapters).some(adapter => {
241
- var _this$modalConfig$ada5, _this$modalConfig$ada6, _adapter$name;
312
+ var _this$modalConfig$ada8, _this$modalConfig$ada9, _adapter$name;
242
313
  if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;
243
- if (((_this$modalConfig$ada5 = this.modalConfig.adapters) === null || _this$modalConfig$ada5 === void 0 || (_this$modalConfig$ada5 = _this$modalConfig$ada5[adapter.name]) === null || _this$modalConfig$ada5 === void 0 ? void 0 : _this$modalConfig$ada5.showOnModal) !== true) return false;
244
- if (!((_this$modalConfig$ada6 = this.modalConfig.adapters) !== null && _this$modalConfig$ada6 !== void 0 && (_this$modalConfig$ada6 = _this$modalConfig$ada6[adapter.name]) !== null && _this$modalConfig$ada6 !== void 0 && _this$modalConfig$ada6.loginMethods)) return true;
314
+ if (((_this$modalConfig$ada8 = this.modalConfig.adapters) === null || _this$modalConfig$ada8 === void 0 || (_this$modalConfig$ada8 = _this$modalConfig$ada8[adapter.name]) === null || _this$modalConfig$ada8 === void 0 ? void 0 : _this$modalConfig$ada8.showOnModal) !== true) return false;
315
+ if (!((_this$modalConfig$ada9 = this.modalConfig.adapters) !== null && _this$modalConfig$ada9 !== void 0 && (_this$modalConfig$ada9 = _this$modalConfig$ada9[adapter.name]) !== null && _this$modalConfig$ada9 !== void 0 && _this$modalConfig$ada9.loginMethods)) return true;
245
316
  const mergedLoginMethods = getAdapterSocialLogins(adapter.name, (_adapter$name = this.modalConfig.adapters[adapter.name]) === null || _adapter$name === void 0 ? void 0 : _adapter$name.loginMethods);
246
317
  if (Object.values(mergedLoginMethods).some(method => method.showOnModal)) return true;
247
318
  return false;
@@ -279,8 +350,8 @@ class Web3Auth extends Web3AuthNoModal {
279
350
  this.status = ADAPTER_STATUS.READY;
280
351
  await Promise.all(initPromises);
281
352
  const hasExternalWallets = allAdapters.some(adapterName => {
282
- var _this$walletAdapters$, _this$modalConfig$ada7;
283
- return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[adapterName].showOnModal);
353
+ var _this$walletAdapters$, _this$modalConfig$ada10;
354
+ return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada10 = this.modalConfig.adapters) === null || _this$modalConfig$ada10 === void 0 ? void 0 : _this$modalConfig$ada10[adapterName].showOnModal);
284
355
  });
285
356
  if (hasExternalWallets) {
286
357
  this.loginModal.initExternalWalletContainer();
@@ -296,7 +367,7 @@ class Web3Auth extends Web3AuthNoModal {
296
367
  }
297
368
  }
298
369
  async connect() {
299
- // if (!this.loginModal.initialized) throw new Error("Login modal is not initialized");
370
+ if (!this.loginModal) throw new Error("Login modal is not initialized");
300
371
  // if already connected return provider
301
372
  if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
302
373
  this.loginModal.open();
@@ -401,4 +472,3 @@ class Web3Auth extends Web3AuthNoModal {
401
472
  }
402
473
 
403
474
  export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig };
404
- //# sourceMappingURL=modal.esm.js.map