UNPKG

@web3auth/no-modal

Version:
76 lines (72 loc) 2.85 kB
'use strict'; var vue = require('vue'); require('@babel/runtime/helpers/objectSpread2'); require('@babel/runtime/helpers/defineProperty'); require('@segment/analytics-next'); require('../base/loglevel.js'); require('@toruslabs/base-controllers'); require('@toruslabs/session-manager'); require('@web3auth/auth'); require('../base/errors/index.js'); require('@toruslabs/constants'); require('@toruslabs/http-helpers'); require('../base/constants.js'); require('../base/wallet/index.js'); var connectorStatus = require('../base/connector/connectorStatus.js'); require('../base/connector/constants.js'); require('jwt-decode'); require('../base/plugin/errors.js'); var IPlugin = require('../base/plugin/IPlugin.js'); function useWalletServicesInnerContextValue(web3AuthContext) { const { getPlugin, isInitialized, isConnected } = web3AuthContext; const walletServicesPlugin = vue.shallowRef(null); const ready = vue.ref(false); const connecting = vue.ref(false); vue.watch(isInitialized, newIsInitialized => { if (newIsInitialized) { const plugin = getPlugin(IPlugin.EVM_PLUGINS.WALLET_SERVICES); walletServicesPlugin.value = plugin; } }); vue.watch(isConnected, newIsConnected => { if (newIsConnected) { const plugin = getPlugin(IPlugin.EVM_PLUGINS.WALLET_SERVICES); walletServicesPlugin.value = plugin; // When rehydrating, the connected listener may be registered after the connected event is emitted. if (connectorStatus.CONNECTED_STATUSES.includes(plugin === null || plugin === void 0 ? void 0 : plugin.status)) ready.value = true; } }); vue.watch(walletServicesPlugin, (newWalletServicesPlugin, prevWalletServicesPlugin) => { const connectedListener = () => { ready.value = true; }; const disconnectedListener = () => { ready.value = false; }; const connectingListener = () => { connecting.value = true; }; const previousPlugin = prevWalletServicesPlugin; const currentPlugin = newWalletServicesPlugin; if (previousPlugin && currentPlugin !== previousPlugin) { previousPlugin.removeListener(IPlugin.PLUGIN_EVENTS.CONNECTED, connectedListener); previousPlugin.removeListener(IPlugin.PLUGIN_EVENTS.DISCONNECTED, disconnectedListener); previousPlugin.removeListener(IPlugin.PLUGIN_EVENTS.CONNECTING, connectingListener); } if (currentPlugin && currentPlugin !== previousPlugin) { currentPlugin.on(IPlugin.PLUGIN_EVENTS.CONNECTED, connectedListener); currentPlugin.on(IPlugin.PLUGIN_EVENTS.DISCONNECTED, disconnectedListener); currentPlugin.on(IPlugin.PLUGIN_EVENTS.CONNECTING, connectingListener); } }); return { plugin: walletServicesPlugin, ready, connecting }; } exports.useWalletServicesInnerContextValue = useWalletServicesInnerContextValue;