import { createFileRoute, redirect } from "@tanstack/react-router"; import { getTree } from "~/fns/browse"; import { useRepo } from "~/hooks/use-repo"; import { TreeView } from "~/components/TreeView"; import { EmptyRepo } from "~/components/EmptyRepo"; import { BranchPushSuggestions } from "~/components/BranchPushSuggestions"; export const Route = createFileRoute("/$owner/$repo/tree/$")({ loader: async ({ params }) => { const tree = await getTree({ data: { owner: params.owner, repo: params.repo, splat: params._splat ?? "" } }); if (tree.kind === "file") { throw redirect({ to: "/$owner/$repo/blob/$", params: { owner: params.owner, repo: params.repo, _splat: params._splat ?? "" }, }); } return tree; }, component: TreePage, }); function TreePage() { const tree = Route.useLoaderData(); const header = useRepo(); const { owner, repo } = Route.useParams(); if (tree.kind === "empty") return ; if (tree.kind !== "tree") return null; return (
); }