import {ReactNode, useContext, useEffect, useState} from "react"; import Button from "../../../../components/ui/Button/Button"; import Modal from "../../../../components/ui/Modal/Modal"; import User from "../../../Volunteers/interfaces/user.interface"; import getAllUser from "../../../../utils/users/getAllUsers"; import Loading from "../../../../components/ui/Loading/Loading"; import getUserById from "../../../../utils/users/getUserById"; import styles from "./AssignUserBtn.module.css"; import {AuthContext} from "../../../../contexts/Auth/AuthContext"; interface AssignUserBtnProps { taskId: string | number; } export default function AssignUserBtn({ taskId }: AssignUserBtnProps): ReactNode { const [open, setOpen] = useState(false); const [users, setUsers] = useState>([]); const [loading, setLoading] = useState(true); const { user } = useContext(AuthContext) as any; if (!user?.isAdmin) return null; useEffect(() => { (async () => { setLoading(true); const result = await getAllUser(); if (result.status !== 200 || !Array.isArray(result.data)) { console.error("Erreur lors du chargement des utilisateurs", result); return; } const usersData = await Promise.all( result.data.map(async (id: number): Promise => { const res = await getUserById(id); if (res.status === 200) { return res.data as User; } return null; }) ); setUsers(usersData.filter((user): user is User => user !== null)); setLoading(false); })(); }, []); const handleAssign = async (user: User) => { }; return <> setOpen(false)} title={"Assigner un utilisateur à cette tâche"}>
{loading ? : users.map((user: User, index) => (

{user.name} {user.lastname}

))}
}