@sky-mavis/tanto-widget
Version:
Tanto Widget
41 lines (37 loc) • 937 B
JavaScript
;
var react = require('react');
var wagmi = require('wagmi');
var useAuth = require('../contexts/auth/useAuth.cjs');
var useAuthEffect = require('./useAuthEffect.cjs');
function useAccountEffect({
onConnect,
onDisconnect
}) {
const {
enable: enableAuth
} = useAuth.useAuth();
const pendingConnectionRef = react.useRef(null);
wagmi.useAccountEffect({
onConnect: data => {
if (!enableAuth) {
onConnect?.(data);
return;
}
pendingConnectionRef.current = data;
},
onDisconnect: () => {
pendingConnectionRef.current = null;
onDisconnect?.();
}
});
useAuthEffect.useAuthEffect({
onSuccess: () => {
const pendingConnection = pendingConnectionRef.current;
if (pendingConnection) {
onConnect?.(pendingConnection);
pendingConnectionRef.current = null;
}
}
});
}
exports.useAccountEffect = useAccountEffect;