summaryrefslogtreecommitdiff
path: root/frontend/app/screens/articles/article.js
blob: 059ab44333e7a1a09f79f01d90642aed6c11cb73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import React from 'react';
import axios from 'axios';


import {
  ScrollView,
  Image,
  View,
  TouchableOpacity,
} from 'react-native';
import {
  RkCard,
  RkText,
  RkStyleSheet,
} from 'react-native-ui-kitten';
import {
  Avatar,
  SocialBar,
} from '../../components';
import NavigationType from '../../config/navigation/propTypes';


export class Article extends React.Component {
  state = {
    article: {},
    mounted: false,
  };

  static propTypes = {
    navigation: NavigationType.isRequired,
  };
  static navigationOptions = {
    title: 'Current problem'.toUpperCase(),
  };


  componentWillMount() {
    const articleId = this.props.navigation.getParam('id', 1);
    console.log(articleId);

    axios.get(`http://192.168.1.43:8000/api/articles/${articleId}`)
      .then(res => {
        this.setState({
          article: res.data,
          mounted: true,
        });
        console.log(this.state.article);
      });
  }

  render() {
    if (this.state.mounted) {
      return (
        <ScrollView style={styles.root}>
          <RkCard rkType='article'>
            <Image
              rkCardImg
              source={{
              uri: `${this.state.article.image.toString()
                .replace('http://127.0.0.1:8000/', '')}`,
            }}
            />
            <View rkCardHeader>
              <View>
                <RkText style={styles.title} rkType='header4'>{this.state.article.title}</RkText>
              </View>


            </View>
            <View rkCardContent>
              <View>
                <RkText rkType='primary3 bigLine'>{this.state.article.text}</RkText>
              </View>
            </View>
            <View rkCardFooter>
              <SocialBar comments={this.state.article.n_comments} is_solved={this.state.article.is_solved ? 'Solved' : "Doesn't solved"}/>
            </View>
          </RkCard>
        </ScrollView>

      );
    }
    return null;
  }
}

const styles = RkStyleSheet.create(theme => ({
  root: {
    backgroundColor: theme.colors.screen.base,
  },
  title: {
    marginBottom: 5,
  },
}));