import { createRouter } from "@tanstack/react-router"; import { rootRoute } from "./routes/root"; import { homeRoute } from "./routes/home"; import { chatRoute } from "./routes/chat"; import { settingsRoute } from "./routes/settings"; import { providerSettingsRoute } from "./routes/settings/providers/$provider"; import { appDetailsRoute } from "./routes/app-details"; import { templatesRoute } from "./routes/templates"; import { pluginsRoute } from "./routes/plugins"; import { pluginDetailRoute } from "./routes/plugin-detail"; import { libraryRoute } from "./routes/library"; import { appsRoute } from "./routes/apps"; import { themesRoute } from "./routes/themes"; import { promptsRoute } from "./routes/prompts"; import { mediaRoute } from "./routes/media"; const routeTree = rootRoute.addChildren([ homeRoute, templatesRoute, pluginsRoute, pluginDetailRoute, libraryRoute, appsRoute, themesRoute, promptsRoute, mediaRoute, chatRoute, appDetailsRoute, settingsRoute.addChildren([providerSettingsRoute]), ]); // src/components/NotFoundRedirect.tsx import * as React from "react"; import { useNavigate } from "@tanstack/react-router"; import { ErrorBoundary } from "./components/ErrorBoundary"; export function NotFoundRedirect() { const navigate = useNavigate(); React.useEffect(() => { // Navigate to the main route ('/') immediately on mount // 'replace: true' prevents the invalid URL from being added to browser history navigate({ to: "/", replace: true }); }, [navigate]); // Dependency array ensures this runs only once // Optionally render null or a loading indicator while redirecting // The redirect is usually very fast, so null is often fine. return null; // Or: return
Redirecting...
; } export const router = createRouter({ routeTree, defaultNotFoundComponent: NotFoundRedirect, defaultErrorComponent: ErrorBoundary, }); declare module "@tanstack/react-router" { interface Register { router: typeof router; } }