'use client'; import type { LearningViewProps } from '@contractspec/example.learning-journey-ui-shared'; import { StreakCounter, XpBar, } from '@contractspec/example.learning-journey-ui-shared'; import { Button } from '@contractspec/lib.design-system'; import { Card, CardContent, CardHeader, CardTitle, } from '@contractspec/lib.ui-kit-web/ui/card'; import { TipCard } from '../components/TipCard'; interface CoachingOverviewProps extends LearningViewProps { onStart?: () => void; } export function Overview({ track, progress, onStepComplete, onStart, }: CoachingOverviewProps) { const totalXp = track.totalXp ?? track.steps.reduce((sum, s) => sum + (s.xpReward ?? 0), 0); const completedSteps = progress.completedStepIds.length; const totalSteps = track.steps.length; const pendingSteps = totalSteps - completedSteps; // Get active tips (incomplete ones) const activeTips = track.steps .filter((s) => !progress.completedStepIds.includes(s.id)) .slice(0, 3); return (
{track.description}
tips for you today
out of {totalSteps} total
Great job! You've addressed all {totalSteps} coaching tips.