1import { BottomTabNavigationProp } from '@react-navigation/bottom-tabs';
2import { createStackNavigator } from '@react-navigation/stack';
3import * as React from 'react';
4
5import TabIcon from '../components/TabIcon';
6import ExpoApis from '../screens/ExpoApisScreen';
7import { Screens } from './ExpoApis';
8import getStackConfig from './StackConfig';
9
10const Stack = createStackNavigator();
11
12function ExpoApisStackNavigator(props: { navigation: BottomTabNavigationProp<any> }) {
13  return (
14    <Stack.Navigator {...props} {...getStackConfig(props)}>
15      <Stack.Screen name="ExpoApis" options={{ title: 'APIs in Expo SDK' }} component={ExpoApis} />
16
17      {Object.keys(Screens).map(name => (
18        <Stack.Screen
19          name={name}
20          key={name}
21          component={Screens[name]}
22          options={(Screens[name] as any).navigationOptions ?? {}}
23        />
24      ))}
25    </Stack.Navigator>
26  );
27}
28const icon = ({ focused }: { focused: boolean }) => {
29  return <TabIcon name="code-tags" focused={focused} />;
30};
31ExpoApisStackNavigator.navigationOptions = {
32  title: 'APIs',
33  tabBarLabel: 'APIs',
34  tabBarIcon: icon,
35  drawerIcon: icon,
36};
37
38export default ExpoApisStackNavigator;
39