@sky-mavis/tanto-widget
Version:
Tanto Widget
67 lines (63 loc) • 1.69 kB
JavaScript
;
var react = require('react');
var wagmi = require('wagmi');
var connect = require('../types/connect.cjs');
var index = require('../utils/index.cjs');
var useTantoConfig = require('./useTantoConfig.cjs');
function useConnect({
connector
}) {
const {
setState
} = wagmi.useConfig();
const {
initialChainId,
disableProfile,
hideConnectSuccessPrompt
} = useTantoConfig.useTantoConfig();
const {
status: wagmiStatus,
connect: wagmiConnect,
error
} = wagmi.useConnect({
mutation: {
onError(error) {
console.debug(error);
}
}
});
const [status, setStatus] = react.useState(connect.ConnectState.PENDING);
const connect$1 = react.useCallback(() => {
if (!connector) return;
if (disableProfile) setState(prev => ({
...prev,
current: null
}));
wagmiConnect({
connector,
chainId: initialChainId
});
}, [connector, disableProfile, wagmiConnect]);
react.useEffect(() => {
setStatus(prevStatus => {
switch (wagmiStatus) {
case 'idle':
case 'pending':
return index.isWCConnector(connector?.id) && index.isMobile() ? connect.ConnectState.OPENING_WALLET : connect.ConnectState.PENDING;
case 'success':
return hideConnectSuccessPrompt ? prevStatus : connect.ConnectState.SUCCESS;
case 'error':
return connect.ConnectState.ERROR;
default:
return connect.ConnectState.PENDING;
}
});
}, [wagmiStatus, connector?.id, disableProfile, hideConnectSuccessPrompt]);
return {
status,
connector,
connect: connect$1,
error
};
}
exports.useConnect = useConnect;