Skip to content

Commit

Permalink
map working
Browse files Browse the repository at this point in the history
  • Loading branch information
liamcarvajal committed Feb 9, 2025
1 parent 2c00859 commit 117a927
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 24 deletions.
78 changes: 56 additions & 22 deletions packages/frontend/components/AddCourseModal/AddCourseModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
VStack,
} from "@chakra-ui/react";
import { NUPathEnum, ScheduleCourse2, SeasonEnum } from "@graduate/common";
import { useState } from "react";
import { useState, useEffect } from "react";
import { useSearchCourses } from "../../hooks";
import {
getCourseDisplayString,
Expand Down Expand Up @@ -79,15 +79,7 @@ export const AddCourseModal: React.FC<AddCourseModalProps> = ({
setIsLoadingSelectCourse(true);

// grab any coreqs of the course that haven't already been selected/added to the term
const coreqs = isAutoSelectCoreqs
? (await getRequiredCourseCoreqs(course, catalogYear)).filter((coreq) => {
const isAlreadySelected = selectedCourses.find((selectedCourse) =>
isEqualCourses(selectedCourse, coreq)
);
const isAlreadyAdded = isCourseAlreadyAdded(coreq);
return !(isAlreadyAdded || isAlreadySelected);
})
: [];
const coreqs = courseCoreqsMap.get(course.id) || [];

const updatedSelectedCourses = [...selectedCourses, course, ...coreqs];

Expand Down Expand Up @@ -124,6 +116,43 @@ export const AddCourseModal: React.FC<AddCourseModalProps> = ({
closeModalDisplay();
};

const [courseCoreqsMap, setCourseCoreqsMap] = useState(
new Map<any, ScheduleCourse2<null>[]>()
);
useEffect(() => {
if (!courses || courses.length === 0 || isCourseSearchLoading) {
console.log("Courses are not ready yet...");
return;
}
const fetchCoreqsForAllCourses = async () => {
if (!courses || courses.length === 0) return;
if (courses) {
const newCourseCoreqsMap = new Map<any, ScheduleCourse2<null>[]>();

for (const course of courses) {
const coreqs = (
await getRequiredCourseCoreqs(course, catalogYear)
).filter((coreq) => !isCourseAlreadyAdded(coreq));

if (coreqs.length === 1) {
newCourseCoreqsMap.set(getCourseDisplayString(course), coreqs);
console.log(
`Fetching coreqs for course ${getCourseDisplayString(course)}`
);
console.log(`Coreqs fetched:`, coreqs);
}
}
setCourseCoreqsMap(newCourseCoreqsMap);
}
};

fetchCoreqsForAllCourses();
}, [courses, catalogYear]);

Check warning on line 150 in packages/frontend/components/AddCourseModal/AddCourseModal.tsx

View workflow job for this annotation

GitHub Actions / Run linting for all packages

React Hook useEffect has missing dependencies: 'isCourseAlreadyAdded' and 'isCourseSearchLoading'. Either include them or remove the dependency array. If 'isCourseAlreadyAdded' changes too often, find the parent component that defines it and wrap that definition in useCallback

useEffect(() => {
console.log("Updated courseCoreqsMap:", courseCoreqsMap);
}, [courseCoreqsMap]);

return (
<Modal isOpen={isOpen} onClose={onClose} size="4xl" isCentered>
<ModalOverlay />
Expand Down Expand Up @@ -227,19 +256,24 @@ export const AddCourseModal: React.FC<AddCourseModalProps> = ({
{courses &&
sortCoursesByNUPath(courses, selectedNUPaths).map(
(course) => (
<SearchResult
key={getCourseDisplayString(course)}
year={catalogYear}
season={season}
course={course}
addSelectedCourse={addSelectedCourse}
isResultAlreadyAdded={isCourseAlreadyAdded(course)}
isResultAlreadySelected={isCourseAlreadySelected(
course
<>
<SearchResult
key={getCourseDisplayString(course)}
year={catalogYear}
season={season}
course={course}
addSelectedCourse={addSelectedCourse}
isResultAlreadyAdded={isCourseAlreadyAdded(course)}
isResultAlreadySelected={isCourseAlreadySelected(
course
)}
isSelectingAnotherCourse={isLoadingSelectCourse}
selectedNUPaths={selectedNUPaths}
/>
{courseCoreqsMap.get(course.id) !== undefined && (
<Text>hi</Text>
)}
isSelectingAnotherCourse={isLoadingSelectCourse}
selectedNUPaths={selectedNUPaths}
/>
</>
)
)}
</Flex>
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/components/AddCourseModal/SearchResult.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,13 @@ export const SearchResult: React.FC<SearchResultProps> = ({
/>
</GraduateToolTip>
</Flex>
{course.coreqs && (
{/* {course.coreqs && (
<Collapse in={opened} animateOpacity>
<Box px="sm" py="xs" borderRadius="lg" backgroundColor="transparent">
<Text fontSize="sm">boo</Text>
</Box>
</Collapse>
)}
)} */}
</Box>
);
};

0 comments on commit 117a927

Please sign in to comment.