Skip to content

Commit 4f0d750

Browse files
committed
Improvement
1 parent 5d0c8b4 commit 4f0d750

File tree

6 files changed

+59
-27
lines changed

6 files changed

+59
-27
lines changed

routes.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ const AppNavigator = createStackNavigator({
1010
}
1111
},
1212
Review: {
13-
screen: Review,
14-
navigationOptions: {
15-
title: "Reviews",
16-
}
13+
screen: Review
1714
},
1815
}, {
1916
initialRouteName: 'Home',

src/components/error.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import React from 'react';
2+
import { View, Text } from 'react-native';
3+
4+
export const Error = (props) => {
5+
return <View>
6+
<Text>Error: {props.errorCode}</Text>
7+
</View>
8+
}

src/components/loader.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import React from 'react';
2+
import { View, ActivityIndicator, StyleSheet } from 'react-native';
3+
import { Color } from '../styles/theme';
4+
5+
export const Loader = () => {
6+
return <View style={style.container}>
7+
<ActivityIndicator size={"large"} color={Color.blue} />
8+
</View>
9+
}
10+
11+
const style = StyleSheet.create({
12+
container: {
13+
alignItems: 'center'
14+
}
15+
})

src/screens/home.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import React, { Component } from 'react';
2-
import { ScrollView, Text, View, TextInput, Button } from 'react-native'
2+
import { ScrollView, Text, View, TextInput, Button } from 'react-native';
33
import { EXAMPLE } from '../graphql/queries';
44
import { Query } from "react-apollo";
5-
import { margin } from '../styles/theme';
5+
import { Margin } from '../styles/theme';
6+
import { Loader } from '../components/loader';
7+
import { Error } from '../components/error';
68

79

810
export default class Home extends Component {
@@ -21,9 +23,9 @@ export default class Home extends Component {
2123
<Query query={EXAMPLE} variables={{ term, location }}>
2224
{({ loading, data: { search }, error }) => {
2325

24-
if (loading) {
25-
return <Text>Loading...</Text>
26-
}
26+
if (loading)
27+
return <Loader />
28+
2729
if (search) {
2830
const result = search.business.map((i, index) => {
2931
return (
@@ -37,7 +39,7 @@ export default class Home extends Component {
3739
return result;
3840
}
3941
if (error)
40-
return <Text>{error.message}</Text>
42+
return <Error errorCode={error.message} />
4143

4244
return (
4345
<Text>No result</Text>
@@ -51,7 +53,7 @@ export default class Home extends Component {
5153
const { term } = this.state;
5254
return (
5355
<ScrollView>
54-
<View style={margin.marginM}>
56+
<View style={Margin.marginM}>
5557
<TextInput onChangeText={(term) => this.setState({ term })} value={term}></TextInput>
5658
<Text>Result for: {this.state.term}</Text>
5759
{this.getYelp("pizza", "new york")}

src/screens/review.js

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,37 @@
11
import React, { Component } from 'react';
2-
import { ScrollView, Text, View, StyleSheet } from 'react-native'
2+
import { ScrollView, Text, View } from 'react-native';
33
import { GET_REVIEWS } from '../graphql/queries';
44
import { Query } from "react-apollo";
5-
import { fontSize, margin } from '../styles/theme';
5+
import { FontSize, Margin } from '../styles/theme';
6+
import { Loader } from '../components/loader';
7+
import { Error } from '../components/error';
68

79

810
export default class Review extends Component {
11+
static navigationOptions = ({ navigation }) => ({
12+
title: `${navigation.state.params.name}`
13+
});
914

1015
getReviews = (business) => {
1116
return (
1217
<Query query={GET_REVIEWS} variables={{ business }}>
1318
{({ loading, data: { reviews }, error }) => {
1419

1520
if (loading) {
16-
return <Text>Loading...</Text>
21+
return <Loader />
1722
}
1823
if (reviews) {
1924
const result = reviews.review.map((i, index) => {
2025
return (
21-
<View key={index} style={margin.marginBottomS}>
26+
<View key={index} style={Margin.marginBottomS}>
2227
<Text>{index + 1 + ". " + i.text}</Text>
23-
</View>)
28+
</View>
29+
)
2430
})
2531
return result;
2632
}
2733
if (error)
28-
return <Text>{error.message}</Text>
34+
return <Error errorCode={error.message} />
2935

3036
return (
3137
<Text>No result</Text>
@@ -38,13 +44,13 @@ export default class Review extends Component {
3844
render() {
3945
const { navigation } = this.props;
4046
const business = navigation.getParam('business', 'no-business');
41-
const name = navigation.getParam('name', 'no-business');
42-
console.log(business)
47+
const name = navigation.getParam('name', 'no-name');
48+
4349
return (
4450
<ScrollView>
45-
<View style={margin.marginM}>
46-
<Text style={fontSize.fontL}>{name}</Text>
47-
{this.getReviews(business)}
51+
<View style={Margin.marginM}>
52+
<Text style={FontSize.fontL}>Reviews</Text>
53+
{this.getReviews(business)}
4854
</View>
4955
</ScrollView>
5056
)

src/styles/theme.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
export const fontSize = {
1+
export const FontSize = {
22
fontM: { fontSize: 13 },
33
fontL: { fontSize: 18 }
44
}
5-
export const margin={
6-
marginM:{margin:10},
7-
marginL:{margin:20},
8-
marginBottomS:{marginBottom:10}
5+
export const Margin = {
6+
marginM: { margin: 10 },
7+
marginL: { margin: 20 },
8+
marginBottomS: { marginBottom: 10 }
9+
}
10+
11+
export const Color = {
12+
blue: "#0073cf"
913
}

0 commit comments

Comments
 (0)