infrastructure-components
Version:
Infrastructure-Components configure the infrastructure of your React-App as part of your React-Components.
47 lines • 2.65 kB
JavaScript
"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