diff --git a/src/components/GenerateCourse/AICourseRoadmapView.tsx b/src/components/GenerateCourse/AICourseRoadmapView.tsx index 2bdb17bff..ef7430186 100644 --- a/src/components/GenerateCourse/AICourseRoadmapView.tsx +++ b/src/components/GenerateCourse/AICourseRoadmapView.tsx @@ -113,13 +113,21 @@ export function AICourseRoadmapView(props: AICourseRoadmapViewProps) { onStream: async (result) => { const roadmap = generateAICourseRoadmapStructure(result, true); const { nodes, edges } = generateAIRoadmapFromText(roadmap); - const svg = await renderFlowJSON({ nodes, edges }); + const svg = renderFlowJSON({ nodes, edges }); + // it will be null only on server side + if (!svg) { + return; + } replaceChildren(containerEl.current!, svg); }, onStreamEnd: async (result) => { const roadmap = generateAICourseRoadmapStructure(result, true); const { nodes, edges } = generateAIRoadmapFromText(roadmap); - const svg = await renderFlowJSON({ nodes, edges }); + const svg = renderFlowJSON({ nodes, edges }); + // it will be null only on server side + if (!svg) { + return; + } replaceChildren(containerEl.current!, svg); setRoadmapStructure(roadmap); setIsGenerating(false); @@ -217,7 +225,7 @@ export function AICourseRoadmapView(props: AICourseRoadmapViewProps) { ); return ( -
+
)} - {!isLoggedIn() && } + {!isLoggedIn() && ( + + )} {error && !isGenerating && !isLoggedIn() && (
diff --git a/src/components/GenerateRoadmap/GenerateRoadmap.tsx b/src/components/GenerateRoadmap/GenerateRoadmap.tsx index 506b4ff26..bf18ad1c2 100644 --- a/src/components/GenerateRoadmap/GenerateRoadmap.tsx +++ b/src/components/GenerateRoadmap/GenerateRoadmap.tsx @@ -133,13 +133,16 @@ export function GenerateRoadmap(props: GenerateRoadmapProps) { const isKeyOnly = IS_KEY_ONLY_ROADMAP_GENERATION; - const renderRoadmap = async (roadmap: string) => { + const renderRoadmap = (roadmap: string) => { const result = generateAICourseRoadmapStructure(roadmap); const { nodes, edges } = generateAIRoadmapFromText(result); - const svg = await renderFlowJSON({ nodes, edges }); - if (roadmapContainerRef?.current) { - replaceChildren(roadmapContainerRef?.current, svg); + const svg = renderFlowJSON({ nodes, edges }); + const container = roadmapContainerRef?.current; + if (!svg || !container) { + return; } + + replaceChildren(container, svg); }; const loadTermRoadmap = async (term: string) => { @@ -221,7 +224,7 @@ export function GenerateRoadmap(props: GenerateRoadmapProps) { }); } - await renderRoadmap(result); + renderRoadmap(result); }, onStreamEnd: async (result) => { result = result @@ -358,7 +361,7 @@ export function GenerateRoadmap(props: GenerateRoadmapProps) { } const { term, title, data } = response; - await renderRoadmap(data); + renderRoadmap(data); setCurrentRoadmap({ id: roadmapId, @@ -557,7 +560,7 @@ export function GenerateRoadmap(props: GenerateRoadmapProps) {