@generouted/react-router
Version:
Generated file-based routes for React Router and Vite
40 lines (38 loc) • 2.12 kB
JavaScript
import {
generateModalRoutes,
generatePreservedRoutes,
generateRegularRoutes
} from "./chunk-2IW5HX64.js";
import "./chunk-DZAGGWNQ.js";
// ../generouted/src/react-router.tsx
import { Fragment, Suspense } from "react";
import { createBrowserRouter, Outlet, RouterProvider, useLocation } from "react-router-dom";
import { jsx } from "react/jsx-runtime";
var PRESERVED = import.meta.glob("/src/pages/(_app|404).{jsx,tsx}", { eager: true });
var MODALS = import.meta.glob("/src/pages/**/[+]*.{jsx,tsx}", { eager: true });
var ROUTES = import.meta.glob(["/src/pages/**/[\\w[-]*.{jsx,tsx,mdx}", "!**/(_app|404).*"], { eager: true });
var preservedRoutes = generatePreservedRoutes(PRESERVED);
var modalRoutes = generateModalRoutes(MODALS);
var regularRoutes = generateRegularRoutes(ROUTES, (module, key) => {
const index = /index\.(jsx|tsx|mdx)$/.test(key) && !key.includes("pages/index") ? { index: true } : {};
const Element2 = module?.default || Fragment;
const Page = () => module?.Pending ? /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(module.Pending, {}), children: /* @__PURE__ */ jsx(Element2, {}) }) : /* @__PURE__ */ jsx(Element2, {});
return { ...index, Component: Page, ErrorBoundary: module?.Catch, loader: module?.Loader, action: module?.Action };
});
var _app = preservedRoutes?.["_app"];
var _404 = preservedRoutes?.["404"];
var Element = _app?.default || Fragment;
var App = () => _app?.Pending ? /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(_app.Pending, {}), children: /* @__PURE__ */ jsx(Element, {}) }) : /* @__PURE__ */ jsx(Element, {});
var app = { Component: _app?.default ? App : Outlet, ErrorBoundary: _app?.Catch, loader: _app?.Loader };
var fallback = { path: "*", Component: _404?.default || Fragment };
var routes = [{ ...app, children: [...regularRoutes, fallback] }];
var Routes = () => /* @__PURE__ */ jsx(RouterProvider, { router: createBrowserRouter(routes) });
var Modals = () => {
const Modal = modalRoutes[useLocation().state?.modal] || Fragment;
return /* @__PURE__ */ jsx(Modal, {});
};
export {
Modals,
Routes,
routes
};