UNPKG

bananas-commerce-admin

Version:

What's this, an admin for apes?

31 lines 1.79 kB
import React from "react"; import { Route, Routes } from "react-router-dom"; import Stack from "@mui/material/Stack"; import ErrorScreen from "../containers/ErrorScreen"; import PageErrorBoundary from "../containers/PageErrorBoundary"; import PageLoader from "../containers/PageLoader"; import { useRouter } from "../contexts/RouterContext"; import DashboardPage from "../pages/DashboardPage"; export const Router = ({ dashboard, extensions }) => { extensions ??= Array.isArray(extensions) ? extensions : []; const { routes } = useRouter(); const Dashboard = dashboard ?? DashboardPage; const extensionsMap = new Map(extensions.map(({ app, pages }) => [app, pages])); const pageRoutes = routes.map((route) => { const hit = extensionsMap.get(route.app)?.(route); if (hit == null) return; const page = "page" in hit ? hit.page : hit; const request = "request" in hit ? hit.request : undefined; const defaultRequest = "defaultRequest" in hit ? hit.defaultRequest : undefined; const offline = "offline" in hit ? hit.offline : undefined; const Element = () => (React.createElement(PageErrorBoundary, { errorPage: ErrorScreen }, React.createElement(PageLoader, { defaultRequest: defaultRequest, offline: offline, page: page, request: request, route: route }))); return React.createElement(Route, { key: route.path, element: React.createElement(Element, null), path: route.path }); }); return (React.createElement(Stack, { sx: { width: "100%", minHeight: "100%" } }, React.createElement(Routes, null, React.createElement(Route, { index: true, element: React.createElement(Dashboard, null) }), pageRoutes))); }; //# sourceMappingURL=Router.js.map