import { TextNote } from "@/components/text"; import { type Event } from "@lume/types"; import { Spinner } from "@lume/ui"; import { Await, createFileRoute } from "@tanstack/react-router"; import { defer } from "@tanstack/react-router"; import { Suspense } from "react"; import { Virtualizer } from "virtua"; export const Route = createFileRoute("/trending/notes")({ loader: async ({ abortController }) => { try { return { data: defer( fetch("https://api.nostr.band/v0/trending/notes", { signal: abortController.signal, }) .then((res) => res.json()) .then((res) => res.notes.map((item) => item.event) as Event[]), ), }; } catch (e) { throw new Error(String(e)); } }, component: Screen, }); export function Screen() { const { data } = Route.useLoaderData(); return (
} > {(notes) => notes.map((event) => ( )) } ); }