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 | 8x 8x 8x 8x 8x 8x 7x 7x 7x 8x 8x | 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 GradeHistoryTable from "main/components/GradeHistory/GradeHistoryTable"; 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 || ""; let trimmedCourse = ""; let trimmedCourseNumber = ""; if (courseId) { const [course, courseNumber] = courseId.split(/\s+/); trimmedCourse = course.trim(); trimmedCourseNumber = courseNumber.trim(); } // Fetch Grade History Data const { data: gradeHistory } = useBackend( [ `/api/gradehistory/search?subjectArea=${trimmedCourse}&courseNumber=${trimmedCourseNumber}`, ], { method: "GET", url: "/api/gradehistory/search", params: { subjectArea: trimmedCourse, 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} />} {moreDetails && <h5>Grade History for {moreDetails.courseId}</h5>} {gradeHistory && <GradeHistoryTable details={gradeHistory} />} </div> </BasicLayout> ); } |