summaryrefslogtreecommitdiff
path: root/frontend/app/screens/articles/articles3.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/app/screens/articles/articles3.js')
-rw-r--r--frontend/app/screens/articles/articles3.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/frontend/app/screens/articles/articles3.js b/frontend/app/screens/articles/articles3.js
new file mode 100644
index 0000000..e5eda4e
--- /dev/null
+++ b/frontend/app/screens/articles/articles3.js
@@ -0,0 +1,81 @@
+import React from 'react';
+import {
+ FlatList,
+ Image,
+ View,
+ TouchableOpacity,
+} from 'react-native';
+import {
+ RkText,
+ RkCard, RkStyleSheet,
+} from 'react-native-ui-kitten';
+import { SocialBar } from '../../components';
+import { data } from '../../data';
+import NavigationType from '../../config/navigation/propTypes';
+
+const moment = require('moment');
+
+export class Articles3 extends React.Component {
+ static propTypes = {
+ navigation: NavigationType.isRequired,
+ };
+ static navigationOptions = {
+ title: 'Article List'.toUpperCase(),
+ };
+
+ state = {
+ data: data.getArticles(),
+ };
+
+ extractItemKey = (item) => `${item.id}`;
+
+ onItemPressed = ({ item }) => {
+ this.props.navigation.navigate('Article', { id: item.id });
+ };
+
+ renderItem = ({ item }) => (
+ <TouchableOpacity
+ delayPressIn={70}
+ activeOpacity={0.8}
+ onPress={() => this.onItemPressed(item)}>
+ <RkCard style={styles.card}>
+ <View rkCardHeader>
+ <View>
+ <RkText rkType='header4'>{item.header}</RkText>
+ <RkText rkType='secondary2 hintColor'>{moment().add(item.time, 'seconds').fromNow()}</RkText>
+ </View>
+ </View>
+ <Image rkCardImg source={item.photo} />
+ <View style={styles.footer} rkCardFooter>
+ <SocialBar />
+ </View >
+ </RkCard>
+ </TouchableOpacity>
+ );
+
+ render = () => (
+ <FlatList
+ data={this.state.data}
+ renderItem={this.renderItem}
+ keyExtractor={this.extractItemKey}
+ style={styles.container}
+ />
+ );
+}
+
+const styles = RkStyleSheet.create(theme => ({
+ container: {
+ backgroundColor: theme.colors.screen.scroll,
+ paddingHorizontal: 14,
+ paddingVertical: 8,
+ },
+ card: {
+ marginVertical: 8,
+ },
+ footer: {
+ paddingTop: 16,
+ },
+ time: {
+ marginTop: 5,
+ },
+}));