diff --git a/packages/frontend/components/AddCourseModal/AddCourseModal.tsx b/packages/frontend/components/AddCourseModal/AddCourseModal.tsx index bf748519a..df7859e93 100644 --- a/packages/frontend/components/AddCourseModal/AddCourseModal.tsx +++ b/packages/frontend/components/AddCourseModal/AddCourseModal.tsx @@ -13,7 +13,7 @@ import { Text, VStack, } from "@chakra-ui/react"; -import { NUPathEnum, ScheduleCourse2 } from "@graduate/common"; +import { NUPathEnum, ScheduleCourse2, SeasonEnum } from "@graduate/common"; import { useState } from "react"; import { useSearchCourses } from "../../hooks"; import { @@ -33,6 +33,7 @@ import { SecondaryButton } from "../Button"; interface AddCourseModalProps { isOpen: boolean; catalogYear?: number; + season: SeasonEnum; addTo: string; /** Function to close the modal UX, returned from the useDisclosure chakra hook */ closeModalDisplay: () => void; @@ -50,6 +51,7 @@ interface AddCourseModalProps { export const AddCourseModal: React.FC = ({ isOpen, catalogYear, + season, addTo, closeModalDisplay, isCourseAlreadyAdded, @@ -227,6 +229,8 @@ export const AddCourseModal: React.FC = ({ (course) => ( = ({ } return ( - + {nuPaths.map((nuPath) => ( ; + year: number | undefined; + season: SeasonEnum; addSelectedCourse: (course: ScheduleCourse2) => Promise; isResultAlreadySelected: boolean; isResultAlreadyAdded: boolean; @@ -17,6 +20,8 @@ interface SearchResultProps { export const SearchResult: React.FC = ({ course, + year, + season, addSelectedCourse, isResultAlreadySelected, isResultAlreadyAdded, @@ -48,6 +53,26 @@ export const SearchResult: React.FC = ({ {course.name} + + + } + color="primary.blue.light.main" + border={0} + colorScheme="primary.blue.light.main" + isRound + size="sm" + pr={1} + isLoading={isSelectingAnotherCourse} + isDisabled={isResultAlreadyAdded || isResultAlreadySelected} + alignSelf="center" + /> + = ({ ))} void; + year: number; } export const TransferCourses: React.FC = ({ isExpanded, toggleExpanded, + year, }) => { const { student, isLoading, mutateStudent } = useStudentWithPlans(); const router = useRouter(); @@ -86,11 +88,13 @@ export const TransferCourses: React.FC = ({ isExpanded={isExpanded} toggleExpanded={toggleExpanded} totalTransferCredits={totalTransferCredits} + year={year} /> {isExpanded && ( )} @@ -102,11 +106,13 @@ interface TransferCoursesBodyProps { updateTransferCourses: ( updateTransferCourses: ScheduleCourse2[] ) => void; + year: number; } const TransferCoursesBody: React.FC = ({ transferCourses, updateTransferCourses, + year, }) => { const { isOpen, onOpen, onClose } = useDisclosure(); @@ -145,6 +151,9 @@ const TransferCoursesBody: React.FC = ({ ))} { return
; }; + +export function getSearchLink( + catalogYear: number, + szn: SeasonEnum, + course: ScheduleCourse2 +): string { + let sznInt = -1; + switch (szn) { + case SeasonEnum.FL: + sznInt = 1; + break; + case SeasonEnum.SP: + sznInt = 3; + break; + case SeasonEnum.S1: + sznInt = 4; + break; + case SeasonEnum.SM: + sznInt = 5; + break; + case SeasonEnum.S2: + sznInt = 6; + break; + default: + sznInt = 1; + } + return `https://searchneu.com/NEU/${catalogYear}${sznInt}${0}/search/${ + course.name + }`; +} diff --git a/packages/frontend/pages/home.tsx b/packages/frontend/pages/home.tsx index f47991840..ea814b256 100644 --- a/packages/frontend/pages/home.tsx +++ b/packages/frontend/pages/home.tsx @@ -313,6 +313,7 @@ const HomePage: NextPage = () => { /> setIsTransferCoursesExpanded(!isTransferCoursesExpanded)