@mojito-inc/connect-wallet
Version:
Connecting wallet via metamask, wallet connect, email
35 lines (32 loc) • 2.33 kB
JavaScript
import * as React from 'react';
import { useMemo } from 'react';
import { ThemeProvider } from '@mui/material/styles';
import { CoreServiceProvider } from '@mojito-inc/core-service';
import AuthenticationProvider from './AuthenticationProvider.js';
import { NetworkProvider } from './NetworkProvider.js';
import { WalletDetailsProvider } from './ConnectedWalletDetailsProvider.js';
import { WalletProvider } from './WalletProvider.js';
import { StorageService } from '../utils/storageService.utils.js';
import { WalletTypeProvider } from './WalletTypeProvider.js';
import WalletsProvider from './WalletsProvider.js';
const ConnectWalletProvider = ({ children, theme, clientOptions, metaData, walletType = 'ethereum', magicProjectId, solanaWalletEnv, walletConnectProjectId, activeChain, clientId, customRPCUrl, onAuthenticated, }) => {
const token = useMemo(() => {
const tokenType = StorageService.authTokenType.getValue();
if (clientOptions === null || clientOptions === void 0 ? void 0 : clientOptions.token) {
if (tokenType === null || tokenType === void 0 ? void 0 : tokenType.includes('Token')) {
return `Token ${clientOptions.token}`;
}
return `Bearer ${clientOptions.token}`;
}
return clientOptions.token;
}, [clientOptions === null || clientOptions === void 0 ? void 0 : clientOptions.token]);
return (React.createElement(WalletTypeProvider, { walletType: walletType },
React.createElement(ThemeProvider, { theme: theme },
React.createElement(CoreServiceProvider, { uri: clientOptions.uri, token: token },
React.createElement(AuthenticationProvider, { onAuthenticated: onAuthenticated },
React.createElement(WalletsProvider, { activeChain: activeChain, clientId: clientId, magicProjectId: magicProjectId, metaData: metaData, solanaWalletEnv: solanaWalletEnv, customRPCUrl: customRPCUrl, walletConnectProjectId: walletConnectProjectId, walletType: walletType },
React.createElement(NetworkProvider, null,
React.createElement(WalletDetailsProvider, null,
React.createElement(WalletProvider, null, children)))))))));
};
export { ConnectWalletProvider as default };