@berish/mvc-router5-plugin
Version:
Router5 plugin for @berish/mvc-core
32 lines • 1.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Router5Component = void 0;
const react_1 = __importDefault(require("react"));
const router5_1 = require("router5");
const react_router5_1 = require("react-router5");
const mvc_core_1 = require("@berish/mvc-core");
const router5Context_1 = require("./router5Context");
const util_1 = require("./util");
function Router5Component(props) {
const { mapNameToController } = react_1.default.useContext(router5Context_1.router5Context);
const routerNames = mapNameToController.map((m) => m[0]);
return (react_1.default.createElement(react_router5_1.Route, null, ({ route }) => {
try {
if (!route || !route.name || route.name === router5_1.constants.UNKNOWN_ROUTE || routerNames.indexOf(route.name) === -1)
throw new Error('not found');
const controllerClass = mapNameToController.filter((m) => m[0] === route.name)[0][1];
route.params = (0, util_1.parseQueryParameters)(route.params);
return react_1.default.createElement(mvc_core_1.RenderComponent, Object.assign({ controllerClass: controllerClass }, route.params));
}
catch (error) {
if (props.notFoundControllerClass)
return react_1.default.createElement(mvc_core_1.RenderComponent, { controllerClass: props.notFoundControllerClass, error: error });
return react_1.default.createElement(react_1.default.Fragment, null, "Not found");
}
}));
}
exports.Router5Component = Router5Component;
//# sourceMappingURL=router5Component.js.map