UNPKG

@berish/mvc-router5-plugin

Version:

Router5 plugin for @berish/mvc-core

32 lines 1.75 kB
"use strict"; 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