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;