import { CoverImage } from './CoverImage'; import { formatDuration, formatNumber, formatPercent } from '../../lib/formatters'; import type { MediaDetailData } from '../../types/stats'; interface MediaHeaderProps { detail: NonNullable; } export function MediaHeader({ detail }: MediaHeaderProps) { const hitRate = detail.totalLookupCount > 0 ? detail.totalLookupHits / detail.totalLookupCount : null; const avgSessionMs = detail.totalSessions > 0 ? Math.round(detail.totalActiveMs / detail.totalSessions) : 0; return (

{detail.canonicalTitle}

{formatDuration(detail.totalActiveMs)}
total watch time
{formatNumber(detail.totalCards)}
cards mined
{formatNumber(detail.totalWordsSeen)}
words seen
{formatPercent(hitRate)}
lookup rate
{detail.totalSessions}
sessions
{formatDuration(avgSessionMs)}
avg session
); }