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 { LumeEvent, Widget } from '@utils/types'; export function UserBlock({ params }: { params: Widget }) { const parentRef = useRef(null); const { ndk } = useNDK(); const { status, data } = useQuery(['user-feed', params.content], async () => { const events = await ndk.fetchEvents({ kinds: [1], authors: [params.content], since: nHoursAgo(48), }); 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 postrs

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

No new posts from this user in 48 hours ago

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