Aucune description

App.js 2.7KB

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