UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

50 lines (38 loc) 1.64 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.getRouterInitialComponent = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _utils = require("./utils"); var getRouterInitialComponent = function getRouterInitialComponent(router, initialComponent) { var initialComponentData; var _router$getInitialUrl = router.getInitialUrl(), initialUrl = _router$getInitialUrl.initialUrl; var initialRoute = router.findMatchingRoute(initialUrl); var routeProps = {}; if (initialRoute && initialRoute.route && initialRoute.route.options) { routeProps = initialRoute.route.options.props; } var isMasterRoute = function isMasterRoute(route) { if (route.master === true) return true; if (typeof route.master === 'function') return route.master(router.app); return false; }; if (initialRoute && initialRoute.route && (initialRoute.route.component || initialRoute.route.asyncComponent) && !isMasterRoute(initialRoute.route)) { initialComponentData = { component: initialRoute.route.component || initialRoute.route.asyncComponent, initialComponent: initialComponent, id: (0, _utils.getComponentId)(), isAsync: !!initialRoute.route.asyncComponent, props: (0, _extends2.default)({ zmproute: initialRoute, zmprouter: router }, routeProps, initialRoute.params) }; } return { initialPage: initialComponentData, initialRoute: initialRoute }; }; exports.getRouterInitialComponent = getRouterInitialComponent;