import { getRelativeTimeString } from '../../lib/date'; import { getPercentage } from '../../lib/number'; import type { UserProgress } from '../TeamProgress/TeamProgressPage'; type DashboardCustomProgressCardProps = { progress: UserProgress; }; export function DashboardCustomProgressCard(props: DashboardCustomProgressCardProps) { const { progress } = props; const { resourceType, resourceId, resourceTitle, total: totalCount, done: doneCount, skipped: skippedCount, roadmapSlug, isCustomResource, updatedAt, } = progress; let url = resourceType === 'roadmap' ? `/${resourceId}` : `/best-practices/${resourceId}`; if (isCustomResource) { url = `/r/${roadmapSlug}`; } const totalMarked = doneCount + skippedCount; const progressPercentage = getPercentage(totalMarked, totalCount); return (

{resourceTitle}

{Math.floor(+progressPercentage)}%

{isCustomResource ? ( <>Last updated {getRelativeTimeString(updatedAt)} ) : ( <>Last practiced {getRelativeTimeString(updatedAt)} )}

); }