diff --git a/src/Navigation.js b/src/Navigation.js index 23769e2..44b1763 100644 --- a/src/Navigation.js +++ b/src/Navigation.js @@ -177,8 +177,8 @@ const PrimaryTabNavigator = createBottomTabNavigator( // You can return any component that you like here! We usually use an // icon component from react-native-vector-icons - return ; - }, + return ; + } }), tabBarOptions: { style: {backgroundColor: '#333'}, diff --git a/src/components/NavigationBar.js b/src/components/NavigationBar.js index 5c7d776..2cb0bd5 100644 --- a/src/components/NavigationBar.js +++ b/src/components/NavigationBar.js @@ -1,7 +1,7 @@ import React from 'react'; import {Animated, Platform, View, StyleSheet} from 'react-native'; import {Constants} from 'expo'; -import {Colors, Layout} from '../constants'; +import {Colors, Layout, FontSizes} from '../constants'; export default class NavigationBar extends React.Component { render() { @@ -101,4 +101,8 @@ const styles = StyleSheet.create({ justifyContent: 'center', position: 'absolute', }, + navigationBarTitle: { + color: Colors.faint, + fontSize: FontSizes.title + } }); diff --git a/src/components/TalkCard.js b/src/components/TalkCard.js index 7c94f67..ef5c4ef 100644 --- a/src/components/TalkCard.js +++ b/src/components/TalkCard.js @@ -27,6 +27,16 @@ export default class TalkCard extends React.Component { onPress={this._handlePress} style={[styles.button, this.props.style]} activeOpacity={0.05}> + + + + + {talk.title} + + {conferenceHasEnded() || !talk.room ? null : ( + {talk.room} + )} + {speakers.map(speaker => ( @@ -49,15 +59,6 @@ export default class TalkCard extends React.Component { ))} - - - - {talk.title} - - {conferenceHasEnded() || !talk.room ? null : ( - {talk.room} - )} - ); } @@ -78,6 +79,7 @@ export default class TalkCard extends React.Component { const styles = StyleSheet.create({ headerRow: { flexDirection: 'row', + marginBottom: 8 }, headerRowAvatarContainer: { paddingRight: 10, @@ -96,7 +98,7 @@ const styles = StyleSheet.create({ fontSize: FontSizes.bodyLarge, }, talkInfoRow: { - paddingTop: 10, + paddingBottom: 8, }, talkTitle: { fontSize: FontSizes.bodyLarge, @@ -118,14 +120,14 @@ const styles = StyleSheet.create({ borderRadius: 5, backgroundColor: '#fff', shadowColor: '#000', - shadowOpacity: 0.1, + shadowOpacity: 1, shadowRadius: 4, - shadowOffset: {width: 2, height: 2}, + shadowOffset: {width: 8, height: 8}, }, android: { backgroundColor: '#fff', elevation: 2, }, - }), + }) }, }); diff --git a/src/components/TalksUpNext.js b/src/components/TalksUpNext.js index 108bcf8..9926f75 100644 --- a/src/components/TalksUpNext.js +++ b/src/components/TalksUpNext.js @@ -63,7 +63,7 @@ export default class TalksUpNext extends React.Component { const {nextTalks} = this.state; return ( - + {conferenceHasEnded() ? 'A great talk from 2019' : 'Coming up next'} diff --git a/src/screens/Details.js b/src/screens/Details.js index 42ca0b9..1f5d7cb 100644 --- a/src/screens/Details.js +++ b/src/screens/Details.js @@ -51,8 +51,8 @@ export default class Details extends React.Component { componentDidMount() { if (Platform.OS === 'ios') { - this._listener = this.state.scrollY.addListener(({ value }) => { - if (value < - 150) { + this._listener = this.state.scrollY.addListener(({value}) => { + if (value < -150) { Haptic.impact(Haptic.ImpactFeedbackStyle.Medium); this.props.navigation.goBack(); if (this._listener) { @@ -251,7 +251,7 @@ export default class Details extends React.Component { {speakers.map(speaker => ( - + {speaker.name} @@ -263,10 +263,12 @@ export default class Details extends React.Component { {talk ? ( Time - - {convertUtcDateToEventTimezoneHour(talk.startDate)} - - {talk.room} + + + {convertUtcDateToEventTimezoneHour(talk.startDate)} + + {talk.room} + ) : null} @@ -402,9 +404,13 @@ const styles = StyleSheet.create({ marginTop: 10, }, sectionHeader: { - fontSize: FontSizes.bodyTitle, - marginTop: 15, - marginBottom: 3, + fontSize: FontSizes.subtitle, + paddingTop: 15, + marginBottom: 4, + color: Colors.blue + }, + sectionContent: { + marginTop: 8 }, videoWrapper: {}, }); diff --git a/src/screens/Home.js b/src/screens/Home.js index ecd82a5..f7c1958 100644 --- a/src/screens/Home.js +++ b/src/screens/Home.js @@ -8,6 +8,7 @@ import { StyleSheet, AsyncStorage, View, + Text, } from 'react-native'; import {WebBrowser, Notifications} from 'expo'; import {RectButton} from 'react-native-gesture-handler'; @@ -96,7 +97,7 @@ class Home extends React.Component { Thank you for joining us! - See you in May, 2019! + See you in May, 2020! diff --git a/src/screens/Sponsors.js b/src/screens/Sponsors.js index 7bb7765..ac9eb80 100644 --- a/src/screens/Sponsors.js +++ b/src/screens/Sponsors.js @@ -9,6 +9,7 @@ import MenuButton from '../components/MenuButton'; import {SemiBoldText, RegularText} from '../components/StyledText'; import LoadingPlaceholder from '../components/LoadingPlaceholder'; import CachedImage from '../components/CachedImage'; +import {Capitalize} from '../utils'; const ClipBorderRadius = ({children, style}) => { return ( @@ -96,16 +97,19 @@ export default class Sponsors extends React.Component { super(props); const event = this.props.screenProps.event; - const SponsorsData = event.sponsors; - - this.SponsorsByLevel = [ - {title: 'Diamond', data: SponsorsData['diamond']}, - {title: 'Platinum', data: SponsorsData['platinum']}, - {title: 'Gold', data: SponsorsData['gold']}, - {title: 'Partners', data: SponsorsData['partner']}, - ]; + this.SponsorsByLevel = this._getSponsors(event.sponsors); } + _getSponsors = rawData => { + delete rawData.__typename; + return Object.keys(rawData).filter( + key => rawData[key].length > 0 + ).map(key => ({ + title: Capitalize(key), + data: rawData[key], + })); + }; + render() { return ( diff --git a/src/utils/index.js b/src/utils/index.js index c17e04c..39abe18 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -68,6 +68,10 @@ export function ShowWhenConferenceHasEnded({children}) { } } +export function Capitalize(string) { + return `${string.charAt(0).toUpperCase()}${string.slice(1)}`; +} + export const sendEmail = ( emailTo, fromName = {firstName: '', lastName: ''}