@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
36 lines (35 loc) • 1.08 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { BridgeUtils } from "@etsoo/appscript";
import { BrowserRouter, createBrowserRouter, createMemoryRouter, MemoryRouter } from "react-router";
function getEntries(host) {
const startUrl = host.getStartUrl();
return startUrl == null ? undefined : [startUrl];
}
/**
* Dynamic router
* @param props Props
* @returns Component
*/
export function DynamicRouter(props) {
// Destruct
const { basename, children } = props;
// Layout
const host = BridgeUtils.host;
return host == null ? (_jsx(BrowserRouter, { basename: basename, children: children })) : (_jsx(MemoryRouter, { basename: basename, initialEntries: getEntries(host), children: children }));
}
/**
* Create dynamic router
* @param routes Routes
* @param opts Options
* @returns Router
*/
export function createDynamicRouter(routes, opts) {
// Is host?
const host = BridgeUtils.host;
if (host == null) {
return createBrowserRouter(routes, opts);
}
else {
return createMemoryRouter(routes, opts);
}
}