diff --git a/MobileApp/App.js b/MobileApp/App.js index 245642c..4a824b4 100644 --- a/MobileApp/App.js +++ b/MobileApp/App.js @@ -1,25 +1,37 @@ import React from 'react'; -import { StyleSheet, View, Image } from 'react-native'; -//import SignIn from './src/components/sign-in' +import {StyleSheet, View, Image, NavigatorIOS} from 'react-native'; +import SignIn from './src/components/sign-in' //import HelloWorld from './src/hello-world' import EventList from './src/components/event-list' import fixtures from './fixtures.json' import img from './assets/images/logo.png' - +import EventScreen from './src/components/event-screen-1' const events = Object.entries(fixtures.events).map(([uid, event]) => ({...event, uid})) +/*export default class App extends React.Component { + render() { + return ( + + + ); + } +}*/ + export default class App extends React.Component { render() { return ( - - + + {/**/} - ); + ) } } @@ -32,9 +44,9 @@ const styles = StyleSheet.create({ paddingTop: 30, paddingBottom: 30, }, - image: { - width: '100%', - height: 100 - } + image: { + width: '100%', + height: 100 + } }); diff --git a/MobileApp/package.json b/MobileApp/package.json index bb23e24..fff8191 100644 --- a/MobileApp/package.json +++ b/MobileApp/package.json @@ -23,4 +23,4 @@ "react": "16.3.1", "react-native": "~0.55.2" } -} \ No newline at end of file +} diff --git a/MobileApp/src/components/event-list.js b/MobileApp/src/components/event-list.js index 7156d55..725da84 100644 --- a/MobileApp/src/components/event-list.js +++ b/MobileApp/src/components/event-list.js @@ -1,26 +1,74 @@ -import React, { Component } from 'react' -import {ScrollView, StyleSheet, Text} from 'react-native' +import React, {Component} from 'react' +import {Button, View, StyleSheet, Text, SectionList, NavigatorIOS} from 'react-native' import Card from './common/card' +import EventScreen from './event-screen-1' + + class EventList extends Component { - static propTypes = { - - }; - - render() { - return ( - - {this.props.events.map(event => - - {event.title} - - )} - - ) - } + static propTypes = {}; + + render() { + const sections = Object + .entries(this.props.events + .reduce((acc, event) => { + const firstLetter = event.title[0].toUpperCase() + acc[firstLetter] = [...acc[firstLetter] || [], event.title] + return acc; + }, {})) + .map(([firstLetter, data]) => ({firstLetter, data})) + .sort((a, b) => a.firstLetter > b.firstLetter) + + return ( + + alert(item)} + style = {styles.item} + >{item} + + } + renderSectionHeader={({section: {firstLetter}}) => + + {firstLetter} + + } + sections={sections} + keyExtractor={(item, index) => item + index} + /> + /* + + {this.props.events.map(event => + + {event.title} + + )} + */ + + + ) + } + } const styles = StyleSheet.create({ + firstLetter: { + textAlign: 'center', + margin: 5, + fontSize: 20, + fontFamily: 'HelveticaNeue-Bold', + }, + firstLetterView: { + backgroundColor: '#fff' + }, + item : { + margin: 5, + fontSize: 15, + paddingLeft: 10, + paddingRight: 10, + fontFamily: 'HelveticaNeue-Light', + } }) + export default EventList \ No newline at end of file diff --git a/MobileApp/src/components/event-screen-1.js b/MobileApp/src/components/event-screen-1.js new file mode 100644 index 0000000..661c1d1 --- /dev/null +++ b/MobileApp/src/components/event-screen-1.js @@ -0,0 +1,89 @@ +import React, {Component} from 'react' +import {View, StyleSheet, Text, ImageBackground, Linking, TouchableOpacity, Button, AlertIOS} from 'react-native' + +class EventScreen extends Component { + static propTypes = {}; + + render() { + const {title, url, when, where, uid} = this.props.event + return ( + + Linking.openURL(url)}> + + + + {title.toUpperCase()} + + + {when} + + + {where} + +