Geen omschrijving

App.js 2.4KB

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