Skip to content

Commit ff8a1bf

Browse files
Merge pull request #416 from topcoder-platform/TCA-667_use-lesson-id
TCA-667 - use a lesson's id to show it as completed -> dev
2 parents b298d87 + 2630b7e commit ff8a1bf

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src-ts/tools/learn/learn-lib/course-outline/collapsible-item/CollapsibleItem.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import styles from './CollapsibleItem.module.scss'
1616

1717
interface CollapsibleListItem {
1818
dashedName: string
19+
id: string
1920
title: string
2021
}
2122

@@ -50,9 +51,9 @@ const CollapsibleItem: FC<CollapsibleItemProps> = (props: CollapsibleItemProps)
5051

5152
const isPartial: boolean = useMemo(() => !!progress && !!progress.completedLessons.length, [progress])
5253

53-
const isItemCompleted: (key: string) => boolean = (key: string) => (
54+
const isItemCompleted: (itemId: string) => boolean = (itemId: string) => (
5455
progress?.moduleStatus === LearnModuleStatus.completed
55-
|| !!progress?.completedLessons.find(l => l.dashedName === key)
56+
|| !!progress?.completedLessons.find(l => l.id === itemId)
5657
)
5758

5859
const stepLabel: (
@@ -64,7 +65,7 @@ const CollapsibleItem: FC<CollapsibleItemProps> = (props: CollapsibleItemProps)
6465
= (item: CollapsibleListItem, isActive: boolean, stepCount?: string, label?: string) => (
6566
<StepIcon
6667
index={stepCount}
67-
completed={isItemCompleted(item.dashedName)}
68+
completed={isItemCompleted(item.id)}
6869
active={isActive}
6970
label={label}
7071
/>
@@ -74,7 +75,7 @@ const CollapsibleItem: FC<CollapsibleItemProps> = (props: CollapsibleItemProps)
7475
= (item: CollapsibleListItem) => {
7576
const isActive: boolean = props.itemId?.(item) === props.active
7677
const stepCount: string | undefined = item.dashedName.match(/^step-(\d+)$/i)?.[1]
77-
const label: ReactNode = stepLabel(item, isActive, stepCount, !stepCount && item.title)
78+
const label: ReactNode = stepLabel(item, isActive, stepCount, !stepCount ? item.title : undefined)
7879
const key: string = props.itemId?.(item) ?? item.title
7980

8081
return (
@@ -127,7 +128,10 @@ const CollapsibleItem: FC<CollapsibleItemProps> = (props: CollapsibleItemProps)
127128
)}
128129
</div>
129130
<div className={styles['short-desc']}>
130-
<span className='body-small' dangerouslySetInnerHTML={{ __html: props.shortDescription.join('<br/>') }} />
131+
<span
132+
className='body-small'
133+
dangerouslySetInnerHTML={{ __html: props.shortDescription.join('<br/>') }}
134+
/>
131135
</div>
132136

133137
<ul className={classNames(styles.list, 'steps-list')}>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export interface LearnLesson {
22
dashedName: string
3+
id: string
34
title: string
45
}

src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications-functions/learn-module-progress.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export interface LearnModuleProgress {
22
completedLessons: Array<{
33
completedDate?: string
44
dashedName: string
5+
id: string
56
}>
67
completedPercentage: number
78
module: string

0 commit comments

Comments
 (0)