zmp-react
Version:
Build full featured iOS & Android apps using ZMP & React
39 lines (33 loc) • 1.36 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import { getComponentId } from './utils';
export 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: getComponentId(),
isAsync: !!initialRoute.route.asyncComponent,
props: _extends({
zmproute: initialRoute,
zmprouter: router
}, routeProps, initialRoute.params)
};
}
return {
initialPage: initialComponentData,
initialRoute: initialRoute
};
};