@@ -7,10 +7,14 @@ import AssessmentOutro from '@/lib/components/assessment-flow/AssessmentOutro';
77import AssessmentSidebar from '@/lib/components/assessment-flow/AssessmentSidebar' ;
88import AssessmentNavbar from '@/lib/components/assessment-flow/AssessmentNavbar' ;
99import AssessmentContent from '@/lib/components/assessment-flow/AssessmentContent' ;
10+ import { useHeartbeat } from '@/lib/hooks/useHeartbeat' ;
11+ import { LostConnectionModal } from '@/lib/components/modal/LostConnectionModal' ;
12+ import AssessmentSkeleton from '@/lib/components/assessment-flow/AssessmentSkeleton' ;
1013
1114export default function AssessmentPage ( { params } : { params : Promise < { assessmentId : string } > } ) {
1215 const { assessmentId } = use ( params ) ;
1316 const assessment = useAssessment ( assessmentId ) ;
17+ const { isConnected } = useHeartbeat ( assessment . token ?? null ) ;
1418
1519 if ( assessment . isLoading )
1620 return (
@@ -46,6 +50,8 @@ export default function AssessmentPage({ params }: { params: Promise<{ assessmen
4650
4751 return (
4852 < div className = "flex h-screen w-full flex-col overflow-hidden" >
53+ { /* onOpenChange is returning nothing as we don't have recovery implemented just yet */ }
54+ < LostConnectionModal open = { ! isConnected } onOpenChange = { ( ) => { } } />
4955 < AssessmentNavbar candidateName = { assessment . candidateName } />
5056 < div className = "flex flex-1 overflow-hidden" >
5157 < AssessmentSidebar
@@ -54,17 +60,21 @@ export default function AssessmentPage({ params }: { params: Promise<{ assessmen
5460 formattedTime = { assessment . timer . formattedTime }
5561 />
5662 < main className = "flex-1 overflow-hidden" >
57- < AssessmentContent
58- currentSection = { assessment . currentSection }
59- availableLanguages = { assessment . availableLanguages }
60- publicTestCases = { assessment . publicTestCases }
61- testCaseResults = { assessment . testCaseResults }
62- isTransitioning = { assessment . isTransitioning }
63- onLanguageChange = { assessment . changeLanguage }
64- onEditorMount = { assessment . handleEditorMount }
65- onRunTests = { assessment . runTests }
66- onSubmit = { assessment . submitAndContinue }
67- />
63+ { ! isConnected ? (
64+ < AssessmentSkeleton />
65+ ) : (
66+ < AssessmentContent
67+ currentSection = { assessment . currentSection }
68+ availableLanguages = { assessment . availableLanguages }
69+ publicTestCases = { assessment . publicTestCases }
70+ testCaseResults = { assessment . testCaseResults }
71+ isTransitioning = { assessment . isTransitioning }
72+ onLanguageChange = { assessment . changeLanguage }
73+ onEditorMount = { assessment . handleEditorMount }
74+ onRunTests = { assessment . runTests }
75+ onSubmit = { assessment . submitAndContinue }
76+ />
77+ ) }
6878 </ main >
6979 </ div >
7080 </ div >
0 commit comments