Skip to content

Commit 21cf282

Browse files
committed
Merge branch 'dev' of github.com:topcoder-platform/platform-ui into TCA-1179_work-on-linting-issues
2 parents ce293c1 + bf9553a commit 21cf282

File tree

79 files changed

+1865
-895
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+1865
-895
lines changed

src-ts/lib/breadcrumb/Breadcrumb.module.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
padding: 0;
4141
@include ltesm {
4242
flex: 0 1 auto;
43-
&:first-child {
44-
flex: 1 0 auto;
43+
&:first-child:not(:global(.elipsis)) {
44+
flex: 1 0 0;
4545
}
4646
}
4747
a {

src-ts/lib/breadcrumb/breadcrumb-item/BreadcrumbItem.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const BreadcrumbItem: FC<BreadcrumbItemProps> = (props: BreadcrumbItemProps) =>
2121
<li
2222
key={props.index}
2323
onClick={onClick}
24+
className={props.item.isElipsis ? 'elipsis' : ''}
2425
>
2526
<Link
2627
className={classNames(props.item.isElipsis && styles.elipsis)}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export default async function copy(text: string): Promise<void> {
1+
export async function copyTextToClipboard(text: string): Promise<void> {
22
try {
33
return await navigator.clipboard.writeText(text)
44
} catch (error) {}
@@ -23,4 +23,6 @@ export default async function copy(text: string): Promise<void> {
2323
}
2424

2525
document.body.removeChild(textArea)
26+
27+
return undefined
2628
}

src-ts/lib/functions/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ export * from './text-format-functions'
1313
export * from './survey-functions'
1414
export * from './user-functions'
1515
export * from './xhr-functions'
16+
export * from './copy-text-to-clipboard'

src-ts/lib/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export {
1111
authUrlLogin,
1212
authUrlLogout,
1313
authUrlSignup,
14+
copyTextToClipboard,
1415
errorHandle,
1516
fileCreateFromCanvas,
1617
fileDownloadBlob,

src-ts/tools/dev-center/dev-center-lib/CopyButton/CopyButton.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as React from 'react'
22

3-
import { Button, IconOutline } from '../../../../lib'
4-
import copy from '../functions/copy-to-clipboard'
3+
import { Button, copyTextToClipboard, IconOutline } from '../../../../lib'
54

65
import styles from './CopyButton.module.scss'
76

@@ -19,7 +18,7 @@ export const CopyButton: React.FC<CopyButtonProps> = props => {
1918
buttonStyle='icon'
2019
className={`${styles['copy-btn']} ${className}`}
2120
icon={IconOutline.DocumentDuplicateIcon}
22-
onClick={() => copy(text)}
21+
onClick={() => copyTextToClipboard(text)}
2322
/>
2423
)
2524
}

src-ts/tools/learn/certification-details/CertificationDetailsPage.module.scss

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,16 @@
2121
margin-top: 0;
2222
}
2323
}
24+
25+
.certifCompleted {
26+
display: flex;
27+
align-items: center;
28+
margin-bottom: $space-mx;
29+
gap: $space-lg;
30+
31+
@include ltemd {
32+
flex-direction: column;
33+
align-items: flex-start;
34+
margin-bottom: $space-xxxxl;
35+
}
36+
}

src-ts/tools/learn/certification-details/CertificationDetailsPage.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
profileContext,
1818
ProfileContextData,
1919
} from '../../../lib'
20+
import { getTCAUserCertificationUrl } from '../learn.routes'
2021

2122
import { CertificationDetailsSidebar } from './certification-details-sidebar'
2223
import { CertificationCurriculum } from './certification-curriculum'
@@ -62,13 +63,27 @@ const CertificationDetailsPage: FC<{}> = () => {
6263
const isNotEnrolledView: boolean = !progressReady || !progress
6364
const isCompleted: boolean = progress?.status === TCACertificationProgressStatus.completed
6465

66+
function renderCertificationCompleted(): ReactNode {
67+
return (
68+
<div className={styles.certifCompleted}>
69+
<div className='body-large-bold'>
70+
Congratulations! You earned the certification.
71+
</div>
72+
<Button
73+
buttonStyle='primary'
74+
label='View & share your certification'
75+
route={getTCAUserCertificationUrl(certification?.dashedName ?? '', progress?.userHandle ?? '')}
76+
/>
77+
</div>
78+
)
79+
}
80+
6581
function renderCertificationCurriculum(): ReactNode {
6682
return (
6783
<div className={classNames(styles['text-section'], isEnrolled && styles['no-top'])}>
6884
<CertificationCurriculum
6985
certification={certification}
7086
isEnrolled={isEnrolled}
71-
isCompleted={isCompleted}
7287
certsProgress={certsProgress}
7388
/>
7489
</div>
@@ -87,11 +102,12 @@ const CertificationDetailsPage: FC<{}> = () => {
87102
</CertifDetailsContent>
88103
) : (
89104
<>
105+
{isCompleted && renderCertificationCompleted()}
90106
{renderCertificationCurriculum()}
91107
<div className={styles['text-section']}>
92108
<Button
93109
buttonStyle='link'
94-
label='Certification Details'
110+
label='Certification Description'
95111
onClick={toggleCertifDetailsModal}
96112
/>
97113
</div>

src-ts/tools/learn/certification-details/certification-curriculum/CertificationCurriculum.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ interface CertificationCurriculumProps {
1818
certification?: TCACertification
1919
certsProgress?: ReadonlyArray<LearnUserCertificationProgress>
2020
isEnrolled: boolean
21-
isCompleted: boolean
2221
}
2322

2423
interface ProgressByIdCollection {
@@ -94,7 +93,6 @@ const CertificationCurriculum: FC<CertificationCurriculumProps> = (props: Certif
9493
</div>
9594
<CertificationSummary
9695
certification={props.certification}
97-
isCompleted={props.isCompleted}
9896
/>
9997
</div>
10098
</div>

src-ts/tools/learn/certification-details/certification-curriculum/certification-summary/CertificationSummary.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import { FC } from 'react'
22

3-
import { IconSolid } from '../../../../../lib'
43
import { CertificateBadgeIcon, TCACertification } from '../../../learn-lib'
54

65
import styles from './CertificationSummary.module.scss'
76

87
interface CertificationSummaryProps {
98
certification: TCACertification
10-
isCompleted?: boolean
119
}
1210

1311
const CertificationSummary: FC<CertificationSummaryProps> = (props: CertificationSummaryProps) => (
@@ -22,11 +20,6 @@ const CertificationSummary: FC<CertificationSummaryProps> = (props: Certificatio
2220
{props.certification.title}
2321
</span>
2422
</div>
25-
{props.isCompleted && (
26-
<div className={styles.completedIcon}>
27-
<IconSolid.CheckCircleIcon />
28-
</div>
29-
)}
3023
</div>
3124
)
3225

0 commit comments

Comments
 (0)