No Description

App.js 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // @flow
  2. import React, { Fragment } from 'react';
  3. import { SafeAreaView, StatusBar, View, Text, TouchableOpacity, StyleSheet } from 'react-native';
  4. import { createStackNavigator, createAppContainer } from 'react-navigation';
  5. // To add a screen, import it and add it in screens
  6. import FullScreen from './Full';
  7. import ViewshootScreen from './Viewshoot';
  8. import TransparencyScreen from './Transparency';
  9. import VideoScreen from './Video';
  10. import WebViewScreen from './WebView';
  11. import MapViewScreen from './MapView';
  12. import CanvasScreen from './Canvas';
  13. import GLReactV2Screen from './GLReactV2';
  14. import SVGUriScreen from './SVGUri';
  15. import ARTScreen from './ART';
  16. import ModalScreen from './Modal';
  17. const screens = {
  18. Full: {
  19. screen: FullScreen,
  20. },
  21. Video: {
  22. screen: VideoScreen,
  23. },
  24. WebView: {
  25. screen: WebViewScreen,
  26. },
  27. SVGUri: {
  28. screen: SVGUriScreen,
  29. },
  30. ART: {
  31. screen: ARTScreen,
  32. },
  33. Canvas: {
  34. screen: CanvasScreen,
  35. },
  36. MapView: {
  37. screen: MapViewScreen,
  38. },
  39. GLReactV2: {
  40. screen: GLReactV2Screen,
  41. },
  42. Modal: {
  43. screen: ModalScreen,
  44. },
  45. Viewshoot: {
  46. screen: ViewshootScreen,
  47. },
  48. Transparency: {
  49. screen: TransparencyScreen,
  50. },
  51. };
  52. ///////////////////////////////////////////////////
  53. class HomeScreen extends React.Component {
  54. static navigationOptions = {
  55. title: 'Home',
  56. };
  57. render() {
  58. const { navigation } = this.props;
  59. return (
  60. <Fragment>
  61. <StatusBar barStyle="dark-content" />
  62. <SafeAreaView>
  63. {Object.keys(screens).map(key => (
  64. <TouchableOpacity key={key} onPress={() => navigation.navigate(key)}>
  65. <View style={styles.entry}>
  66. <Text style={styles.entryText}>
  67. {(screens[key].screen.navigationOptions &&
  68. screens[key].screen.navigationOptions.title) ||
  69. key}
  70. </Text>
  71. </View>
  72. </TouchableOpacity>
  73. ))}
  74. </SafeAreaView>
  75. </Fragment>
  76. );
  77. }
  78. }
  79. const styles = StyleSheet.create({
  80. entry: {
  81. paddingVertical: 10,
  82. paddingHorizontal: 20,
  83. },
  84. entryText: {
  85. fontSize: 22,
  86. color: '#36f',
  87. },
  88. });
  89. const AppNavigator = createStackNavigator({
  90. Home: {
  91. screen: HomeScreen,
  92. },
  93. ...screens,
  94. });
  95. export default createAppContainer(AppNavigator);