From aa9efeff5c43e70377ced6ec890862f1c273c72a Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Fri, 27 Mar 2026 17:00:23 +0100 Subject: [PATCH] Improve AssignUserBtn --- .../AssignUserBtn/AssignUserBtn.tsx | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/pages/EventDetail/components/AssignUserBtn/AssignUserBtn.tsx b/src/pages/EventDetail/components/AssignUserBtn/AssignUserBtn.tsx index b44b5a5..95ae20c 100644 --- a/src/pages/EventDetail/components/AssignUserBtn/AssignUserBtn.tsx +++ b/src/pages/EventDetail/components/AssignUserBtn/AssignUserBtn.tsx @@ -55,19 +55,24 @@ export default function AssignUserBtn({ taskId, eventId }: AssignUserBtnProps): })(); }, []); - const isUserAssigned = (u: User): boolean => - u.tasks.some(t => t.id === taskId); + const [assignedIds, setAssignedIds] = useState>(new Set()); + + useEffect(() => { + setAssignedIds(new Set( + users.filter(u => u.tasks.some(t => t.id === taskId)).map(u => u.id) + )); + }, [users, taskId]); const handleAssign = async (selectedUser: User) => { + setAssignedIds(prev => new Set(prev).add(selectedUser.id)); await assignOtherUser(taskId as number, selectedUser.id); - updateEventInfo(eventId) - setOpen(false); + updateEventInfo(eventId); }; const handleUnassign = async (selectedUser: User) => { + setAssignedIds(prev => { const next = new Set(prev); next.delete(selectedUser.id); return next; }); await unAssignOtherUser(taskId as number, selectedUser.id); - updateEventInfo(eventId) - setOpen(false); + updateEventInfo(eventId); }; return <> @@ -75,18 +80,15 @@ export default function AssignUserBtn({ taskId, eventId }: AssignUserBtnProps): setOpen(false)} title={"Assigner un utilisateur à cette tâche"}>
- {loading ? : users.map((user: User, index) => ( -
-

- {user.name} {user.lastname} -

- - {isUserAssigned(user) ? ( - ) : ( - )}