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