UNPKG

@etsoo/react

Version:

TypeScript ReactJs UI Independent Framework

36 lines (35 loc) 1.08 kB
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); } }