import React, { useState, useEffect } from 'react'; import { Mail, User, Lock, Edit, Save } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; import { API_BASE_URL } from "../config"; import { useAuth } from "../AuthContext"; import axios from "axios"; function Profil() { const [userData, setUserData] = useState({}); const { user } = useAuth(); useEffect(() => { if (user) { console.log("user.role:", user.id); } }, [user]); const [formData, setFormData] = useState({ oldPassword: '', newPassword: '', confirmPassword: '' }); const [editMode, setEditMode] = useState(false); const [errorMessage, setErrorMessage] = useState(''); const [successMessage, setSuccessMessage] = useState(''); const navigate = useNavigate(); useEffect(() => { axios .post(`${API_BASE_URL}/user`, { id: user.id, }) .then((response) => { setUserData(response.data); console.log("Infos récupérées :", response.data); }) .catch((error) => { console.error("Erreur lors de la récupération :", error); }); }, [user]); const handleChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handleProfileChange = (e) => { const { name, value } = e.target; setUserData(prev => ({ ...prev, [name]: value })); }; const handleSubmit = async (e) => { e.preventDefault(); setErrorMessage(''); setSuccessMessage(''); if (formData.newPassword !== formData.confirmPassword) { setErrorMessage("Les nouveaux mots de passe ne correspondent pas !"); return; } try { axios .post(`${API_BASE_URL}/changePassword`, { id: userData.id, oldPassword: formData.oldPassword, newPassword: formData.newPassword }) .then((response) => { console.log("Modification du mot de passe réussie :", response.data); setSuccessMessage("Mot de passe modifié avec succès !"); setFormData({ oldPassword: '', newPassword: '', confirmPassword: '' }); }) .catch((error) => { console.error("Erreur lors de la modification du mot de passe :", error); setErrorMessage(error.response?.data?.error || "Une erreur est survenue"); }); setSuccessMessage("Mot de passe modifié avec succès !"); setFormData({ oldPassword: '', newPassword: '', confirmPassword: '' }); } catch (error) { setErrorMessage(error.message || "Une erreur est survenue"); } }; const handleProfileSubmit = async (e) => { e.preventDefault(); setErrorMessage(''); setSuccessMessage(''); axios .post(`${API_BASE_URL}/updateProfil`, { id: userData.id, name: userData.name, surname: userData.surname, pseudo:userData.pseudo, email: userData.email }) .catch((error) => { console.error("Erreur lors de la mise à jour du profil :", error); setErrorMessage(error.response?.data?.error || "Une erreur est survenue"); }) .then((response) => { console.log("Mise à jour du profil réussie :", response.data); setSuccessMessage("Profil mis à jour avec succès !"); setEditMode(false); }); }; return (

Mon Profil

{errorMessage && (
{errorMessage}
)} {successMessage && (
{successMessage}
)}
{/* Informations du profil */}

Informations Personnelles

{userData.name} {userData.surname} ({userData.pseudo})

{userData.email}

Points de fidélité: {userData.points} ({userData.role})

{editMode ? ( <>
) : (

Prénom

{userData.name}

Nom

{userData.surname}

Pseudo

{userData.pseudo}

Email

{userData.email}

)}
{/* Changement de mot de passe */}

Modifier le mot de passe

); } export default Profil;