@@ -3,6 +3,7 @@ import { NavigatorProps, RouteConfig } from '@bluebase/components';
33
44import { ScreenProps } from '../types' ;
55import { createNavigatorScreenComponent } from './createNavigatorScreenComponent' ;
6+ import get from 'lodash.get' ;
67import { getNavigatorFn } from './getNavigatorFn' ;
78
89export interface PreparedNavigatorProps extends NavigatorProps {
@@ -29,16 +30,20 @@ export const preparePaths = (
2930
3031 // If routes prop is a thunk, resolve it.
3132 // Then map it to have new paths
32- const routes = resolveThunk ( navigator . routes || [ ] , screenProps ) . map ( ( r : RouteConfig ) => {
33- // Do we have a navigator here? If yes then recurcively prepare its paths as well
34- const resolvedNavigator = r . navigator ? preparePaths ( r . navigator , screenProps , BB ) : undefined ;
35-
36- // Do we have a screen here? If yes then resolve the screen component
37- const component = createNavigatorScreenComponent ( r , BB ) ;
38-
39- // Return the final object
40- return { ...r , navigator : resolvedNavigator , component } ;
41- } ) ;
33+ const routes = resolveThunk ( get ( navigator , 'routes' , [ ] as RouteConfig [ ] ) , screenProps ) . map (
34+ ( r : RouteConfig ) => {
35+ // Do we have a navigator here? If yes then recurcively prepare its paths as well
36+ const resolvedNavigator = r . navigator
37+ ? preparePaths ( r . navigator , screenProps , BB )
38+ : undefined ;
39+
40+ // Do we have a screen here? If yes then resolve the screen component
41+ const component = createNavigatorScreenComponent ( r , BB ) ;
42+
43+ // Return the final object
44+ return { ...r , navigator : resolvedNavigator , component } ;
45+ }
46+ ) ;
4247
4348 // Merge and return incoming navigator with newer routes
4449 return { ...navigator , NavigatorComponent, routes } ;
0 commit comments