diff --git a/src-ts/tools/learn/learn-lib/course-outline/collapsible-item/CollapsibleItem.tsx b/src-ts/tools/learn/learn-lib/course-outline/collapsible-item/CollapsibleItem.tsx index 1af065230..cf10918ba 100644 --- a/src-ts/tools/learn/learn-lib/course-outline/collapsible-item/CollapsibleItem.tsx +++ b/src-ts/tools/learn/learn-lib/course-outline/collapsible-item/CollapsibleItem.tsx @@ -3,7 +3,12 @@ import { Dispatch, FC, ReactNode, SetStateAction, useCallback, useMemo, useState import { Link } from 'react-router-dom' import { IconOutline, IconSolid } from '../../../../../lib' -import { LearnModule, LearnModuleProgress, LearnUserCertificationProgress } from '../../../learn-lib' +import { + LearnModule, + LearnModuleProgress, + LearnModuleStatus, + LearnUserCertificationProgress +} from '../../../learn-lib' import { StatusIcon } from '../status-icon' import { StepIcon } from '../step-icon' @@ -40,15 +45,12 @@ const CollapsibleItem: FC = (props: CollapsibleItemProps) return props.progress?.find(m => m.module === props.moduleKey) }, [props.progress, props.moduleKey]) - const isCompleted: boolean = useMemo(() => { - return !!progress && progress.lessonCount === progress?.completedLessons.length - }, [progress]) - const isPartial: boolean = useMemo(() => { return !!progress && !!progress.completedLessons.length }, [progress]) const isItemCompleted: (key: string) => boolean = (key: string) => ( + progress?.moduleStatus === LearnModuleStatus.completed || !!progress?.completedLessons.find(l => l.dashedName === key) ) @@ -86,7 +88,7 @@ const CollapsibleItem: FC = (props: CollapsibleItemProps) return (
- + {props.isAssessment && (
diff --git a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/index.ts b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/index.ts index 8c6a98dc8..b91177b77 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/index.ts +++ b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/index.ts @@ -1,5 +1,6 @@ export * from './learn-user-certification-progress.model' export * from './learn-module-progress.model' +export * from './learn-module-status.enum' export * from './user-certification-progress-status.enum' export * from './user-certification-update-progress-actions.enum' export { diff --git a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-progress.model.ts b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-progress.model.ts index d5e474c24..9bed19c2c 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-progress.model.ts +++ b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-progress.model.ts @@ -4,7 +4,6 @@ export interface LearnModuleProgress { dashedName: string }> completedPercentage: number - lessonCount: number module: string moduleStatus: string } diff --git a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-status.enum.ts b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-status.enum.ts new file mode 100644 index 000000000..af5df9438 --- /dev/null +++ b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-status.enum.ts @@ -0,0 +1,5 @@ +export enum LearnModuleStatus { + init = 'not-started', + inProgress = 'in-progress', + completed = 'completed', +}