Merge branch 'feat/update-assign-btn' into dev

This commit is contained in:
T'JAMPENS QUENTIN p2406187
2026-03-27 17:00:43 +01:00
@@ -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<Set<number>>(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):
<Modal open={open} onClose={() => setOpen(false)} title={"Assigner un utilisateur à cette tâche"}>
<div className={styles.usersList}>
{loading ? <Loading /> : users.map((user: User, index) => (
<div key={index} className={`${styles.userCard} glassBorder`}>
<p className={styles.userName}>
{user.name} {user.lastname}
</p>
{isUserAssigned(user) ? (
<Button variant={"danger"} onClick={() => handleUnassign(user)}>
{loading ? <Loading /> : users.map((u: User) => (
<div key={u.id} className={`${styles.userCard} glassBorder`}>
<p className={styles.userName}>{u.name} {u.lastname}</p>
{assignedIds.has(u.id) ? (
<Button variant={"danger"} onClick={() => handleUnassign(u)}>
Désassigner
</Button>
) : (
<Button onClick={() => handleAssign(user)}>
<Button onClick={() => handleAssign(u)}>
Assigner
</Button>
)}