Skip to content

Commit 957b150

Browse files
committed
TCA-1189 - HM view based on uuid: redirect to full url
1 parent f44d251 commit 957b150

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

src-ts/tools/learn/tca-certificate/user-certification-view/UuidCertificationView.tsx

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,52 @@
1-
import { FC } from 'react'
2-
import { Params, useParams } from 'react-router-dom'
1+
import { FC, useLayoutEffect } from 'react'
2+
import { NavigateFunction, Params, useNavigate, useParams } from 'react-router-dom'
33

4+
import { LoadingSpinner } from '../../../../lib'
45
import {
56
TCACertification,
67
TCACertificationEnrollmentProviderData,
78
useTCACertificationEnrollment,
89
} from '../../learn-lib'
10+
import { getTCAUserCertificationUrl } from '../../learn.routes'
911

10-
import { useGetUserProfile, UseGetUserProfileData } from './use-get-user-profile'
1112
import UserCertificationViewBase from './UserCertificationViewBase'
1213

1314
const UuidCertificationView: FC<{}> = () => {
14-
15+
const navigate: NavigateFunction = useNavigate()
1516
const routeParams: Params<string> = useParams()
1617

1718
const {
1819
enrollment,
1920
error: enrollmentError,
21+
ready: enrollmentReady,
2022
}: TCACertificationEnrollmentProviderData
2123
= useTCACertificationEnrollment(routeParams.completionUuid as string)
2224

23-
const { profile }: UseGetUserProfileData = useGetUserProfile(enrollment?.userHandle)
24-
2525
const certification: TCACertification | undefined = enrollment?.topcoderCertification
2626

27+
useLayoutEffect(() => {
28+
if (enrollmentReady && enrollment) {
29+
navigate(
30+
getTCAUserCertificationUrl(
31+
certification?.dashedName as string,
32+
enrollment.userHandle,
33+
),
34+
)
35+
}
36+
}, [certification?.dashedName, enrollment, enrollmentReady, navigate])
37+
2738
return (
28-
<UserCertificationViewBase
29-
enrollment={enrollment}
30-
certification={certification}
31-
profile={profile}
32-
enrollmentError={enrollmentError}
33-
/>
39+
<>
40+
<LoadingSpinner hide={enrollmentReady} />
41+
{enrollmentReady && enrollmentError && (
42+
<UserCertificationViewBase
43+
enrollment={enrollment}
44+
certification={certification}
45+
profile={{} as any}
46+
enrollmentError={enrollmentError}
47+
/>
48+
)}
49+
</>
3450
)
3551
}
3652

0 commit comments

Comments
 (0)