'use client' import type { TopPath } from '@/lib/api/journeys' import { TableSkeleton } from '@/components/skeletons' import { Path } from '@phosphor-icons/react' interface TopPathsTableProps { paths: TopPath[] loading: boolean } function formatDuration(seconds: number): string { if (seconds <= 0) return '0s' const m = Math.floor(seconds / 60) const s = Math.round(seconds % 60) if (m === 0) return `${s}s` return `${m}m ${s}s` } export default function TopPathsTable({ paths, loading }: TopPathsTableProps) { const hasData = paths.length > 0 return (

Top Paths

Most common navigation paths across sessions

{loading ? ( ) : hasData ? (
{/* Header */}
# Path Sessions Dur.
{/* Rows */}
{paths.map((path, i) => (
{i + 1} {path.page_sequence.join(' → ')} {path.session_count.toLocaleString()} {formatDuration(path.avg_duration)}
))}
) : (

No path data yet

Common navigation paths will appear here as visitors browse your site.

)}
) }