import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' import { useStuff } from '@/hooks/useStuff' import { useStuffStatsById } from '@/hooks/useStuffStatsById' import { createFakeEvent } from '@/lib/event' import { formatAmount } from '@/lib/lightning' import { Zap } from 'lucide-react' import { Event } from 'nostr-tools' import { useMemo, useState } from 'react' import ContentPreview from '../ContentPreview' import { SimpleUserAvatar } from '../UserAvatar' import ZapDetailDialog from '../ZapDetailDialog' export default function TopZaps({ stuff }: { stuff: Event | string }) { const { event, stuffKey } = useStuff(stuff) const noteStats = useStuffStatsById(stuffKey) const [zapIndex, setZapIndex] = useState(-1) const topZaps = useMemo(() => { return noteStats?.zaps?.sort((a, b) => b.amount - a.amount).slice(0, 10) || [] }, [noteStats]) if (!topZaps.length || !event) return null return (
{topZaps.map((zap, index) => (
{ e.stopPropagation() setZapIndex(index) }} >
{formatAmount(zap.amount)}
{ if (open) { setZapIndex(index) } else { setZapIndex(-1) } }} zap={zap} />
))}
) }