From 3867e576413e7a8b8abd31bce1d0e58ec9dbe98a Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Thu, 21 May 2020 15:02:39 -0300 Subject: [PATCH] Switch stack --- app/AppContainer.js | 83 +++++++++++++++++++++++++++++++++++++++++++++ app/index.js | 71 ++------------------------------------ app/sagas/init.js | 11 +----- 3 files changed, 87 insertions(+), 78 deletions(-) create mode 100644 app/AppContainer.js diff --git a/app/AppContainer.js b/app/AppContainer.js new file mode 100644 index 000000000..f717761dd --- /dev/null +++ b/app/AppContainer.js @@ -0,0 +1,83 @@ +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 { 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 = ({ root }) => { + if (!root) { + return null; + } + + return ( + { + Navigation.setTopLevelNavigator(navigatorRef); + }} + onNavigationStateChange={onNavigationStateChange} + > + + <> + {root === 'loading' ? ( + + ) : null} + {root === 'outside' ? ( + + ) : 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; diff --git a/app/index.js b/app/index.js index f4a84363f..2e3ec2199 100644 --- a/app/index.js +++ b/app/index.js @@ -1,7 +1,5 @@ -import React, { useState } from 'react'; +import React from 'react'; import { Linking } from 'react-native'; -import { NavigationContainer } from '@react-navigation/native'; -import { createStackNavigator } from '@react-navigation/stack'; import { AppearanceProvider } from 'react-native-appearance'; import { Provider } from 'react-redux'; import RNUserDefaults from 'rn-user-defaults'; @@ -31,16 +29,7 @@ import { import { KEY_COMMAND } from './commands'; import Tablet, { initTabletNav } from './tablet'; import { SplitContext } from './split'; -import { defaultHeader, onNavigationStateChange } from './utils/navigation'; - -// App Stack -import AuthLoadingView from './views/AuthLoadingView'; - -// SetUsername Stack -import SetUsernameView from './views/SetUsernameView'; - -import OutsideStack from './stacks/OutsideStack'; -import InsideStack from './stacks/InsideStack'; +import AppContainer from './AppContainer'; RNScreens.enableScreens(); @@ -58,60 +47,6 @@ const parseDeepLinking = (url) => { return null; }; -// SetUsernameStack -const SetUsername = createStackNavigator(); -const SetUsernameStack = () => ( - - - -); - -const AuthContext = React.createContext(); - -// App -const Stack = createStackNavigator(); -export const App = () => { - const [loading] = useState(false); - - return ( - { - Navigation.setTopLevelNavigator(navigatorRef); - }} - onNavigationStateChange={onNavigationStateChange} - > - - - {loading ? ( - - ) : ( - <> - - - - - )} - - - - ); -}; - export default class Root extends React.Component { constructor(props) { super(props); @@ -223,7 +158,7 @@ export default class Root extends React.Component { render() { const { split, themePreferences, theme } = this.state; - let content = ; + let content = ; if (isTablet) { const { inside, showModal } = this.state; diff --git a/app/sagas/init.js b/app/sagas/init.js index ae47a1430..101e84ca8 100644 --- a/app/sagas/init.js +++ b/app/sagas/init.js @@ -113,16 +113,7 @@ const restore = function* restore() { } }; -const start = function* start({ root, text }) { - if (root === 'inside') { - yield Navigation.navigate('InsideStack'); - } else if (root === 'setUsername') { - yield Navigation.navigate('SetUsernameStack'); - } else if (root === 'outside') { - yield Navigation.navigate('OutsideStack'); - } else if (root === 'loading') { - yield Navigation.navigate('AuthLoading', { text }); - } +const start = function start() { RNBootSplash.hide(); };