summaryrefslogtreecommitdiff
path: root/frontend/app/screens/articles/articles1.js
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2019-03-11 21:00:02 +0400
committerAndrew <saintruler@gmail.com>2019-03-11 21:00:02 +0400
commit7e7dd5244e8d26485ad7950a89c04c98c4fef83f (patch)
tree810730c4650392080fb87a78d3b527201e89fe4b /frontend/app/screens/articles/articles1.js
Initial commit/
Diffstat (limited to 'frontend/app/screens/articles/articles1.js')
-rw-r--r--frontend/app/screens/articles/articles1.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/frontend/app/screens/articles/articles1.js b/frontend/app/screens/articles/articles1.js
new file mode 100644
index 0000000..47049b4
--- /dev/null
+++ b/frontend/app/screens/articles/articles1.js
@@ -0,0 +1,74 @@
+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 Articles1 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 rkType='backImg'>
+ <Image rkCardImg source={item.photo} />
+ <View rkCardImgOverlay rkCardContent style={styles.overlay}>
+ <RkText rkType='header2 inverseColor'>{item.header}</RkText>
+ <RkText rkType='secondary2 inverseColor'>{moment().add(item.time, 'seconds').fromNow()}</RkText>
+ <View rkCardFooter style={styles.footer}>
+ <SocialBar rkType='leftAligned' />
+ </View >
+ </View>
+ </RkCard>
+ </TouchableOpacity>
+ );
+
+ render = () => (
+ <FlatList
+ data={this.state.data}
+ renderItem={this.renderItem}
+ keyExtractor={this.extractItemKey}
+ style={styles.root}
+ />
+ );
+}
+
+const styles = RkStyleSheet.create(theme => ({
+ root: {
+ backgroundColor: theme.colors.screen.base,
+ },
+ overlay: {
+ justifyContent: 'flex-end',
+ },
+ footer: {
+ width: 240,
+ },
+}));