import { createRouter, createRoute, createRootRoute, Outlet } from "@tanstack/react-router";
import { NavBar } from "./components/layout/NavBar";
import { DashboardPage } from "./pages/DashboardPage";
import { SignupPage } from "./pages/SignupPage";
import { LoginPage } from "./pages/LoginPage";
import { NewRepoPage } from "./pages/NewRepoPage";
import { RepoPage } from "./pages/RepoPage";
import { ChangesPage } from "./pages/ChangesPage";
import { ChangePage } from "./pages/ChangePage";
import { FilePage } from "./pages/FilePage";
const rootRoute = createRootRoute({
component: () => (
<>
<NavBar />
<Outlet />
</>
),
});
const indexRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/",
component: DashboardPage,
});
const signupRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/signup",
component: SignupPage,
});
const loginRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/login",
component: LoginPage,
});
const newRepoRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/new",
component: NewRepoPage,
});
const repoRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/$owner/$name",
component: RepoPage,
});
const repoChangesRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/$owner/$name/changes",
component: ChangesPage,
});
const repoChangeRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/$owner/$name/change/$hash",
component: ChangePage,
});
const repoFileRoute = createRoute({
getParentRoute: () => rootRoute,
path: "/$owner/$name/file",
component: FilePage,
});
const routeTree = rootRoute.addChildren([
indexRoute,
signupRoute,
loginRoute,
newRepoRoute,
repoRoute,
repoChangesRoute,
repoChangeRoute,
repoFileRoute,
]);
export const router = createRouter({ routeTree, defaultPreload: "intent" });
declare module "@tanstack/react-router" {
interface Register {
router: typeof router;
}
}