import { ExtendedKind } from '@/constants' 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 { useTranslation } from 'react-i18next' import CommunityDefinitionPreview from './CommunityDefinitionPreview' import GroupMetadataPreview from './GroupMetadataPreview' import HighlightPreview from './HighlightPreview' import LiveEventPreview from './LiveEventPreview' import LongFormArticlePreview from './LongFormArticlePreview' import NormalContentPreview from './NormalContentPreview' import PictureNotePreview from './PictureNotePreview' import PollPreview from './PollPreview' import VideoNotePreview from './VideoNotePreview' export default function ContentPreview({ event, className }: { event?: Event className?: string }) { const { t } = useTranslation() const { mutePubkeySet } = useMuteList() const { hideContentMentioningMutedUsers } = useContentPolicy() const isMuted = useMemo( () => (event ? mutePubkeySet.has(event.pubkey) : false), [mutePubkeySet, event] ) const isMentioningMuted = useMemo( () => hideContentMentioningMutedUsers && event ? isMentioningMutedUsers(event, mutePubkeySet) : false, [event, mutePubkeySet] ) if (!event) { return