Advertisement
Guest User

app.js

a guest
Sep 18th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, {Component} from 'react';
  2. import {createAppContainer} from 'react-navigation';
  3. import {createStackNavigator} from 'react-navigation-stack';
  4. import {createBottomTabNavigator} from 'react-navigation-tabs';
  5. import {
  6.   Container,
  7.   Header,
  8.   Content,
  9.   Body,
  10.   Text,
  11.   Footer,
  12.   FooterTab,
  13.   Button,
  14.   Left,
  15.   Icon,
  16.   Right,
  17.   Fab,
  18.   View,
  19.   Accordion,
  20. } from 'native-base';
  21. import {StyleSheet, StatusBar, ScrollView} from 'react-native';
  22. import faker from 'faker';
  23. import type Moment from 'moment';
  24. import moment from 'moment';
  25. import Calendar, {visibleMonthAndYear} from './src/calendar/Calendar';
  26. import Events from './src/events/Events';
  27. import Ionicons from 'react-native-vector-icons/Ionicons';
  28.  
  29. var plLocale = require('moment/locale/pl');
  30. moment.locale('pl', plLocale);
  31.  
  32. export type EventType = {
  33.   date: Moment,
  34.   title: string,
  35.   description: string,
  36.   image: string,
  37. };
  38.  
  39. const FAKE_EVENTS: Array<EventType> = (() => {
  40.   const startDay = moment()
  41.     .subtract(5, 'days')
  42.     .startOf('day');
  43.   return [...new Array(64)].map(_ => ({
  44.     date: startDay.add(4, 'hours').clone(),
  45.     title: faker.company.companyName(),
  46.     description: faker.lorem.sentence(),
  47.     // random dimensions to get random urls
  48.     image: faker.image.nightlife(
  49.       Math.floor(Math.random() * 200) + 100,
  50.       Math.floor(Math.random() * 200) + 100,
  51.     ),
  52.   }));
  53. })();
  54.  
  55. //filter events by date
  56. const filterEvents = (date: Moment): ?Array<EventType> =>
  57.   FAKE_EVENTS.filter(event => event.date.isSame(date, 'day'));
  58.  
  59.  
  60. class HomeScreen extends Component {
  61.   state = {
  62.     events: filterEvents(moment()),
  63.   };
  64.  
  65.   onSelectDate = (date: Moment) => {
  66.    
  67.     this.setState({events: filterEvents(date)})
  68.   };
  69.  
  70.  
  71.  
  72.   constructor(props) {
  73.     super(props);
  74.     this.state = {
  75.       active: false,
  76.     };
  77.   }
  78.  
  79.   render() {
  80.     const {events} = this.state;
  81.  
  82.     return (
  83.       <Container>
  84.         <Header style={{backgroundColor: '#ff8000'}}>
  85.           <View>
  86.             <StatusBar barStyle="light-content" />
  87.           </View>
  88.           <Left>
  89.             <View>
  90.              
  91.             </View>
  92.           </Left>
  93.           <Right>
  94.             <Button transparent>
  95.               <Icon name="md-funnel" style={{color: 'white'}} />
  96.             </Button>
  97.           </Right>
  98.         </Header>
  99.         <Content>
  100.           <View style={styles.container}>
  101.             <StatusBar hidden={false} />
  102.             <Calendar
  103.               showDaysAfterCurrent={30}
  104.               showDaysBeforeCurrent={30}
  105.               onSelectDate={this.onSelectDate}
  106.  
  107.             />
  108.             <Events events={events} />
  109.           </View>
  110.         </Content>
  111.         <View>
  112.           <Fab
  113.             active={this.state.active}
  114.             direction="up"
  115.             containerStyle={{}}
  116.             style={(styles.fab, {backgroundColor: '#DD5144'})}
  117.             onPress={() => this.setState({active: !this.state.active})}>
  118.             <Icon name="ios-paw" />
  119.             <Button style={{backgroundColor: '#ebd034'}}>
  120.               <Icon name="md-journal" />
  121.             </Button>
  122.             <Button style={{backgroundColor: '#ebd034'}}>
  123.               <Icon name="ios-create" />
  124.             </Button>
  125.           </Fab>
  126.         </View>
  127.       </Container>
  128.     );
  129.   }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement