@mojito-inc/connect-wallet
Version:
Connecting wallet via metamask, wallet connect, email
45 lines (42 loc) • 1.44 kB
JavaScript
import * as React from 'react';
import { createContext, useContext, useState, useMemo } from 'react';
const WalletDetailsContext = createContext({});
const useWalletDetails = () => {
return useContext(WalletDetailsContext);
};
const WalletDetailsProvider = ({ children }) => {
const [walletDetails, setWalletDetails] = useState({
address: '',
balance: {
native: 0,
nonNative: 0,
},
walletType: 'ethereum',
});
const [connectStatus, setConnectStatus] = useState('connect');
const [disconnectStatus, setDisconnectStatus] = useState('disconnect');
const [refetchBalanceStatus, setRefetchingBalanceStatus] = useState('refetch');
const values = useMemo(() => {
return {
walletDetails,
connectStatus,
disconnectStatus,
refetchBalanceStatus,
setWalletDetails,
setConnectStatus,
setDisconnectStatus,
setRefetchingBalanceStatus,
};
}, [
connectStatus,
disconnectStatus,
walletDetails,
refetchBalanceStatus,
setWalletDetails,
setConnectStatus,
setDisconnectStatus,
setRefetchingBalanceStatus,
]);
return (React.createElement(WalletDetailsContext.Provider, { value: values }, children));
};
export { WalletDetailsProvider, useWalletDetails };