import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; import React, { useCallback } from 'react'; import { connect } from '../../../base/redux'; import { DialInSummary } from '../../../invite'; import Prejoin from '../../../prejoin/components/Prejoin.native'; import WelcomePage from '../../../welcome/components/WelcomePage'; import { isWelcomePageEnabled } from '../../../welcome/functions'; import { _ROOT_NAVIGATION_READY } from '../actionTypes'; import { rootNavigationRef } from '../rootNavigationContainerRef'; import { screen } from '../routes'; import { conferenceNavigationContainerScreenOptions, connectingScreenOptions, dialInSummaryScreenOptions, navigationContainerTheme, preJoinScreenOptions, welcomeScreenOptions } from '../screenOptions'; import ConnectingPage from './ConnectingPage'; import ConferenceNavigationContainer from './conference/components/ConferenceNavigationContainer'; const RootStack = createStackNavigator(); type Props = { /** * Redux dispatch function. */ dispatch: Function, /** * Is welcome page available? */ isWelcomePageAvailable: boolean } const RootNavigationContainer = ({ dispatch, isWelcomePageAvailable }: Props) => { const initialRouteName = isWelcomePageAvailable ? screen.welcome.main : screen.connecting; const onReady = useCallback(() => { dispatch({ type: _ROOT_NAVIGATION_READY, ready: true }); }, [ dispatch ]); return ( { isWelcomePageAvailable && <> } ); }; /** * Maps part of the Redux store to the props of this component. * * @param {Object} state - The Redux state. * @returns {Props} */ function mapStateToProps(state: Object) { return { isWelcomePageAvailable: isWelcomePageEnabled(state) }; } export default connect(mapStateToProps)(RootNavigationContainer);