import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { KeyRound, AlertCircle, ShieldCheck } from "lucide-react"; import { Card } from '@/components/ui/Card'; import { Input } from '@/components/ui/Input'; import { Button } from '@/components/ui/Button'; import { pb } from '@/services/pocketbase'; import BackButton from '@/components/ui/BackButton'; import { NEUMORPHISM } from '@/styles/Neumorphism'; export default function UpdatePasswordPage() { const navigate = useNavigate(); const [isUpdating, setIsUpdating] = useState(false); const [feedback, setFeedback] = useState<{ type: 'error' | 'success', message: string } | null>(null); const [formData, setFormData] = useState({ oldPassword: '', newPassword: '', confirmPassword: '' }); const handlePasswordChange = async (e: React.FormEvent) => { e.preventDefault(); setIsUpdating(true); setFeedback(null); if (formData.newPassword !== formData.confirmPassword) { setFeedback({ type: 'error', message: "Les nouveaux mots de passe ne correspondent pas." }); setIsUpdating(false); return; } if (formData.newPassword.length < 8) { setFeedback({ type: 'error', message: "Le mot de passe doit contenir au moins 8 caractères minimum." }); setIsUpdating(false); return; } try { const userId = pb.authStore.model?.id; if (!userId) throw new Error("Non authentifié."); await pb.collection("users").update(userId, { oldPassword: formData.oldPassword, password: formData.newPassword, passwordConfirm: formData.confirmPassword, }); setFeedback({ type: 'success', message: "Votre mot de passe a été modifié avec succès." }); setFormData({ oldPassword: '', newPassword: '', confirmPassword: '' }); // Retour automatique après 2.5 secondes setTimeout(() => navigate(-1), 2500); } catch { setFeedback({ type: 'error', message: "Ancien mot de passe incorrect ou erreur réseau." }); } finally { setIsUpdating(false); } }; return (
{/* BOUTON DE RETOUR EXTRAIT */} {/* LE FORMULAIRE */}

Renouvellement du mot de passe

Veuillez choisir un mot de passe fort et unique pour sécuriser votre accès AEGIS.

setFormData({ ...formData, oldPassword: e.target.value })} />
setFormData({ ...formData, newPassword: e.target.value })} /> setFormData({ ...formData, confirmPassword: e.target.value })} />
{/* Zone de Feedback */} {feedback && (
{feedback.type === 'error' ? : } {feedback.message} {feedback.type === 'success' && Redirection...}
)}
); }