UNPKG

infrastructure-components

Version:

Infrastructure-Components configure the infrastructure of your React-App as part of your React-Components.

47 lines 2.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = __importDefault(require("react")); const react_router_1 = require("react-router"); const react_router_dom_1 = require("react-router-dom"); //import {useContext} from "react" //import {__RouterContext} from "react-router" const redirect_w_status_1 = __importDefault(require("./redirect-w-status")); const attach_request_1 = __importDefault(require("../components/attach-request")); ; const RoutedApp = (props) => { //.filter(({ customType }) => customType !== Types.IFRAME) // (p) => render(Object.assign({},p, props)) //console.log("RoutedApp: " , useContext(__RouterContext)) const routes = props.routes.map(({ path, exact, component, render }, i) => { console.log("routepath: ", path); // NOT using routeConfig.pathToRoute(path) for the Router includes a basename already! return render !== undefined ? react_1.default.createElement(react_router_dom_1.Route, { key: 'ROUTE_' + i, exact: exact, path: path, render: render }) : react_1.default.createElement(react_router_dom_1.Route, { key: 'ROUTE_' + i, exact: exact, path: path, component: component }); }); const redirects = props.redirects.map(({ from, to, status }, i) => react_1.default.createElement(redirect_w_status_1.default, { key: 'REDIRECT_' + i, from: from, to: to, status: status })); return react_1.default.createElement(react_router_dom_1.Switch, null, routes, redirects); }; /** * TODO when we use an internal link that attaches a path-parameter, do we get this here? maybe we need to force a reload from the server * * @param routes * @param redirects * @param basename * @returns {any} */ exports.createClientApp = (routes, redirects, basename) => { return react_1.default.createElement(react_router_dom_1.BrowserRouter, { basename: basename }, react_1.default.createElement(attach_request_1.default, null, react_1.default.createElement(RoutedApp, { routes: routes, redirects: redirects }))); }; exports.createServerApp = (routes, redirects, basename, url, context, request) => { return react_1.default.createElement(react_router_1.StaticRouter, { context: context, location: url, basename: basename }, react_1.default.createElement(attach_request_1.default, { request: request }, react_1.default.createElement(RoutedApp, { routes: routes, redirects: redirects }))); }; //# sourceMappingURL=routed-app.js.map