import { useMemo } from 'react'; import { Link } from 'react-router-dom'; import { nip19 } from 'nostr-tools'; import type { NostrEvent } from '@nostrify/nostrify'; import { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/avatar'; import { Skeleton } from '@/components/ui/skeleton'; import { EmojifiedText } from '@/components/CustomEmoji'; import { genUserName } from '@/lib/genUserName'; import { timeAgo } from '@/lib/timeAgo'; import { isEventMuted } from '@/lib/muteHelpers'; import { useAuthor } from '@/hooks/useAuthor'; import { useOpenPost } from '@/hooks/useOpenPost'; import { useSortedPosts } from '@/hooks/useTrending'; import { useMuteList } from '@/hooks/useMuteList'; /** Hot posts widget for the right sidebar. */ export function HotPostsWidget() { const { data: rawPosts, isLoading } = useSortedPosts('hot', 5); const { muteItems } = useMuteList(); const posts = useMemo(() => { if (!rawPosts || muteItems.length === 0) return rawPosts; return rawPosts.filter((e) => !isEventMuted(e, muteItems)); }, [rawPosts, muteItems]); if (isLoading) { return (
No hot posts right now.
; } return (