import { Dispatch, useEffect } from "react"; import { api } from "../API/API"; export interface ProjectMember { Username: string; UserRole: string; } /** * Gets all members of a project * @param string - The project's name * @param Dispatch - A setStateAction for the array you want to put members in * @returns {void} Nothing * @example * const [users, setUsers] = useState([]); * GetUsersInProject({ projectName: props.projectname, setUsersProp: setUsers }); */ function GetUsersInProject(props: { projectName: string; setUsersProp: Dispatch>; }): void { const setUsers: Dispatch> = props.setUsersProp; useEffect(() => { const fetchUsers = async (): Promise => { try { const token = localStorage.getItem("accessToken") ?? ""; const response = await api.getAllUsersProject(props.projectName, token); if (response.success) { setUsers(response.data ?? []); } else { console.error("Failed to fetch members:", response.message); } } catch (error) { console.error("Error fetching members:", error); } }; void fetchUsers(); }, [props.projectName, setUsers]); } export default GetUsersInProject;