diff --git a/src/components/RoadmapAIChat/RoadmapAIChat.tsx b/src/components/RoadmapAIChat/RoadmapAIChat.tsx index 7c6db13e0..3908f6fda 100644 --- a/src/components/RoadmapAIChat/RoadmapAIChat.tsx +++ b/src/components/RoadmapAIChat/RoadmapAIChat.tsx @@ -229,10 +229,24 @@ export function RoadmapAIChat(props: RoadmapAIChatProps) { [roadmapId, deviceType], ); + const totalTopicCount = useMemo(() => { + const allowedTypes = ['topic', 'subtopic', 'todo']; + return ( + roadmapDetail?.json?.nodes.filter((node) => + allowedTypes.includes(node.type || ''), + ).length ?? 0 + ); + }, [roadmapDetail]); + const renderer: Record = useMemo(() => { return { 'user-progress': () => { - return ; + return ( + + ); }, 'update-progress': (options) => { return ; @@ -260,7 +274,7 @@ export function RoadmapAIChat(props: RoadmapAIChatProps) { return ; }, }; - }, [roadmapId, handleSelectTopic]); + }, [roadmapId, handleSelectTopic, totalTopicCount]); const completeAITutorChat = async ( messages: RoamdapAIChatHistoryType[], diff --git a/src/components/RoadmapAIChat/UserProgressList.tsx b/src/components/RoadmapAIChat/UserProgressList.tsx index 2b0b1c287..544ba98a0 100644 --- a/src/components/RoadmapAIChat/UserProgressList.tsx +++ b/src/components/RoadmapAIChat/UserProgressList.tsx @@ -4,18 +4,18 @@ import { userResourceProgressOptions } from '../../queries/resource-progress'; import { getPercentage } from '../../lib/number'; type UserProgressListProps = { + totalTopicCount: number; roadmapId: string; }; export function UserProgressList(props: UserProgressListProps) { - const { roadmapId } = props; + const { totalTopicCount, roadmapId } = props; const { data: userResourceProgressData } = useQuery( userResourceProgressOptions('roadmap', roadmapId), queryClient, ); - const totalTopicCount = userResourceProgressData?.totalTopicCount ?? 0; const doneCount = userResourceProgressData?.done?.length ?? 0; const skippedCount = userResourceProgressData?.skipped?.length ?? 0; @@ -31,7 +31,7 @@ export function UserProgressList(props: UserProgressListProps) { {progressPercentage}% - + {totalFinished} / {totalTopicCount} topics