1*91d99453SEvan Baconimport { BottomTabNavigationProp } from '@react-navigation/bottom-tabs';
2*91d99453SEvan Baconimport { createStackNavigator } from '@react-navigation/stack';
3*91d99453SEvan Baconimport * as React from 'react';
4*91d99453SEvan Bacon
5*91d99453SEvan Baconimport TabIcon from '../components/TabIcon';
6*91d99453SEvan Baconimport { Layout } from '../constants';
7*91d99453SEvan Baconimport ExpoComponents from '../screens/ExpoComponentsScreen';
8*91d99453SEvan Baconimport { Screens } from './ExpoComponents';
9*91d99453SEvan Baconimport StackConfig from './StackConfig';
10*91d99453SEvan Bacon
11*91d99453SEvan Baconconst Stack = createStackNavigator();
12*91d99453SEvan Bacon
13*91d99453SEvan Baconfunction ExpoComponentsStackNavigator(props: { navigation: BottomTabNavigationProp<any> }) {
14*91d99453SEvan Bacon  return (
15*91d99453SEvan Bacon    <Stack.Navigator {...props} {...StackConfig}>
16*91d99453SEvan Bacon      <Stack.Screen
17*91d99453SEvan Bacon        name="ExpoComponents"
18*91d99453SEvan Bacon        options={{ title: Layout.isSmallDevice ? 'Expo SDK Components' : 'Components in Expo SDK' }}
19*91d99453SEvan Bacon        component={ExpoComponents}
20*91d99453SEvan Bacon      />
21*91d99453SEvan Bacon      {Object.keys(Screens).map(name => (
22*91d99453SEvan Bacon        <Stack.Screen
23*91d99453SEvan Bacon          name={name}
24*91d99453SEvan Bacon          key={name}
25*91d99453SEvan Bacon          component={Screens[name]}
26*91d99453SEvan Bacon          options={(Screens[name] as any).navigationOptions ?? {}}
27*91d99453SEvan Bacon        />
28*91d99453SEvan Bacon      ))}
29*91d99453SEvan Bacon    </Stack.Navigator>
30*91d99453SEvan Bacon  );
31*91d99453SEvan Bacon}
32*91d99453SEvan BaconExpoComponentsStackNavigator.navigationOptions = {
33*91d99453SEvan Bacon  title: 'Expo Components',
34*91d99453SEvan Bacon  tabBarLabel: 'Components',
35*91d99453SEvan Bacon  tabBarIcon: ({ focused }: { focused: boolean }) => {
36*91d99453SEvan Bacon    return <TabIcon name="cards-playing-outline" focused={focused} />;
37*91d99453SEvan Bacon  },
38*91d99453SEvan Bacon};
39*91d99453SEvan Baconexport default ExpoComponentsStackNavigator;
40