import * as React from "react"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { cn } from "@/lib/utils"; interface ActivityUser { id: string; username: string; avatarUrl?: string; } interface ActivityStreamProps { activeCount: number; users: ActivityUser[]; className?: string; } export function ActivityStream({ activeCount, users, className }: ActivityStreamProps) { // Mock timeline dots for visual effect matching the image // In a real app, these could represent specific timestamps of events // Professional, minimal palette (monochromatic with accents) const dots = [ { color: "bg-indigo-500", left: "10%", delay: "0s" }, { color: "bg-indigo-400", left: "30%", delay: "1s" }, { color: "bg-violet-500", left: "50%", delay: "2s" }, { color: "bg-indigo-300", left: "65%", delay: "1.5s" }, { color: "bg-white", left: "85%", delay: "0.5s" }, ]; return (
{/* Subtle background glow effect using CSS gradients */}

Live Code Review Activity

Real-time
{/* Left Stat - Clean & Big */}
{activeCount} Developers shipping code
{/* Timeline Visualization - Minimal & Tech */}
{/* Moving light effect */}
{/* Dots with pulse */} {dots.map((dot, i) => (
))}
{/* User Avatars - Tighter & Cleaner */}
{users.slice(0, 5).map((user, i) => (
{user.username.slice(0, 2).toUpperCase()} {/* Tooltip on hover */}
@{user.username}
))} {users.length > 5 && (
+{users.length - 5}
)}
); }