'use client'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { ScrollArea } from '@/components/ui/scroll-area'; import type { ActivityLogEntry } from '@/lib/game/types'; interface ActivityLogProps { activityLog?: ActivityLogEntry[]; } export function ActivityLog({ activityLog }: ActivityLogProps) { const entries = activityLog || []; return ( Activity Log
{entries.slice(0, 50).map((entry, i) => { const isLatest = i === 0; const color = getEventStyle(entry.eventType); return (
{entry.message}
); })} {entries.length === 0 && (
No activity yet...
)}
); } function getEventStyle(eventType: string): string { switch (eventType) { case 'enemy_defeated': case 'floor_cleared': return 'text-green-400'; case 'damage_dealt': return 'text-red-400'; case 'dodge': return 'text-yellow-400'; case 'armor_proc': return 'text-blue-400'; case 'special_effect': return 'text-purple-400'; case 'floor_transition': return 'text-cyan-400'; case 'spell_cast': return 'text-amber-400'; case 'golem_attack': return 'text-orange-400'; case 'puzzle_solved': return 'text-pink-400'; default: return 'text-gray-300'; } }