diff --git a/frontend/src/Components/GetUsersInProject.tsx b/frontend/src/Components/GetUsersInProject.tsx new file mode 100644 index 0000000..7af3d5f --- /dev/null +++ b/frontend/src/Components/GetUsersInProject.tsx @@ -0,0 +1,37 @@ +import { Dispatch, useEffect } from "react"; +import { PublicUser } from "../Types/goTypes"; +import { api } from "../API/API"; + +/** + * Gets all projects that user is a member of + * @param props - A setStateAction for the array you want to put projects in + * @returns {void} Nothing + * @example + * const [projects, setProjects] = useState([]); + * GetAllUsers({ setProjectsProp: setProjects }); + */ +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 projects:", response.message); + } + } catch (error) { + console.error("Error fetching projects:", error); + } + }; + void fetchUsers(); + }, [props.projectName, setUsers]); +} + +export default GetUsersInProject;