import { createFileRoute, Link } from "@tanstack/react-router"; import { z } from "zod"; import { exploreRepos } from "~/fns/repos"; import { RepoList } from "~/components/RepoList"; import { PageContainer } from "~/ui/PageContainer"; import { Panel } from "~/ui/Panel"; import { buttonClass } from "~/ui/Button"; import { Heading } from "~/ui/Heading"; export const Route = createFileRoute("/explore")({ validateSearch: z.object({ q: z.string().optional(), page: z.number().int().min(1).optional() }), loaderDeps: ({ search }) => search, loader: ({ deps }) => exploreRepos({ data: { q: deps.q, page: deps.page ?? 1 } }), component: ExplorePage, }); function ExplorePage() { const { repos, hasMore } = Route.useLoaderData(); const search = Route.useSearch(); const page = search.page ?? 1; return ( Explore
{page > 1 ? ( Previous ) : ( )} {hasMore && ( Next )}
); }