import React from 'react'; import PropTypes from 'prop-types'; import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; import { connect } from 'react-redux'; import { SafeAreaProvider, initialWindowMetrics } from 'react-native-safe-area-context'; import { defaultHeader, onNavigationStateChange } from './utils/navigation'; import Navigation from './lib/Navigation'; // Stacks import AuthLoadingView from './views/AuthLoadingView'; // SetUsername Stack import SetUsernameView from './views/SetUsernameView'; import OutsideStack from './stacks/OutsideStack'; import InsideStack from './stacks/InsideStack'; // SetUsernameStack const SetUsername = createStackNavigator(); const SetUsernameStack = () => ( ); // App const Stack = createStackNavigator(); const App = React.memo(({ root }) => { if (!root || root === 'background') { return null; } return ( { Navigation.setTopLevelNavigator(navigatorRef); }} onNavigationStateChange={onNavigationStateChange} > <> {root === 'loading' ? ( ) : null} {root === 'outside' || root === 'newServer' ? ( ) : null} {root === 'inside' ? ( ) : null} {root === 'setUsername' ? ( ) : null} ); }); const mapStateToProps = state => ({ root: state.app.root }); App.propTypes = { root: PropTypes.string }; const AppContainer = connect(mapStateToProps)(App); export default AppContainer;