import { cn } from '@/lib/utils' import { useNostr } from '@/providers/NostrProvider' import { useScreenSize } from '@/providers/ScreenSizeProvider' import noteStatsService from '@/services/note-stats.service' import { Event } from 'nostr-tools' import { useEffect, useState } from 'react' import BookmarkButton from '../BookmarkButton' import LikeButton from './LikeButton' import Likes from './Likes' import ReplyButton from './ReplyButton' import RepostButton from './RepostButton' import SeenOnButton from './SeenOnButton' import TopZaps from './TopZaps' import ZapButton from './ZapButton' export default function NoteStats({ event, className, classNames, fetchIfNotExisting = false, displayTopZapsAndLikes = false }: { event: Event className?: string classNames?: { buttonBar?: string } fetchIfNotExisting?: boolean displayTopZapsAndLikes?: boolean }) { const { isSmallScreen } = useScreenSize() const { pubkey } = useNostr() const [loading, setLoading] = useState(false) useEffect(() => { if (!fetchIfNotExisting) return setLoading(true) noteStatsService.fetchNoteStats(event, pubkey).finally(() => setLoading(false)) }, [event, fetchIfNotExisting]) if (isSmallScreen) { return (