From a2929025a1155c7d5102903542f5695eede99aed Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 3 Feb 2026 14:24:23 +0100 Subject: [PATCH] Able to validate user --- .../pendingMembers/PendingMembers.jsx | 131 ++++++------------ 1 file changed, 44 insertions(+), 87 deletions(-) diff --git a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx index bb1e1ac..0a964cd 100644 --- a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx +++ b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import React, {useState, useEffect} from "react"; import Button from "../../../../components/ui/button/button.jsx"; import styles from "./PendingMembers.module.css"; @@ -8,104 +8,61 @@ import validateUser from "../../../../utils/users/validateUser.js"; import deleteOtherUser from "../../../../utils/users/deleteOtherUser.js"; function PendingMembers() { - const [pendingMembers, setPendingMembers] = useState([]); - const [loading, setLoading] = useState(true); - const [actionLoading, setActionLoading] = useState(null); - const [error, setError] = useState(null); - useEffect(() => { - const fetchPendingMembers = async () => { - setLoading(true); - const result = await getUserToValidate(); - const userIds = result.data - if (userIds && userIds.length > 0) { - const users = await Promise.all(userIds.map((id) => getUserById(id))); - setPendingMembers(users.filter(Boolean)); - } else { - setPendingMembers([]); - } - setLoading(false); - }; - fetchPendingMembers(); - }, []); + const [pendingMembers, setPendingMembers] = useState([]); - const removeMember = (id) => { - setPendingMembers(prevMembers => - prevMembers.filter(member => member.id !== id) - ); - }; + const fetchUsers = async () => { -const handleValidate = async (id) => { - setActionLoading(id); - setError(null); - try { - const result = await validateUser(id); - if (result === true) { - removeMember(id); - } else { - setError("Échec de la validation."); + const result = await getUserToValidate(); + const userIds = result.data; + + if (userIds && userIds.length > 0) { + const users = await Promise.all(userIds.map(id => getUserById(id))); + const usersData = users.map(u => u.data); + setPendingMembers(usersData); + } } - } catch (err) { - setError("Erreur lors de la validation."); - } finally { - setActionLoading(null); - } -}; -const handleReject = async (id) => { - setActionLoading(id); - setError(null); - try { - const result = await deleteUser(id); - if (result.status >= 200 && result.status < 300) { - removeMember(id); - } else { - setError(result.errors || "Échec de la suppression."); + useEffect(() => { + fetchUsers(); + }, []); + + const handleValidate = async (id) => { + const result = await validateUser(id); + console.log(result); + fetchUsers(); } - } catch (err) { - setError("Erreur lors de la suppression."); - } finally { - setActionLoading(null); - } -}; + const handleRefuse = (id) => { - if (loading) { - return
Chargement des membres en attente...
; - } + } - return ( -
-

Membres en attente de validation

- {error &&

{error}

} + return ( +
+

Membres en attente de validation

-
- {pendingMembers.length === 0 &&

Aucun membre en attente

} +
+ + {pendingMembers.length === 0 &&

Aucun membre en attente

} + + {pendingMembers.map((member, index) => ( + +
+ +

{member.name} {member.lastname}

+ +
+ + +
+ +
+ + ))} - {pendingMembers.map((member) => ( -
-

{member.name} {member.lastname}

-
- -
-
- ))} -
-
- ); +
+ ); } export default PendingMembers;