import { useQuery } from '@tanstack/react-query'; import { useVirtualizer } from '@tanstack/react-virtual'; import { useRef } from 'react'; import { useNDK } from '@libs/ndk/provider'; import { NoteKind_1, NoteSkeleton } from '@shared/notes'; import { TitleBar } from '@shared/titleBar'; import { UserProfile } from '@shared/userProfile'; import { nHoursAgo } from '@utils/date'; import { Block, LumeEvent } from '@utils/types'; export function UserBlock({ params }: { params: Block }) { const parentRef = useRef(null); const { fetcher, relayUrls } = useNDK(); const { status, data } = useQuery(['user-feed', params.content], async () => { const events = await fetcher.fetchAllEvents( relayUrls, { kinds: [1], authors: [params.content] }, { since: nHoursAgo(48) }, { sort: true } ); return events as unknown as LumeEvent[]; }); const rowVirtualizer = useVirtualizer({ count: data ? data.length : 0, getScrollElement: () => parentRef.current, estimateSize: () => 400, overscan: 2, }); const itemsVirtualizer = rowVirtualizer.getVirtualItems(); return (

Latest activities

{status === 'loading' ? (
) : itemsVirtualizer.length === 0 ? (

No new posts about this hashtag in 48 hours ago

) : (
{itemsVirtualizer.map((virtualRow) => (
))}
)}
); }