import { createFileRoute } 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/")({
loader: ({ params }) => getTree({ data: { owner: params.owner, repo: params.repo, splat: "" } }),
component: RepoHome,
});
function RepoHome() {
const tree = Route.useLoaderData();
const header = useRepo();
const { owner, repo } = Route.useParams();
if (tree.kind === "empty") return <EmptyRepo cloneUrl={header.cloneUrl} defaultBranch={header.repo.defaultBranch} />;
if (tree.kind !== "tree") return null;
return (
<div className="space-y-4">
<BranchPushSuggestions owner={owner} repo={repo} defaultBranch={header.repo.defaultBranch} />
<TreeView
owner={owner}
repo={repo}
gitRef={tree.ref}
path={tree.path}
entries={tree.entries}
commit={tree.commit}
commitStatus={tree.commitStatus}
commitRun={tree.commitRun}
readme={tree.readme}
branches={tree.branches}
tags={tree.tags}
canWrite={header.permission === "write" || header.permission === "admin"}
containersAllowed={header.containersAllowed}
/>
</div>
);
}