From d2925db4ce676cb476b776ea07350aee9f4144bf Mon Sep 17 00:00:00 2001 From: Nikolai R Kristiansen Date: Sun, 3 Oct 2021 21:22:42 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20rendering=20events=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Navigation.js | 23 ++++-- src/modules/events/EventList.js | 134 +++++++++++++++---------------- src/screens/EventDetailScreen.js | 16 +--- src/screens/EventListScreen.js | 14 ++-- 4 files changed, 87 insertions(+), 100 deletions(-) diff --git a/src/Navigation.js b/src/Navigation.js index 39f6c97..cc808dc 100644 --- a/src/Navigation.js +++ b/src/Navigation.js @@ -5,10 +5,10 @@ import React from 'react'; import { NavigationContainer } from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; -// import EventListScreen from './screens/EventListScreen'; -// import AboutScreen from './screens/AboutScreen'; -// import EventDetailScreen from './screens/EventDetailScreen'; -// import LoginScreen from './screens/LoginScreen'; +import EventListScreen from './screens/EventListScreen'; +import AboutScreen from './screens/AboutScreen'; +import EventDetailScreen from './screens/EventDetailScreen'; +import LoginScreen from './screens/LoginScreen'; import MembershipScreen from './screens/MembershipScreen'; // import UserRegisterScreen from './screens/UserRegisterScreen'; @@ -84,11 +84,18 @@ const Stack = createNativeStackNavigator(); const DuskenNavigation = () => ( - - {/* */} - {/* */} + + - {/* */} + + ({ + title: route.params.item.title.decoded, + })} + /> + ); diff --git a/src/modules/events/EventList.js b/src/modules/events/EventList.js index fa5a307..c15effc 100644 --- a/src/modules/events/EventList.js +++ b/src/modules/events/EventList.js @@ -1,46 +1,51 @@ -import { StyleSheet, View, Platform } from 'react-native'; -import { SectionList } from 'react-navigation'; -import { Card, ListItem, CardItem, Body, Text, Right, Icon, Button, Content, Spinner } from 'native-base'; -import React, { Component } from 'react'; +import { StyleSheet, View, Platform, SectionList, TouchableHighlight } from 'react-native'; +import { Card, Text, Icon, Button, Spinner } from 'native-base'; +import React from 'react'; import moment from 'moment'; import 'moment/locale/nb'; + import theme from '../../theme'; moment.locale('nb'); -export default class EventList extends Component { - _renderItem = ({ item }) => ( - { + return moment(time).format('llll'); +}; + +const EventList = ({ eventsSectioned, refreshing, handleRefresh, handleLoadMore, showEvent, error, loading }) => { + const _renderItem = ({ item }) => ( + { - this._onPressItem(item); + showEvent(item); }} style={styles.listItem} > - - - {item.title.decoded} - - {this._formatTime(item.start_time)} - - - - - + + + + {item.title.decoded} + + {_formatTime(item.start_time)} + + + + + + ); - _renderSectionHeader = ({ section }) => { + const _renderSectionHeader = ({ section }) => { return ( - - + + {section.title} - - + + ); }; - _renderFooter = () => { - if (!this.props.loading) { + const _renderFooter = () => { + if (!loading) { return null; } @@ -51,52 +56,43 @@ export default class EventList extends Component { ); }; - _onPressItem = (item) => { - this.props.showEvent(item); - }; - - _formatTime(time) { - return moment(time).format('llll'); - } - - render() { - if (this.props.error) { - return ( - - - - Kunne ikke hente programmet... - - - - - - - ); - } - + if (error) { return ( - item.id} - refreshing={this.props.refreshing} - onRefresh={this.props.handleRefresh} - onEndReached={this.props.handleLoadMore} - onEndReachedThreshould={10} - initialNumToRender={10} - ListFooterComponent={this._renderFooter} - style={[styles.card, styles.list]} - ListHeaderComponent={() => { - return ; - }} - /> + + + + Kunne ikke hente programmet... + + + + + + ); } -} + + return ( + item.id} + refreshing={refreshing} + onRefresh={handleRefresh} + onEndReached={handleLoadMore} + onEndReachedThreshould={10} + initialNumToRender={10} + ListFooterComponent={_renderFooter} + style={[styles.card, styles.list]} + ListHeaderComponent={() => { + return ; + }} + /> + ); +}; +export default EventList; const styles = StyleSheet.create({ listItem: { diff --git a/src/screens/EventDetailScreen.js b/src/screens/EventDetailScreen.js index d718a9e..7dd81d5 100644 --- a/src/screens/EventDetailScreen.js +++ b/src/screens/EventDetailScreen.js @@ -1,21 +1,7 @@ import React from 'react'; -import { StyleProvider } from 'native-base'; -import { useNavigationState } from '@react-navigation/native'; import EventDetail from '../modules/events/EventDetail'; -import getTheme from '../../native-base-theme/components'; -const EventDetailScreen = () => { - const item = useNavigationState((state) => state.item); - - return ( - - - - ); -}; -EventDetailScreen.navigationOptions = ({ navigation }) => ({ - title: navigation.state.params.item.title.decoded, -}); +const EventDetailScreen = ({ route }) => ; export default EventDetailScreen; diff --git a/src/screens/EventListScreen.js b/src/screens/EventListScreen.js index cfdf117..f1eb599 100644 --- a/src/screens/EventListScreen.js +++ b/src/screens/EventListScreen.js @@ -1,7 +1,7 @@ import React from 'react'; import Icon from 'react-native-vector-icons/SimpleLineIcons'; -import { StyleProvider } from 'native-base'; import { useNavigation } from '@react-navigation/native'; + import EventListContainer from '../modules/events/EventListContainer'; // FIXME: theme // https://docs.nativebase.io/setup-provider#add-custom-theme-optional @@ -10,13 +10,11 @@ import EventListContainer from '../modules/events/EventListContainer'; const EventsScreen = () => { const { navigate } = useNavigation(); return ( - - { - navigate('EventDetail', { item }); - }} - /> - + { + navigate('EventDetail', { item }); + }} + /> ); };