No Description

App.js 2.6KB

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