import React from 'react'; import { Badge } from './Badge'; import { classNames } from '~/utils/classNames'; import { formatSize } from '~/utils/formatSize'; interface RepositoryStatsProps { stats: { totalFiles?: number; totalSize?: number; languages?: Record; hasPackageJson?: boolean; hasDependencies?: boolean; }; className?: string; compact?: boolean; } export function RepositoryStats({ stats, className, compact = false }: RepositoryStatsProps) { const { totalFiles, totalSize, languages, hasPackageJson, hasDependencies } = stats; return (
{!compact && (

Repository Statistics:

)}
{totalFiles !== undefined && (
Total Files: {totalFiles.toLocaleString()}
)} {totalSize !== undefined && (
Total Size: {formatSize(totalSize)}
)}
{languages && Object.keys(languages).length > 0 && (
Languages:
{Object.entries(languages) .sort(([, a], [, b]) => b - a) .slice(0, compact ? 3 : 5) .map(([lang, size]) => ( {lang} ({formatSize(size)}) ))} {Object.keys(languages).length > (compact ? 3 : 5) && ( +{Object.keys(languages).length - (compact ? 3 : 5)} more )}
)} {(hasPackageJson || hasDependencies) && (
{hasPackageJson && ( package.json )} {hasDependencies && ( Dependencies )}
)}
); }