ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
34 lines • 1.59 kB
JavaScript
import * as React from 'react';
import { useInRouterContext, createHashRouter, RouterProvider, } from 'react-router-dom';
import { BasenameContextProvider } from './BasenameContextProvider';
/**
* Creates a react-router Router unless the app is already inside existing router.
* Also creates a BasenameContext with the basename prop
*/
export var AdminRouter = function (_a) {
var _b = _a.basename, basename = _b === void 0 ? '' : _b, children = _a.children;
var isInRouter = useInRouterContext();
var Router = isInRouter ? DummyRouter : InternalRouter;
return (React.createElement(BasenameContextProvider, { basename: isInRouter ? basename : '' },
React.createElement(Router, { basename: basename }, children)));
};
var DummyRouter = function (_a) {
var children = _a.children;
return React.createElement(React.Fragment, null, children);
};
var routerProviderFuture = { v7_startTransition: false, v7_relativeSplatPath: false };
var InternalRouter = function (_a) {
var children = _a.children, basename = _a.basename;
var router = createHashRouter([{ path: '*', element: React.createElement(React.Fragment, null, children) }], {
basename: basename,
future: {
v7_fetcherPersist: false,
v7_normalizeFormMethod: false,
v7_partialHydration: false,
v7_relativeSplatPath: false,
v7_skipActionErrorRevalidation: false,
},
});
return React.createElement(RouterProvider, { router: router, future: routerProviderFuture });
};
//# sourceMappingURL=AdminRouter.js.map