Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 4x 4x 3x 3x 3x 3x 2x 2x 2x 3x 3x | import BasicLayout from "main/layouts/BasicLayout/BasicLayout"; import _BasicCourseTable from "main/components/Courses/BasicCourseTable"; import { useParams } from "react-router-dom"; import { useBackend, _useBackendMutation } from "main/utils/useBackend"; import CourseDetailsTable from "main/components/CourseDetails/CourseDetailsTable"; import { yyyyqToQyy } from "main/utils/quarterUtilities"; import CourseDescriptionTable from "main/components/Courses/CourseDescriptionTable"; import GradeHistoryGraphs from "main/components/GradeHistory/GradeHistoryGraph"; export default function CourseDetailsIndexPage() { // Stryker disable next-line all : Can't test state because hook is internal let { qtr, enrollCode } = useParams(); const { data: moreDetails, _error, _status, } = useBackend( // Stryker disable all : hard to test for query caching [`/api/sections/sectionsearch?qtr=${qtr}&enrollCode=${enrollCode}`], { method: "GET", url: `/api/sections/sectionsearch`, params: { qtr, enrollCode, }, }, ); const courseId = moreDetails?.courseId.trim() || ""; let subjectArea = ""; let trimmedCourseNumber = ""; // Splitting on two spaces allows for courses with multiple word subject areas (i.e. AS AM) to be recognized if (courseId) { const splitArray = courseId.split(" "); subjectArea = splitArray[0]; trimmedCourseNumber = splitArray[splitArray.length - 1].trim(); } // Fetch Grade History Data const { data: gradeHistory } = useBackend( [ `/api/gradehistory/search?subjectArea=${subjectArea}&courseNumber=${trimmedCourseNumber}`, ], { method: "GET", url: "/api/gradehistory/search", params: { subjectArea: subjectArea, courseNumber: trimmedCourseNumber, }, }, ); return ( <BasicLayout> <div className="pt-2"> {moreDetails && moreDetails.courseId && ( <h5> Course Details for {moreDetails.courseId} {yyyyqToQyy(qtr)} </h5> )} {moreDetails && <CourseDetailsTable details={[moreDetails]} />} {moreDetails && <CourseDescriptionTable course={moreDetails} />} {gradeHistory && <GradeHistoryGraphs gradeHistory={gradeHistory} />} </div> </BasicLayout> ); } |