import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Calendar, LogIn } from "lucide-react"; import { useNavigate } from "react-router-dom"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { toast } from "sonner"; import { Badge } from "@/components/ui/badge"; interface User { id: number; email: string; nom: string; prenom: string; role: string; service: string; } const LoginDev = () => { const navigate = useNavigate(); const [users, setUsers] = useState([]); const [selectedEmail, setSelectedEmail] = useState(""); const [loading, setLoading] = useState(false); useEffect(() => { chargerUtilisateurs(); }, []); const chargerUtilisateurs = async () => { try { const response = await fetch('/api/users-dev'); const data = await response.json(); setUsers(data); } catch (error) { toast.error("Erreur lors du chargement des utilisateurs"); } }; const handleLogin = async () => { if (!selectedEmail) { toast.error("Veuillez sélectionner un utilisateur"); return; } setLoading(true); try { const response = await fetch('/api/login-dev', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email: selectedEmail }) }); const data = await response.json(); if (response.ok) { localStorage.setItem('token', data.token); localStorage.setItem('user', JSON.stringify(data.user)); toast.success(`Bienvenue ${data.user.prenom} ${data.user.nom} !`); navigate('/dashboard'); } else { toast.error(data.error || "Erreur de connexion"); } } catch (error) { toast.error("Erreur lors de la connexion"); } finally { setLoading(false); } }; const getRoleBadge = (role: string) => { switch (role) { case 'Admin': return {role}; case 'RH': return {role}; case 'Validateur': return {role}; default: return {role}; } }; const selectedUser = users.find(u => u.email === selectedEmail); return (
RH Suivi - Mode Dev Sélectionnez un utilisateur pour vous connecter
{selectedUser && (
Nom {selectedUser.prenom} {selectedUser.nom}
Email {selectedUser.email}
Rôle {getRoleBadge(selectedUser.role)}
Service {selectedUser.service || 'Non assigné'}
)}

Version 2.0.0

); }; export default LoginDev;