-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathTimelineScreen.js
60 lines (52 loc) · 1.32 KB
/
TimelineScreen.js
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
import React from "react";
import * as api from "../Api";
import { FlatList, StyleSheet, ScrollView, Text } from "react-native";
import { Screen, TweetItem, ViewLoading } from "../Components";
import { TWEET_DETAIL_SCREEN } from "./TimelineNavigator";
export class TimelineScreen extends React.Component {
/*
- the header title for this view should be `Timeline`
*/
state = {
timeline: []
};
componentDidMount() {
this.fetchTimeline();
}
fetchTimeline = () => {
this.props.api.fetchTimeline().then(({ statuses }) => {
this.setState({ timeline: statuses });
});
};
handleTweetPress = id => {
console.log("handlePress => ", id);
/*
- navigate to `TWEET_DETAIL_SCREEN` passing the id as a param
*/
};
/*
- create a TweetItem component with this API:
<TweetItem item={item} handlePress={() => this.handleTweetPress(item.id_str)} />
*/
renderItem = ({ item }) => null;
render() {
const { timeline } = this.state;
return (
<Screen style={styles.screen}>
{timeline.length == 0 ? (
<ViewLoading />
) : (
<Text>{JSON.stringify(timeline, null, 4)}</Text>
)}
</Screen>
);
}
}
const styles = StyleSheet.create({
screen: {
backgroundColor: "white"
}
});
TimelineScreen.defaultProps = {
api
};