import { Skeleton } from '@/components/ui/skeleton' import { isMentioningMutedUsers } from '@/lib/event' import { cn } from '@/lib/utils' import { useContentPolicy } from '@/providers/ContentPolicyProvider' import { useMuteList } from '@/providers/MuteListProvider' import { Event, kinds } from 'nostr-tools' import { useMemo } from 'react' import MainNoteCard from './MainNoteCard' import RepostNoteCard from './RepostNoteCard' export default function NoteCard({ event, className, filterMutedNotes = true, pinned = false, reposters }: { event: Event className?: string filterMutedNotes?: boolean pinned?: boolean reposters?: string[] }) { const { mutePubkeySet } = useMuteList() const { hideContentMentioningMutedUsers } = useContentPolicy() const shouldHide = useMemo(() => { if (filterMutedNotes && mutePubkeySet.has(event.pubkey)) { return true } if (hideContentMentioningMutedUsers && isMentioningMutedUsers(event, mutePubkeySet)) { return true } return false }, [event, filterMutedNotes, mutePubkeySet]) if (shouldHide) return null if (event.kind === kinds.Repost || event.kind === kinds.GenericRepost) { return ( ) } return } export function NoteCardLoadingSkeleton({ className }: { className?: string }) { return (
) }