'use client'; import { Gift } from 'lucide-react'; import type { ChatMessage } from '@shared/chat'; import { proxyImageUrl } from '../lib/imageProxy'; import { formatAmount, formatTime } from '../lib/format'; import { Badges } from './Badges'; import { MessageBody } from './MessageBody'; type Props = { message: ChatMessage; selected: boolean; wasSelected: boolean; onSelect: (message: ChatMessage) => void; onLink: (url: string) => void; }; function membershipLabel(message: ChatMessage): string { if (message.membershipGiftPurchase && message.giftCount) { return `Gifted ${message.giftCount} membership${message.giftCount > 1 ? 's' : ''}`; } return message.membershipLevel || 'New member'; } export function MessageCard({ message, selected, wasSelected, onSelect, onLink }: Props) { const kind = message.superChat ? 'super' : message.membershipGift || message.membershipGiftPurchase ? 'member' : 'chat'; const className = ['card', `card--${kind}`, selected && 'card--selected', wasSelected && 'card--seen'].filter(Boolean).join(' '); const accent = message.superChat?.color; return ( ); }