'use client'; import { useState } from 'react'; import { useAuth } from '@/hooks/useAuth'; import Card from '@/components/ui/Card'; import Button from '@/components/ui/Button'; import Input from '@/components/ui/Input'; import { User, Mail, Lock, Shield, Trash2 } from 'lucide-react'; import toast from 'react-hot-toast'; import api from '@/lib/api'; import Modal from '@/components/ui/Modal'; export default function ProfilPage() { const { user, fetchUser, logout } = useAuth(); const [editing, setEditing] = useState(false); const [changingPassword, setChangingPassword] = useState(false); const [deleteModalOpen, setDeleteModalOpen] = useState(false); const [loading, setLoading] = useState(false); const [form, setForm] = useState({ nom: user?.nom || '', prenom: user?.prenom || '', email: user?.email || '', }); const [passwordForm, setPasswordForm] = useState({ ancien_mot_de_passe: '', password: '', password_confirmation: '', }); const handleUpdateProfil = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { await api.put('/profil', form); await fetchUser(); setEditing(false); toast.success('Profil mis à jour'); } catch (err: any) { toast.error(err.response?.data?.message || 'Erreur lors de la mise à jour'); } finally { setLoading(false); } }; const handleChangePassword = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { await api.put('/profil/password', passwordForm); setChangingPassword(false); setPasswordForm({ ancien_mot_de_passe: '', password: '', password_confirmation: '' }); toast.success('Mot de passe modifié'); } catch (err: any) { toast.error(err.response?.data?.message || 'Erreur lors du changement'); } finally { setLoading(false); } }; const handleDeleteAccount = async () => { setLoading(true); try { await api.delete('/profil'); toast.success('Compte supprimé'); logout(); } catch (err: any) { toast.error(err.response?.data?.message || 'Erreur lors de la suppression'); } finally { setLoading(false); } }; return (
{user?.email}
Membre depuis le {user?.created_at ? new Date(user.created_at).toLocaleDateString('fr-FR', { day: 'numeric', month: 'long', year: 'numeric' }) : '—'}
La suppression de votre compte est irréversible. Toutes vos données seront effacées conformément au RGPD.
Êtes-vous sûr de vouloir supprimer votre compte ? Cette action est irréversible.