import {useContext, useEffect, useState} from "react"; import styles from "./ProfilePage.module.css"; import {AuthContext} from "../../contexts/auth/AuthContext"; import formatDate from "../../utils/date/formatDate"; import Task from "../../components/Task/Task"; import SettingsModal from "./components/SettingsModal/SettingsModal"; import { useParams } from "react-router"; import { useNavigate } from "react-router"; import getUserById from "../../utils/users/getUserById.js"; import ManageMember from "./components/manageMember/ManageMember.jsx"; interface TaskType { id: number; title?: string; completed?: boolean; [key: string]: unknown; } interface User { id: number; name: string; lastname: string; role: string; email: string; phone: string | null; created_at: string; isAdmin: boolean; tasks: TaskType[]; } interface AuthContextType { user: User; update: () => void; } function ProfilePage() { const navigate = useNavigate(); const { id } = useParams(); const { user, update } = useContext(AuthContext) as AuthContextType; const [profileUser, setProfileUser] = useState(null); const isOwnProfile = !id || user.id.toString() === id; useEffect(() => { update(); (async () => { if(!isOwnProfile) { console.log(id); const res = await getUserById(id); if (res.status === 404) { navigate("/404"); return; } if (res.status !== 200) { console.error("Erreur lors du chargement du profil", res); return; } setProfileUser(res.data); } else setProfileUser(user) }) () }, []); return (
Photo de profil

{profileUser?.name} {profileUser?.lastname}

{(user?.isAdmin && profileUser && !isOwnProfile) && ( )}

Role : {profileUser?.role}

Membre depuis :{" "} {profileUser && formatDate(profileUser.created_at)}

Mail : {profileUser?.email}

Téléphone :{" "} {profileUser?.phone ?? "Pas de numéro enregistré"}

{isOwnProfile && (
)}

Tâches :

{profileUser && profileUser.tasks.length > 0 ? ( profileUser.tasks.map((task) => ( )) ) : (

Aucune tâche pour le moment.

)}
); } export default ProfilePage;