nexus-dashboard/components/LogoutButton.tsx
2026-02-01 18:42:22 +00:00

32 lines
780 B
TypeScript

'use client';
import { useRouter } from 'next/navigation';
import { useState } from 'react';
export default function LogoutButton() {
const router = useRouter();
const [loading, setLoading] = useState(false);
const handleLogout = async () => {
setLoading(true);
try {
await fetch('/api/auth/logout', { method: 'POST' });
router.push('/login');
router.refresh();
} catch (error) {
console.error('Logout error:', error);
setLoading(false);
}
};
return (
<button
onClick={handleLogout}
disabled={loading}
className="bg-red-600 hover:bg-red-700 disabled:bg-gray-600 px-4 py-2 rounded-lg transition-colors text-white font-medium"
>
{loading ? 'Logging out...' : 'Logout'}
</button>
);
}