Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import { View, ScrollView, ImageBackground, StyleSheet, Linking } from 'react-native';
  3. import { List, ListItem, Text, Left, Right, Body, Button } from 'native-base';
  4. import CustomIcon from '../components/CustomIcon.js';
  5. import NavigationService from '../components/NavigationService.js';
  6. import RF from 'react-native-responsive-fontsize';
  7. import { widthPercentageToDP as wp, heightPercentageToDP as hp } from 'react-native-responsive-screen';
  8. import { Consumer } from '../context';
  9. import Intro from '../pages/Intro';
  10. import I18n from '../locales';
  11. import SvgUri from 'react-native-svg-uri';
  12. var ls = require('react-native-local-storage');
  13.  
  14. export default class Home extends Component {
  15.  
  16.     constructor(props) {
  17.         super(props);
  18.         this.state = {
  19.             timePassed: false,
  20.             default_intro_status: null
  21.         }
  22.     }
  23.  
  24.     async componentDidMount() {
  25.         let intro_status = await ls.get('intro_status');
  26.         if (intro_status === null) {
  27.             this.setState({ default_intro_status: 0 });
  28.             setTimeout(() => {
  29.                 this.setTimePassed();
  30.             }, 4000);
  31.         } else {
  32.             this.setState({ default_intro_status: intro_status });
  33.         }
  34.     }
  35.  
  36.     setTimePassed = async () => {
  37.         ls.save('intro_status', 1);
  38.         let intro_status = await ls.get('intro_status');
  39.         this.setState({ timePassed: true, default_intro_status: intro_status });
  40.     }
  41.  
  42.     render() {
  43.         if (this.state.default_intro_status === 0) {
  44.             return <Intro />;
  45.         }
  46.         return (
  47.             <View style={styles.container}>
  48.                 <ImageBackground source={require('../assets/home.png')} style={styles.imageBackground}>
  49.                     <View style={{ flex: 0.8 }}>
  50.                         <CustomIcon name='logo' size={80} style={styles.headerLogoStyle} />
  51.                         <Text style={styles.headerTextStyle}>Your key to the city</Text>
  52.                     </View>
  53.                     <View style={{ flex: 2 }}>
  54.                         <ScrollView style={styles.listViewStyle}>
  55.                             <List style={styles.listStyle}>
  56.                                 <ListItem style={styles.listItemStyle} onPress={() => NavigationService.navigate('GoBakuCard')} icon noBorder>
  57.                                     <Left style={styles.leftStyle}>
  58.                                         <CustomIcon name='gobakucard' size={15} style={styles.iconStyle} />
  59.                                     </Left>
  60.                                     <Body>
  61.                                         <Text style={styles.textStyle}>{I18n.t('gobakucardText')}</Text>
  62.                                     </Body>
  63.                                     <Right style={styles.rightStyle}>
  64.                                     </Right>
  65.                                 </ListItem>
  66.                                 <Consumer>
  67.                                     {value => {
  68.                                         const { items } = value;
  69.                                         return (
  70.                                             <React.Fragment>
  71.                                                 {items.filter(m => m.hide_from_mobile === false).map(m =>
  72.                                                     (m.template === 'basic-page') ? (<ListItem key={m.id} style={styles.listItemStyle} onPress={() => NavigationService.navigate('Transport', { url: m.url, page_type: m.title, type: 'imageView', title: m.title })} icon noBorder>
  73.                                                         <Left style={styles.leftStyle}>
  74.                                                             {(m.icon !== '') ? (<SvgUri
  75.                                                                 width="20"
  76.                                                                 height="20"
  77.                                                                 source={{ uri: m.icon }}
  78.                                                             />) : (<View></View>)}
  79.                                                         </Left>
  80.                                                         <Body>
  81.                                                             <Text style={styles.textStyle}>{m.title}</Text>
  82.                                                         </Body>
  83.                                                         <Right style={styles.rightStyle}>
  84.                                                         </Right>
  85.                                                     </ListItem>) : (<ListItem key={m.id} style={styles.listItemStyle} onPress={() => NavigationService.navigate('Page', { url: m.url, page_type: m.title, type: 'imageView', title: m.title })} icon noBorder>
  86.                                                         <Left style={styles.leftStyle}>
  87.                                                             {(m.icon !== '') ? (<SvgUri
  88.                                                                 width="20"
  89.                                                                 height="20"
  90.                                                                 source={{ uri: m.icon }}
  91.                                                             />) : (<View></View>)}
  92.                                                         </Left>
  93.                                                         <Body>
  94.                                                             <Text style={styles.textStyle}>{m.title}</Text>
  95.                                                         </Body>
  96.                                                         <Right style={styles.rightStyle}>
  97.                                                         </Right>
  98.                                                     </ListItem>)
  99.                                                 )}
  100.                                             </React.Fragment>
  101.                                         );
  102.                                     }
  103.                                     }
  104.                                 </Consumer>
  105.                                 <ListItem onPress={() => { Linking.openURL('https://ne.gobakucard.com/en/buy-now/') }} style={styles.listItemStyle} icon noBorder>
  106.                                     <Left style={styles.leftStyle}>
  107.                                         <CustomIcon name='buynow' size={15} style={styles.iconStyle} />
  108.                                     </Left>
  109.                                     <Body>
  110.                                         <Text style={styles.textStyle}>{I18n.t('buynowText')}</Text>
  111.                                     </Body>
  112.                                     <Right style={styles.rightStyle}>
  113.                                     </Right>
  114.                                 </ListItem>
  115.                             </List>
  116.                         </ScrollView>
  117.                     </View>
  118.                     <View style={styles.socialViewStyle}>
  119.                         <Button transparent>
  120.                             <CustomIcon name='instagram' size={50} style={styles.iconStyle} />
  121.                         </Button>
  122.                         <Button transparent>
  123.                             <CustomIcon name='facebook' size={50} style={styles.iconStyle} />
  124.                         </Button>
  125.                         <Button transparent>
  126.                             <CustomIcon name='youtube' size={50} style={styles.iconStyle} />
  127.                         </Button>
  128.                     </View>
  129.                 </ImageBackground>
  130.             </View>
  131.         );
  132.     }
  133.  
  134. }
  135. const styles = StyleSheet.create({
  136.     container: {
  137.         flex: 1
  138.     },
  139.     imageBackground: {
  140.         width: '100%',
  141.         height: '100%'
  142.     },
  143.     headerLogoStyle: {
  144.         color: '#fff',
  145.         paddingLeft: 20,
  146.         paddingTop: 20
  147.     },
  148.     headerTextStyle: {
  149.         color: '#fff',
  150.         paddingLeft: 20,
  151.         marginTop: -25,
  152.         paddingBottom: 20
  153.     },
  154.     listViewStyle: {
  155.         flexGrow: 1
  156.     },
  157.     listStyle: {
  158.        
  159.     },
  160.     listItemStyle: {
  161.         flex: 1,
  162.         backgroundColor: 'green',
  163.         paddingRight: 'auto',
  164.         paddingLeft: 'auto',
  165.     },
  166.     iconStyle: {
  167.         color: '#fff'
  168.     },
  169.     textStyle: {
  170.         color: '#fff',
  171.         fontSize: RF(2)
  172.     },
  173.     socialViewStyle: {
  174.         flexDirection: 'row',
  175.         padding: 20,
  176.         marginLeft: 'auto',
  177.         marginRight: 'auto'
  178.     },
  179.     leftStyle: {
  180.         paddingLeft: wp('30%')
  181.     },
  182.     rightStyle: {
  183.         paddingRight: wp('30%')
  184.     }
  185. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement