Files
towercontrol/src/components/AuthButton.tsx
Julien Froidefond c7ad1c0416 feat: replace SVGs with lucide-react icons across components
- Updated ProfilePage, AuthButton, RecentTasks, WelcomeSection, DesktopControls, MobileControls, and various Kanban components to use lucide-react icons instead of SVGs for improved consistency and maintainability.
- Icons replaced include Check, User, Mail, Calendar, Shield, Save, X, Loader2, Filter, Target, List, Grid3X3, ChevronDown, ChevronRight, Edit, Trash2, and Plus.
2025-10-04 06:25:04 +02:00

63 lines
1.4 KiB
TypeScript

'use client'
import { useSession, signOut } from 'next-auth/react'
import { useRouter } from 'next/navigation'
import { Button } from '@/components/ui/Button'
import { User, LogOut } from 'lucide-react'
export function AuthButton() {
const { data: session, status } = useSession()
const router = useRouter()
if (status === 'loading') {
return (
<div className="text-[var(--muted-foreground)] text-sm">
Chargement...
</div>
)
}
if (!session) {
return (
<Button
onClick={() => router.push('/login')}
size="sm"
>
Se connecter
</Button>
)
}
return (
<div className="flex items-center gap-1">
<Button
onClick={() => router.push('/profile')}
variant="ghost"
size="sm"
className="p-1 h-auto"
title={`Profil - ${session.user?.email}`}
>
{session.user?.avatar ? (
// eslint-disable-next-line @next/next/no-img-element
<img
src={session.user.avatar}
alt="Avatar"
className="w-10 h-10 rounded-full object-cover"
/>
) : (
<User className="w-6 h-6" />
)}
</Button>
<Button
onClick={() => signOut({ callbackUrl: '/login' })}
variant="ghost"
size="sm"
className="p-1 h-auto"
title="Déconnexion"
>
<LogOut className="w-4 h-4" />
</Button>
</div>
)
}