@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
40 lines (39 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DynamicRouter = DynamicRouter;
exports.createDynamicRouter = createDynamicRouter;
const jsx_runtime_1 = require("react/jsx-runtime");
const appscript_1 = require("@etsoo/appscript");
const react_router_1 = require("react-router");
function getEntries(host) {
const startUrl = host.getStartUrl();
return startUrl == null ? undefined : [startUrl];
}
/**
* Dynamic router
* @param props Props
* @returns Component
*/
function DynamicRouter(props) {
// Destruct
const { basename, children } = props;
// Layout
const host = appscript_1.BridgeUtils.host;
return host == null ? ((0, jsx_runtime_1.jsx)(react_router_1.BrowserRouter, { basename: basename, children: children })) : ((0, jsx_runtime_1.jsx)(react_router_1.MemoryRouter, { basename: basename, initialEntries: getEntries(host), children: children }));
}
/**
* Create dynamic router
* @param routes Routes
* @param opts Options
* @returns Router
*/
function createDynamicRouter(routes, opts) {
// Is host?
const host = appscript_1.BridgeUtils.host;
if (host == null) {
return (0, react_router_1.createBrowserRouter)(routes, opts);
}
else {
return (0, react_router_1.createMemoryRouter)(routes, opts);
}
}