Basic Disconnect
Copy
import { useWallet } from '@hermis/solana-headless-react';
function DisconnectButton() {
const { disconnect, disconnecting } = useWallet();
return (
<button onClick={disconnect} disabled={disconnecting}>
{disconnecting ? 'Disconnecting...' : 'Disconnect'}
</button>
);
}
With Cleanup
Copy
function WalletComponent() {
const { disconnect, connected } = useWallet();
const handleDisconnect = async () => {
try {
await disconnect();
// Clear local state
localStorage.removeItem('user-data');
// Redirect or update UI
window.location.href = '/';
} catch (error) {
console.error('Disconnect failed:', error);
}
};
return (
connected && <button onClick={handleDisconnect}>Disconnect</button>
);
}
Vanilla JavaScript
Copy
await manager.disconnect();
console.log('Disconnected');
Automatic Cleanup
Copy
useEffect(() => {
return () => {
// Cleanup on unmount
if (connected) {
disconnect();
}
};
}, [connected, disconnect]);
