it('renders Publication', () => { const navigator = StackNavigator({ Publication }) const tree = renderer.create( <navigator store={store} /> ).toJSON() expect(tree).toMatchSnapshot() })
render() { const { persistor, store } = configureStore(); const MainNavigator = TabNavigator( { welcome: { screen: WelcomeScreen }, auth: { screen: AuthScreen }, main: { screen: TabNavigator( { map: { screen: MapScreen }, deck: { screen: DeckScreen }, review: { screen: StackNavigator({ review: { screen: ReviewScreen }, settings: { screen: SettingsScreen } }) } }, { tabBarOptions: { labelStyle: { fontSize: 12 } } } ) } }, { navigationOptions: { tabBarVisible: false }, lazy: true } ); return ( <Provider store={store}> <PersistGate persistor={persistor}> <View style={styles.container}> <MainNavigator /> </View> </PersistGate> </Provider> ); }
render() { const MainNavigator = TabNavigator({ welcome: { screen: WelcomeScreen }, auth: { screen: AuthScreen }, main: { screen: TabNavigator({ map: { screen: MapScreen }, deck: { screen: DeckScreen }, review: { screen: StackNavigator({ review: { screen: ReviewScreen }, settings: { screen: SettingsScreen }, }) } }, { lazy: true, tabBarOptions: { labelStyle: { fontSize: 12, } }, tabBarPosition: 'bottom', swipeEnabled: false, }) } }, /* React Navigation loads all of the pages eagerly, so we need to * delay AuthScreen from loading so the FB popup doesn't come up * unless we've clicked it. */ { lazy: true, navigationOptions: { /* Hide the tab bars */ tabBarVisible: false } }); return ( <Provider store={ store }> <MainNavigator /> </Provider> ); }
export const createRootNav = (signedIn = false) => { return StackNavigator( { SignedIn: { screen: MainStack, }, SignedOut: { screen: LoginStack, }, Settings: { screen: SettingsStack } }, { headerMode: "none", mode: "modal", initialRouteName: signedIn ? "SignedIn" : "SignedOut" } ); };
import { PersistGate } from 'redux-persist/es/integration/react'; import { withNetworkConnectivity } from 'react-native-offline'; import createStore from './createStore'; // Persist Loading compoonent import PersistLoading from './components/persist-loading'; // Screens import HomeScreen from './screens/home'; const { persistor, store } = createStore(); const onBeforeLift = () => {}; const AppStart = StackNavigator({ Home: { screen: HomeScreen }, }, { cardStyle: { backgroundColor: '#fff', }, }); // Wrapped App component with HOC from react-native-offline const App = withNetworkConnectivity({ withRedux: true, })(AppStart); // Root component function Root() { return ( <Provider store={store}> <PersistGate loading={<PersistLoading />} onBeforeLift={onBeforeLift} persistor={persistor}>
const imageFor = ({ image, activeImage }) => ({ focused }) => { return ( <Image source={focused ? activeImage : image} width={18} height={24} resizeMode="contain" /> ); }; const HomeStack = StackNavigator({ Home: { screen: Home, navigationOptions: { header: () => null, }, }, }); const ProfileStack = StackNavigator({ Profile: { screen: Profile, navigationOptions: ({ navigation }) => ({ header: () => <Header title={i18n.t('label_header_profile')} rightButtonImage={HEADER_BUTTONS_IMAGES.settings} onPressRightButton={() => { navigation.navigate('Settings'); }}
const AppNavigator = StackNavigator( { Home: { screen: HomeViewContainer, navigationOptions: { header: null, }, }, Login: { screen: LoginViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, Settings: { screen: SettingsViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, FeedbackMenu: { screen: FeedbackMenu, navigationOptions: { header: null, }, }, Activity: { screen: ActivityViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, Mood: { screen: MoodViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, FreeWord: { screen: FreeWordViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, Record: { screen: RecordViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, Write: { screen: WriteViewContainer, navigationOptions: { headerLeft: <BackButton />, }, }, Ending: { screen: EndingViewContainer, navigationOptions: { headerLeft: null, }, }, }, { transitionConfig: () => ({ screenInterpolator: sceneProps => { return CardStackStyleInterpolator.forHorizontal(sceneProps); }, }), }, );
import Screens from "./screens"; import Site from "./site"; import SiteManager from "./site_manager"; import SafariView from "react-native-safari-view"; import SafariWebAuth from "react-native-safari-web-auth"; import AsyncStorage from "@react-native-community/async-storage"; const ChromeCustomTab = NativeModules.ChromeCustomTab; const AndroidToken = NativeModules.AndroidToken; const AppNavigator = StackNavigator( { Home: { screen: Screens.Home }, Notifications: { screen: Screens.Notifications }, WebView: { screen: Screens.WebView } }, { mode: "modal", headerMode: "none" } ); class Discourse extends React.Component { constructor(props) { super(props); this._siteManager = new SiteManager(); this._handleAppStateChange = () => { console.log("Detected appstate change " + AppState.currentState); if (AppState.currentState === "inactive") {
let headerOptions = { headerStyle: { backgroundColor: "#FFFFFF" }, headerLeft: <Logo /> }; // On application start, read saved state from disk. readDecks().then(decks => { store.dispatch(loadData(decks)); }); const Navigator = StackNavigator({ Home: { screen: DeckScreen, navigationOptions: headerOptions }, Review: { screen: ReviewScreen, navigationOptions: headerOptions }, CardCreation: { screen: NewCardScreen, path: "createCard/:deckID", navigationOptions: headerOptions } }); class App extends Component { render() { return ( <Provider store={store}> <Navigator /> </Provider> ); } }
export const AppNavigator = StackNavigator({ WelcomeScreen: { screen: WelcomeScreen }, TabScreen: { screen: NavigatorWrappingScreen }, DetailsScreen: { screen: DetailsScreen, }, TempScreen: { screen: TempScreen }, Temp2Screen: { screen: Temp2Screen }, ArticleListScreen: { screen: ArticleListScreen }, WeatherScreen: { screen: WeatherScreen }, ProgressViewScreen: { screen: ProgressViewScreen }, WeatherWebScreen: { screen: WeatherWebScreen }, FloderScreen: { screen: FloderScreen }, TestListScreen: { screen: TestListScreen } },{ mode: 'card', headerMode: 'float', navigationOptions: { headerTitleAllowFontScaling: false, headerStyle: { backgroundColor: '#FFFFFF', height: 44, // iPhone x 44 + 44, paddingTop: 0, // iPhone x 44 // borderBottomColor: 'red', borderBottomWidth:0, backgroundColor: 'orange' } } });
* https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { Platform, StyleSheet, Text, View } from 'react-native'; import { StackNavigator } from 'react-navigation'; import Home from './Screens/Home'; import Actions from './Screens/Actions'; import Comedy from './Screens/Comedy'; import Drama from './Screens/Drama'; import Details from './Screens/Details'; const App = StackNavigator ({ home : {screen: Home}, action : {screen: Actions}, drama : {screen: Drama}, comedy : {screen: Comedy}, details : {screen: Details} }, { initialRouteName: 'home', }) export default App;
export const HomeStack = StackNavigator({ _Welcome: { screen: Welcome, navigationOptions: { header: null } }, _Home: { screen: Home, navigationOptions: { header: null } }, _PanoramaRoom: { screen: PanoramaRoom, navigationOptions: { header: null } }, _ListHomeStay: { screen: ListHomeStay, navigationOptions: { header: null } }, _MapsPage: { screen: MapsPage, navigationOptions: { header: null } }, _ListRoom: { screen: ListRoom, navigationOptions: { header: null } }, _Details:{ screen: Details, navigationOptions: { header: null } }, _MapNavigate: { screen: MapNavigate, navigationOptions: { header: null } }, _formInfo: { screen: formInfo, navigationOptions: { header: null } }, _QR: { screen: QR, navigationOptions: { header: null } }, _TienIch: { screen: TienIch, navigationOptions: { header: null } }, })
/> ); }, }), tabBarComponent: TabBarBottom, tabBarPosition: 'bottom', swipeEnabled: false, animationEnabled: false }) // TODO: Drop upload screen should go in a separate navigator const AppNavigator = StackNavigator({ // Login: { screen: LoginScreen }, Home: { screen: PrimaryNavigator }, Login: { screen: LoginScreen }, Signup: { screen: SignupScreen } }, { navigationOptions: ({ screenProps }) => ({ headerStyle: { backgroundColor: AppColors.primaryDark }, // header: (props) => <Navbar {...props} />, // initialRouteName: 'Launch' // TODO: prevent header from showing on home screen // TODO: set initial screen to launch screen headerMode: "screen" }) }) export default AppNavigator
import { StackNavigator } from 'react-navigation'; const ItemsScreen = require('./itemList'); const LoginScreen = require('./login'); const AppNavigator = StackNavigator({ Login: { screen: LoginScreen }, Items: { screen: ItemsScreen } }); module.exports = AppNavigator;
headerTintColor: '#ffffff', headerStyle: { backgroundColor: '#333645' }, headerLeft: () => { if (!navigation.state.routeName) { return <Text style={{ color: '#fff', paddingLeft: 10 }}>menu</Text> } return(<Text style={{ color: '#fff', paddingLeft: 10 }} onPress={ () => {navigation.goBack()} }>voltar</Text>); }, headerRight: ( <View style={{paddingRight: 20}}> <Svg image="#icon-star" /> </View> ), } }; export default StackNavigator({ home: { screen: HomePage, navigationOptions: navigationOptions.bind(this, 'Home Page'), }, article: { screen: ArticlePage, navigationOptions: navigationOptions.bind(this, 'Article Page'), }, }, { mode: 'modal', });
// Manifest of possible screens const PrimaryNav = StackNavigator({ GradientsGridScreen: { screen: GradientsGridScreen, navigationOptions: { title: 'Showcase', headerTitleStyle: { fontWeight: 'bold', }, // headerStyle: { // display: 'none', // }, } }, FavoritesGridScreen: { screen: FavoritesGridScreen, navigationOptions: { title: 'Favorites', headerTitleStyle: { fontWeight: 'bold', } } }, }, { // Default config for all screens initialRouteName: 'GradientsGridScreen', navigationOptions: { headerStyle: styles.header } })
import { StackNavigator } from 'react-navigation'; import Gallery from './screens/Gallery'; import PlaceDetail from './screens/PlaceDetail'; const SimpleApp = StackNavigator({ Home: { screen: Gallery }, Detail: { screen: PlaceDetail } }); export default SimpleApp;
} export default StackNavigator( { Decks: { screen: Decks, navigationOptions }, Deck: { screen: Deck, navigationOptions }, AddQuestion: { screen: AddQuestion, navigationOptions }, Quiz: { screen: Quiz, navigationOptions }, AddDeck: { screen: AddDeck, navigationOptions } }, { cardStyle: { backgroundColor: white } } )
// @flow import React from 'react'; import { connect } from 'react-redux'; import { addNavigationHelpers, StackNavigator, type NavigationState } from 'react-navigation'; import Home from './containers/Home'; import { addListener } from './redux/react-navigation'; export const Navigator = StackNavigator( { Home: { screen: Home }, }, { headerMode: 'none' }, ); type Props = { dispatch: Function, nav: NavigationState }; const NavigatorWithState = (props: Props) => ( <Navigator navigation={addNavigationHelpers({ dispatch: props.dispatch, state: props.nav, addListener, })} /> ); const mapStateToProps = state => ({ nav: state.nav }); export default connect(mapStateToProps)(NavigatorWithState);
import { StackNavigator } from 'react-navigation' import TutorialScreen from '../Containers/LaunchScreen' import styles from './Styles/NavigationStyles' // Manifest of possible screens export default StackNavigator({ TutorialScreen: { screen: TutorialScreen, } }, { // Default config for all screens headerMode: 'none', initialRouteName: 'TutorialScreen', navigationOptions: { headerStyle: styles.header } })
import {AppRegistry, Text, View, Button} from 'react-native'; import {StackNavigator, TabNavigator} from 'react-navigation'; import CardStackStyleInterpolator from 'react-navigation/src/views/CardStackStyleInterpolator'; import Detail from './components/Screen/Detail' import MyTabNavigator from './components/Navigator/MyTabNavigator'; const MyNative = StackNavigator({ Home: { screen: MyTabNavigator }, Detail: { path: 'detail', screen: Detail } }, { headerMode: 'screen', transitionConfig: () => ({screenInterpolator: CardStackStyleInterpolator.forHorizontal}), navigationOptions: { headerTitleStyle: { fontSize: 14, color: '#fff' }, headerTintColor: '#fff', headerStyle: { backgroundColor: '#3b92e9' } } }); AppRegistry.registerComponent('MyNative', () => MyNative);
const RootStack = StackNavigator( { Login: {screen: Login_Screen}, Register: { screen: Register_Screen}, Forgot_Password:{screen:Forgot_Screen}, Category:{screen:Category_Screen}, Testing:{screen:Testing_Screen}, }, { initialRouteName: 'Testing', //this decides the starting page when app runs navigationOptions:{ headerLeft: null, headerStyle: { backgroundColor: 'white', //borderBottomWidth:1, borderColor:'gray', }, headerTitleStyle: { width: '90%', //this may need changes later, unknown textAlign: 'center', //effects due to different sizes fontWeight:'bold', fontSize:24, color:'orange' }, } } );
import CountryScreen from "../screens/Country/Country.screen"; const routes = { Home: { screen: HomeScreen }, Review: { screen: ReviewScreen }, Country: { screen: CountryScreen } }; const navigator = StackNavigator(routes, { navigationOptions: { headerStyle: { backgroundColor: '#eee', height: 40, paddingBottom: 20 }, headerTintColor: '#999', headerTitleStyle: { fontWeight: 'bold', height: 20 }, headerMode: "none" } }); export default navigator;
import HistoryScreen from './containers/HistoryScreen'; import AnalyticScreen from './containers/AnalyticScreen'; import SettingsScreen from './containers/SettingsScreen'; const DrawerNav = DrawerNavigator( { Wallet: { screen: WalletScreen }, History: { screen: HistoryScreen }, Analytic: { screen: AnalyticScreen }, Settings: { screen: SettingsScreen } }, { initialRouteName: 'Wallet' } ); const StackNav = StackNavigator( { SignIn: { screen: SignInScreen }, SignUp: { screen: SignUpScreen }, Main: { screen: DrawerNav } }, { initialRouteName: 'SignIn', headerMode: 'none' } ); export default StackNav;
import Expo from 'expo'; import React from 'react'; import { StackNavigator } from 'react-navigation'; import { Icon } from 'react-native-elements'; import Pricing from '../views/pricing'; const PricingDrawerItem = StackNavigator({ Pricing: { screen: Pricing, navigationOptions: ({ navigation }) => ({ title: 'Pricing', headerLeft: ( <Icon name="menu" size={30} type="entypo" iconStyle={{ paddingLeft: 10 }} onPress={() => navigation.navigate('DrawerOpen')} /> ), }), }, }); PricingDrawerItem.navigationOptions = { drawerLabel: 'Pricing', drawerIcon: ({ tintColor }) => ( <Icon name="attach-money" size={30}
</Image> ); } } class ChatScreen extends React.Component { static navigationOptions = ({navigation }) => ({ title: `Chat with ${navigation.state.params.user}`, }); render() { const { params } = this.props.navigation.state; return ( <View> <Text>Chat with {params.user}</Text> </View> ); } } const ExploringTheUnconscious =StackNavigator({ Home: { screen: HomeScreen }, Chat: { screen: ChatScreen }, Login: { screen: LoginView }, Explore: { screen: ExploreView}, }); AppRegistry.registerComponent('ExploringTheUnconscious', () => ExploringTheUnconscious);
import { StackNavigator } from 'react-navigation'; import Routes from './routes'; export const AppNavigator = StackNavigator(Routes, { navigationOptions: { title: ({ state }) => { if (state.params) { return `${state.params.title}`; } } } });
/** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry } from 'react-native'; import { StackNavigator } from 'react-navigation'; import { LoginScreen } from './components/LoginScreen.js' const ExpenseManager = StackNavigator({ // TODO: Ofcourse we have to add a lot more logic here // and a lot of handlers for multiple screens Login: { screen: LoginScreen, navigationOptions: { header: null } } }); AppRegistry.registerComponent('ExpenseManager', () => ExpenseManager);
* Copyright (c) 2017 Sixlab. All rights reserved. * * Under the GPLv3(AKA GNU GENERAL PUBLIC LICENSE Version 3). * see http://www.gnu.org/licenses/gpl-3.0-standalone.html * * For more information, please see * https://sixlab.cn/ * * @time: 2017/9/14 22:31 * @author: Patrick <*****@*****.**> */ import { StackNavigator, } from 'react-navigation'; import FilmPage from '../pages/FilmPage'; export default FirstNavigator = StackNavigator({ FirstList: { screen: FilmPage, }, FirstDetail: { screen: FilmPage, }, }, { initialRouteParams: { testParam: function (msg) { alert(msg) } } });
import { StackNavigator } from 'react-navigation'; import Todos from '../screens/Todos'; import AddTodo from '../screens/AddTodo'; export default StackNavigator( { Todos: { screen: Todos, navigationOptions: { headerTitle: 'Todo List', }, }, AddTodo: { screen: AddTodo, navigationOptions: { headerTitle: 'Add a new Todo', }, }, }, { initialRouteName: 'Todos', headerMode: 'none', }, );