import { CoursePart } from '../types'; const assertNever = (value: never): never => { throw new Error( `Unhandled discriminated union member: ${JSON.stringify(value)}` ) } const Part = ({ coursePart }: { coursePart: CoursePart }): JSX.Element => { switch(coursePart.kind) { case "base": return (

{coursePart.name} ({coursePart.exerciseCount})

{coursePart.description}

) case "group": return (

{coursePart.name} ({coursePart.exerciseCount})

Group Execises: {coursePart.groupProjectCount}

) case "background": return (

{coursePart.name} ({coursePart.exerciseCount})

{coursePart.description}

Submit To: {coursePart.backgroundMaterial}

); case "special": return (

{coursePart.name} ({coursePart.exerciseCount})

{coursePart.description}

Requirements: {coursePart.requirements.join(', ')}

); default: return assertNever(coursePart) } }; export default Part