github.com/quickfeed/quickfeed@v0.0.0-20240507093252-ed8ca812a09c/public/src/components/navbar/NavBarTeacher.tsx (about) 1 import React from "react" 2 import { isManuallyGraded } from "../../Helpers" 3 import { useAppState } from "../../overmind" 4 import NavBarLink, { NavLink } from "./NavBarLink" 5 6 7 const NavBarTeacher = (): JSX.Element => { 8 const state = useAppState() 9 const pending = state.pendingEnrollments.length > 0 ? { text: state.pendingEnrollments.length.toString(), classname: "badge badge-danger" } : null 10 const enrolled = { text: state.numEnrolled.toString(), classname: "badge badge-primary" } 11 const courseHasManualGrading = state.assignments[state.activeCourse.toString()]?.some(assignment => isManuallyGraded(assignment)) 12 13 const links: NavLink[] = [ 14 { link: { text: "Results", to: `/course/${state.activeCourse}/results` } }, 15 { link: { text: "Members", to: `/course/${state.activeCourse}/members` }, icons: [pending, enrolled] }, 16 { link: { text: "Groups", to: `/course/${state.activeCourse}/groups` } }, 17 ] 18 19 if (courseHasManualGrading) { 20 links.unshift({ link: { text: "Review", to: `/course/${state.activeCourse}/review` } }) 21 } 22 23 const teacherLinks = links.map((link, index) => { return <NavBarLink key={index} link={link.link} icons={link.icons} /> }) 24 return <>{teacherLinks}</> 25 } 26 27 export default NavBarTeacher