"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; import { Lock, Eye, EyeOff } from "lucide-react"; import { toast } from "sonner"; export function PasswordCard() { const [oldPassword, setOldPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [showOldPassword, setShowOldPassword] = useState(false); const [showNewPassword, setShowNewPassword] = useState(false); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); const handleChangePassword = async () => { if (!oldPassword || !newPassword || !confirmPassword) { toast.error("Veuillez remplir tous les champs"); return; } if (newPassword.length < 4) { toast.error("Le mot de passe doit contenir au moins 4 caractères"); return; } if (newPassword !== confirmPassword) { toast.error("Les mots de passe ne correspondent pas"); return; } setLoading(true); try { const response = await fetch("/api/auth/change-password", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ oldPassword, newPassword, }), }); const data = await response.json(); if (data.success) { toast.success("Mot de passe modifié avec succès"); setOldPassword(""); setNewPassword(""); setConfirmPassword(""); setOpen(false); } else { toast.error(data.error || "Erreur lors du changement de mot de passe"); } } catch (error) { console.error("Error changing password:", error); toast.error("Erreur lors du changement de mot de passe"); } finally { setLoading(false); } }; return ( Mot de passe Modifiez le mot de passe d'accès à l'application Changer le mot de passe Entrez votre mot de passe actuel et le nouveau mot de passe.
setOldPassword(e.target.value)} placeholder="Mot de passe actuel" disabled={loading} />
setNewPassword(e.target.value)} placeholder="Nouveau mot de passe" disabled={loading} />
setConfirmPassword(e.target.value)} placeholder="Confirmer le mot de passe" disabled={loading} />
Annuler {loading ? "Modification..." : "Modifier"}
); }