Showing
7 changed files
with
87 additions
and
101 deletions
1 | import React, { Component } from 'react'; | 1 | import React, { Component } from 'react'; |
2 | import { View, Text, StyleSheet,ScrollView, RefreshControl } from 'react-native'; | 2 | import { View, Text, StyleSheet,ScrollView, RefreshControl } from 'react-native'; |
3 | -import { BarChart, Grid } from 'react-native-svg-charts' | ||
4 | import HistoryGraph from '../component/HistoryGraph' | 3 | import HistoryGraph from '../component/HistoryGraph' |
5 | import SegmentedControlTab from "react-native-segmented-control-tab"; | 4 | import SegmentedControlTab from "react-native-segmented-control-tab"; |
6 | -import {add_data, get_week_data, get_today_data, get_month_data, get_year_data} from'../component/DBhelper.js'; | 5 | +import {add_data, get_week_data, get_month_data, get_year_data, add_temp_data} from'../component/DBhelper.js'; |
7 | -var list1 = get_week_data(); | 6 | + |
8 | -var list2 = get_month_data(); | ||
9 | -var list3 = get_year_data(); | ||
10 | //var today = new Date(); | 7 | //var today = new Date(); |
11 | //today.setHours(today.getHours()+9); | 8 | //today.setHours(today.getHours()+9); |
12 | -var week = ['SUN','MON','TUE', 'WED', 'THU', 'FRI', 'SAT']; | ||
13 | - | ||
14 | -const data1 = [ | ||
15 | - { label: week[list1[1][0]], value: list1[0][0] }, | ||
16 | - { label: week[list1[1][1]], value: list1[0][1] }, | ||
17 | - { label: week[list1[1][2]], value: list1[0][2] }, | ||
18 | - { label: week[list1[1][3]], value: list1[0][3] }, | ||
19 | - { label: week[list1[1][4]], value: list1[0][4] }, | ||
20 | - { label: week[list1[1][5]], value: list1[0][5] }, | ||
21 | - { label: week[list1[1][6]], value: list1[0][6] } | ||
22 | -] | ||
23 | -const data2 = [ | ||
24 | - { label: '1', value: list2[0] }, | ||
25 | - { label: '7', value: list2[1] }, | ||
26 | - { label: '14', value: list2[2]}, | ||
27 | - { label: '21', value: list2[3] }, | ||
28 | - { label: '28', value: list2[4] } | ||
29 | -] | ||
30 | -const data3 = [ | ||
31 | - { label: 'Jan', value: list3[0] }, | ||
32 | - { label: 'Feb', value: list3[1] }, | ||
33 | - { label: 'Mar', value: list3[2] }, | ||
34 | - { label: 'Apr', value: list3[3] }, | ||
35 | - { label: 'May', value: list3[4] }, | ||
36 | - { label: 'Jun', value: list3[5] }, | ||
37 | - { label: 'Jul', value: list3[6] }, | ||
38 | - { label: 'Aug', value: list3[7] }, | ||
39 | - { label: 'Sep', value: list3[8] }, | ||
40 | - { label: 'Oct', value: list3[9] }, | ||
41 | - { label: 'Nov', value: list3[10] }, | ||
42 | - { label: 'Dec', value: list3[11] } | ||
43 | -] | ||
44 | - | ||
45 | -const data4 = [ | ||
46 | - { label: 'C', value: 500 }, | ||
47 | - { label: 'H', value: 312 }, | ||
48 | - { label: 'A', value: 424 }, | ||
49 | - { label: 'N', value: 745 }, | ||
50 | - { label: 'G', value: 89 }, | ||
51 | - { label: 'E', value: 434 } | ||
52 | -] | ||
53 | 9 | ||
54 | function total(list){ | 10 | function total(list){ |
55 | - var total=0; | 11 | + sum = 0; |
56 | for(var i =0; i< list.length; i++) | 12 | for(var i =0; i< list.length; i++) |
57 | - total += list[i] | 13 | + sum += list[i].value; |
58 | - return total | 14 | + return sum |
59 | } | 15 | } |
60 | 16 | ||
61 | -const kg1 = "총 " + total(list1[0]) + "kg" | ||
62 | -const kg2 = "총 " + total(list2) + "kg" | ||
63 | -const kg3 = "총 " + total(list3) + "kg" | ||
64 | - | ||
65 | export default class HomeTab extends Component { | 17 | export default class HomeTab extends Component { |
66 | constructor(){ | 18 | constructor(){ |
67 | super(); | 19 | super(); |
68 | this.state = { | 20 | this.state = { |
69 | selectedIndex: 0, | 21 | selectedIndex: 0, |
70 | - data: data1, | 22 | + data: get_week_data(), |
71 | - title: "총 " + total(list1[0]) + "kg", | 23 | + title: "총 " + total(get_week_data())/1000 + "kg", |
72 | spane: "", | 24 | spane: "", |
73 | refreshing: false | 25 | refreshing: false |
74 | } | 26 | } |
... | @@ -76,22 +28,33 @@ export default class HomeTab extends Component { | ... | @@ -76,22 +28,33 @@ export default class HomeTab extends Component { |
76 | 28 | ||
77 | _onRefresh = () => { | 29 | _onRefresh = () => { |
78 | this.setState({refresing: true}); | 30 | this.setState({refresing: true}); |
79 | - // this.setState({data: data4}) | ||
80 | this.get_diff_data(); | 31 | this.get_diff_data(); |
81 | this.setState({refreshing: false}); | 32 | this.setState({refreshing: false}); |
82 | } | 33 | } |
83 | 34 | ||
35 | + componentDidMount() { | ||
36 | + const { navigation } = this.props; | ||
37 | + this.focusListener = navigation.addListener('didFocus', () => { | ||
38 | + this.handleIndexChange(this.state.selectedIndex); | ||
39 | + }); | ||
40 | + } | ||
41 | + | ||
42 | + componentWillUnmount() { | ||
43 | + // Remove the event listener | ||
44 | + this.focusListener.remove(); | ||
45 | + } | ||
46 | + | ||
84 | handleIndexChange = index => { | 47 | handleIndexChange = index => { |
85 | this.setState({selectedIndex: index}); | 48 | this.setState({selectedIndex: index}); |
86 | switch(index){ | 49 | switch(index){ |
87 | case 0: | 50 | case 0: |
88 | - this.setState({data: data1, title: kg1}); | 51 | + this.setState({data: get_week_data(), title: "총 " + total(get_week_data())/1000 + "kg"}); |
89 | break; | 52 | break; |
90 | case 1: | 53 | case 1: |
91 | - this.setState({data: data2, title: kg2}); | 54 | + this.setState({data: get_month_data(), title: "총 " + total(get_month_data())/1000 + "kg"}); |
92 | break; | 55 | break; |
93 | case 2: | 56 | case 2: |
94 | - this.setState({data: data3, title: kg3}); | 57 | + this.setState({data: get_year_data(), title: "총 " + total(get_year_data())/1000 + "kg"}); |
95 | break; | 58 | break; |
96 | } | 59 | } |
97 | }; | 60 | }; |
... | @@ -111,24 +74,17 @@ export default class HomeTab extends Component { | ... | @@ -111,24 +74,17 @@ export default class HomeTab extends Component { |
111 | .then((response) => response.json()) | 74 | .then((response) => response.json()) |
112 | .then((responseJson)=> { | 75 | .then((responseJson)=> { |
113 | console.log(responseJson) | 76 | console.log(responseJson) |
114 | - add_data(responseJson) | 77 | + //add_data(responseJson) |
78 | + add_temp_data(); | ||
115 | },function(){ | 79 | },function(){ |
116 | }) | 80 | }) |
81 | + .then(()=>{this.handleIndexChange(this.state.selectedIndex)}) | ||
117 | .catch((error) => { | 82 | .catch((error) => { |
118 | console.error(error); | 83 | console.error(error); |
119 | }) | 84 | }) |
120 | } | 85 | } |
121 | 86 | ||
122 | render() { | 87 | render() { |
123 | - // const fill = 'rgb(134, 65, 244)' | ||
124 | - // const data = [50, 10, 40, 95, -4, -24, null, 85, undefined, 0, 35, 53, -53, 24, 50, -20, -80] | ||
125 | - | ||
126 | - // return ( | ||
127 | - // <BarChart style={{ height: 200 }} data={data} svg={{ fill }} contentInset={{ top: 30, bottom: 30 }}> | ||
128 | - // <Grid /> | ||
129 | - // </BarChart> | ||
130 | - // ); | ||
131 | - | ||
132 | return( | 88 | return( |
133 | <ScrollView style = {style.container} | 89 | <ScrollView style = {style.container} |
134 | refreshControl={ | 90 | refreshControl={ |
... | @@ -147,15 +103,18 @@ export default class HomeTab extends Component { | ... | @@ -147,15 +103,18 @@ export default class HomeTab extends Component { |
147 | <View style={style.header}> | 103 | <View style={style.header}> |
148 | <Text style={style.tabName}>History </Text> | 104 | <Text style={style.tabName}>History </Text> |
149 | </View> | 105 | </View> |
150 | - <View style={{flex : 8, justifyContent:'center'}}> | 106 | + |
151 | - <Text style ={style.date_text}>{this.state.title}</Text> | 107 | + <View style={{justifyContent:'center', padding: 10}}> |
152 | - </View> | 108 | + <SegmentedControlTab |
153 | - <SegmentedControlTab | 109 | + values={["Week", "Month", "Year"]} |
154 | - values={["Week", "Month", "Year"]} | 110 | + selectedIndex={this.state.selectedIndex} |
155 | - selectedIndex={this.state.selectedIndex} | 111 | + onTabPress={this.handleIndexChange} |
156 | - onTabPress={this.handleIndexChange} | 112 | + /> |
157 | - /> | 113 | + </View> |
158 | - <HistoryGraph data={this.state.data} round={100} unit="kg"/> | 114 | + <View style={{flex : 8, justifyContent:'center', padding: 10}}> |
115 | + <Text style ={style.date_text}>{this.state.title}</Text> | ||
116 | + </View> | ||
117 | + <HistoryGraph data={this.state.data} round={1000} unit="g"/> | ||
159 | </View> | 118 | </View> |
160 | </ScrollView> | 119 | </ScrollView> |
161 | ) | 120 | ) | ... | ... |
... | @@ -2,7 +2,7 @@ import React, { Component } from 'react'; | ... | @@ -2,7 +2,7 @@ import React, { Component } from 'react'; |
2 | import { View, Text, StyleSheet, SafeAreaView, ScrollView, Image } from 'react-native'; | 2 | import { View, Text, StyleSheet, SafeAreaView, ScrollView, Image } from 'react-native'; |
3 | import Circle from '../component/circle_component' | 3 | import Circle from '../component/circle_component' |
4 | import {Table, TableWrapper, Row,Rows} from 'react-native-table-component' | 4 | import {Table, TableWrapper, Row,Rows} from 'react-native-table-component' |
5 | -import {get_now_weight, get_today_data, add_data} from'../component/DBhelper.js'; | 5 | +import {get_now_weight, get_today_data, add_data,add_temp_data} from'../component/DBhelper.js'; |
6 | 6 | ||
7 | var date = new Date(); | 7 | var date = new Date(); |
8 | date.setHours(date.getHours()+9); | 8 | date.setHours(date.getHours()+9); |
... | @@ -21,6 +21,21 @@ export default class HomeTab extends Component { | ... | @@ -21,6 +21,21 @@ export default class HomeTab extends Component { |
21 | table_contents : get_today_data() | 21 | table_contents : get_today_data() |
22 | } | 22 | } |
23 | } | 23 | } |
24 | + componentDidMount() { | ||
25 | + const { navigation } = this.props; | ||
26 | + this.focusListener = navigation.addListener('didFocus', () => { | ||
27 | + this.setState({ | ||
28 | + current_weight : get_now_weight(), | ||
29 | + table_contents : get_today_data() | ||
30 | + }); | ||
31 | + }); | ||
32 | + } | ||
33 | + | ||
34 | + componentWillUnmount() { | ||
35 | + // Remove the event listener | ||
36 | + this.focusListener.remove(); | ||
37 | + } | ||
38 | + | ||
24 | get_diff_data(){ | 39 | get_diff_data(){ |
25 | return fetch('http://testloadbalancer-1847561458.ap-northeast-2.elb.amazonaws.com/app/get_diff_data/',{ | 40 | return fetch('http://testloadbalancer-1847561458.ap-northeast-2.elb.amazonaws.com/app/get_diff_data/',{ |
26 | method:'POST', | 41 | method:'POST', |
... | @@ -30,19 +45,25 @@ export default class HomeTab extends Component { | ... | @@ -30,19 +45,25 @@ export default class HomeTab extends Component { |
30 | }, | 45 | }, |
31 | body:JSON.stringify({ | 46 | body:JSON.stringify({ |
32 | ras_id : "pi1", | 47 | ras_id : "pi1", |
33 | - date : "1576339901541", | 48 | + date : "1576648647000", |
34 | }), | 49 | }), |
35 | }) | 50 | }) |
36 | .then((response) => response.json()) | 51 | .then((response) => response.json()) |
37 | .then((responseJson)=> { | 52 | .then((responseJson)=> { |
38 | console.log(responseJson) | 53 | console.log(responseJson) |
39 | - add_data(responseJson); | 54 | + //add_data(responseJson); |
55 | + add_temp_data(); | ||
40 | },function(){ | 56 | },function(){ |
41 | }) | 57 | }) |
58 | + .then(()=>{this.setState({ | ||
59 | + current_weight : get_now_weight(), | ||
60 | + table_contents : get_today_data() | ||
61 | + })}) | ||
42 | .catch((error) => { | 62 | .catch((error) => { |
43 | console.error(error); | 63 | console.error(error); |
44 | }) | 64 | }) |
45 | } | 65 | } |
66 | + | ||
46 | render() { | 67 | render() { |
47 | return ( | 68 | return ( |
48 | <View style={style.container}> | 69 | <View style={style.container}> | ... | ... |
... | @@ -40,8 +40,8 @@ export default class SettingTab extends Component { | ... | @@ -40,8 +40,8 @@ export default class SettingTab extends Component { |
40 | delete_id(){ | 40 | delete_id(){ |
41 | this.setState({ID: ''}) | 41 | this.setState({ID: ''}) |
42 | //save_app_data() | 42 | //save_app_data() |
43 | - //delete_all_data() | 43 | + delete_all_data() |
44 | - deleteId() | 44 | + //deleteId() |
45 | this.props.navigation.navigate('Login'); | 45 | this.props.navigation.navigate('Login'); |
46 | } | 46 | } |
47 | render() { | 47 | render() { | ... | ... |
... | @@ -58,8 +58,8 @@ export default class Login extends Component { | ... | @@ -58,8 +58,8 @@ export default class Login extends Component { |
58 | /> | 58 | /> |
59 | <LoginButton | 59 | <LoginButton |
60 | //onPress={()=>{this.getdata}} | 60 | //onPress={()=>{this.getdata}} |
61 | - onPress={() =>{ this.props.navigation.navigate('MainScreen', { ID: this.state.ID });}} | 61 | + //onPress={() =>{ this.props.navigation.navigate('MainScreen', { ID: this.state.ID });}} |
62 | - //onPress={() =>{ this.getdata().then(()=>{this.props.navigation.navigate('MainScreen', { ID: this.state.ID })}) }} | 62 | + onPress={() =>{ this.getdata().then(()=>{this.props.navigation.navigate('MainScreen', { ID: this.state.ID })}) }} |
63 | /> | 63 | /> |
64 | </View> | 64 | </View> |
65 | </View> | 65 | </View> | ... | ... |
... | @@ -33,7 +33,7 @@ const AppTabNavigator = createMaterialTopTabNavigator({ | ... | @@ -33,7 +33,7 @@ const AppTabNavigator = createMaterialTopTabNavigator({ |
33 | } | 33 | } |
34 | }); | 34 | }); |
35 | 35 | ||
36 | -const AppTabContainet = createAppContainer(AppTabNavigator); | 36 | +const AppTabContainer = createAppContainer(AppTabNavigator); |
37 | 37 | ||
38 | export default class MainScreen extends Component { | 38 | export default class MainScreen extends Component { |
39 | 39 | ||
... | @@ -44,11 +44,12 @@ export default class MainScreen extends Component { | ... | @@ -44,11 +44,12 @@ export default class MainScreen extends Component { |
44 | }; | 44 | }; |
45 | } | 45 | } |
46 | static navigationOptions = { | 46 | static navigationOptions = { |
47 | - title: 'FW IOT' } | 47 | + title: 'FW IOT' |
48 | + } | ||
48 | 49 | ||
49 | render() { | 50 | render() { |
50 | registerID(this.state.ID); | 51 | registerID(this.state.ID); |
51 | - return <AppTabContainet/>; // AppTabContainet 컴포넌트를 리턴한다. | 52 | + return <AppTabContainer/>; // AppTabContainet 컴포넌트를 리턴한다. |
52 | } | 53 | } |
53 | } | 54 | } |
54 | 55 | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -3,12 +3,11 @@ import { View, Text, StyleSheet } from 'react-native'; | ... | @@ -3,12 +3,11 @@ import { View, Text, StyleSheet } from 'react-native'; |
3 | import { Svg, G, Line, Rect } from 'react-native-svg' | 3 | import { Svg, G, Line, Rect } from 'react-native-svg' |
4 | import { Text as SvgText } from 'react-native-svg' | 4 | import { Text as SvgText } from 'react-native-svg' |
5 | import * as d3 from 'd3' | 5 | import * as d3 from 'd3' |
6 | -// import Showkg from './ShowKg' | ||
7 | 6 | ||
8 | const GRAPH_MARGIN = 20 | 7 | const GRAPH_MARGIN = 20 |
9 | const GRAPH_BAR_WIDTH = 10 | 8 | const GRAPH_BAR_WIDTH = 10 |
10 | const colors = { | 9 | const colors = { |
11 | - axis: '#E4E4E4', | 10 | + axis: '#CED4DA', |
12 | bars: '#0066cc', | 11 | bars: '#0066cc', |
13 | bardefult: '#CED4DA' | 12 | bardefult: '#CED4DA' |
14 | } | 13 | } |
... | @@ -19,23 +18,26 @@ export default class HistoryGraph extends PureComponent { | ... | @@ -19,23 +18,26 @@ export default class HistoryGraph extends PureComponent { |
19 | super(props); | 18 | super(props); |
20 | this.handleClick = this.handleClick.bind(this); | 19 | this.handleClick = this.handleClick.bind(this); |
21 | this.state = { | 20 | this.state = { |
22 | - kg: this.props.data[this.props.data.length - 1].label, | 21 | + kg: this.props.data[this.props.data.length - 1].value, |
22 | + span: this.props.data[this.props.data.length -1].label, | ||
23 | index: this.props.data.length-1 | 23 | index: this.props.data.length-1 |
24 | } | 24 | } |
25 | } | 25 | } |
26 | 26 | ||
27 | - handleClick = inkg => { | 27 | + handleClick = item => { |
28 | - this.setState({kg: inkg}); | 28 | + this.setState({span: item.label, kg: item.value}); |
29 | } | 29 | } |
30 | 30 | ||
31 | componentDidUpdate(prevProps, prevState){ | 31 | componentDidUpdate(prevProps, prevState){ |
32 | if (this.props.data !== prevProps.data) { | 32 | if (this.props.data !== prevProps.data) { |
33 | this.setState({ | 33 | this.setState({ |
34 | ...this.state, | 34 | ...this.state, |
35 | - kg : this.props.data[this.props.data.length - 1].label, | 35 | + kg : this.props.data[this.props.data.length - 1].value, |
36 | + span: this.props.data[this.props.data.length -1].label, | ||
36 | index: this.props.data.length-1 | 37 | index: this.props.data.length-1 |
37 | }) | 38 | }) |
38 | - } } | 39 | + } |
40 | + } | ||
39 | 41 | ||
40 | render() { | 42 | render() { |
41 | // Dimensions | 43 | // Dimensions |
... | @@ -88,7 +90,7 @@ export default class HistoryGraph extends PureComponent { | ... | @@ -88,7 +90,7 @@ export default class HistoryGraph extends PureComponent { |
88 | y2={y(topValue) * -1} | 90 | y2={y(topValue) * -1} |
89 | stroke={colors.axis} | 91 | stroke={colors.axis} |
90 | strokeDasharray={[3, 3]} | 92 | strokeDasharray={[3, 3]} |
91 | - strokeWidth="0.5" | 93 | + strokeWidth="1" |
92 | /> | 94 | /> |
93 | 95 | ||
94 | {/* middle axis */} | 96 | {/* middle axis */} |
... | @@ -99,7 +101,7 @@ export default class HistoryGraph extends PureComponent { | ... | @@ -99,7 +101,7 @@ export default class HistoryGraph extends PureComponent { |
99 | y2={y(middleValue) * -1} | 101 | y2={y(middleValue) * -1} |
100 | stroke={colors.axis} | 102 | stroke={colors.axis} |
101 | strokeDasharray={[3, 3]} | 103 | strokeDasharray={[3, 3]} |
102 | - strokeWidth="0.5" | 104 | + strokeWidth="1" |
103 | /> | 105 | /> |
104 | 106 | ||
105 | {/* bottom axis */} | 107 | {/* bottom axis */} |
... | @@ -109,7 +111,7 @@ export default class HistoryGraph extends PureComponent { | ... | @@ -109,7 +111,7 @@ export default class HistoryGraph extends PureComponent { |
109 | x2={graphWidth} | 111 | x2={graphWidth} |
110 | y2="2" | 112 | y2="2" |
111 | stroke={colors.axis} | 113 | stroke={colors.axis} |
112 | - strokeWidth="0.5" | 114 | + strokeWidth="1" |
113 | /> | 115 | /> |
114 | 116 | ||
115 | {/* bars */} | 117 | {/* bars */} |
... | @@ -121,8 +123,8 @@ export default class HistoryGraph extends PureComponent { | ... | @@ -121,8 +123,8 @@ export default class HistoryGraph extends PureComponent { |
121 | rx={2.5} | 123 | rx={2.5} |
122 | width={GRAPH_BAR_WIDTH} | 124 | width={GRAPH_BAR_WIDTH} |
123 | height={y(item.value)} | 125 | height={y(item.value)} |
124 | - fill = {this.state.kg == item.label ? colors.bars : colors.bardefult} | 126 | + fill = {this.state.span == item.label ? colors.bars : colors.bardefult} |
125 | - onPress={()=>this.handleClick(item.label)} | 127 | + onPress={()=>this.handleClick(item)} |
126 | /> | 128 | /> |
127 | ))} | 129 | ))} |
128 | 130 | ||
... | @@ -138,7 +140,10 @@ export default class HistoryGraph extends PureComponent { | ... | @@ -138,7 +140,10 @@ export default class HistoryGraph extends PureComponent { |
138 | </G> | 140 | </G> |
139 | </Svg> | 141 | </Svg> |
140 | <View style={style.container}> | 142 | <View style={style.container}> |
141 | - <Text>{this.state.kg}</Text> | 143 | + <Text>{this.state.span}</Text> |
144 | + <View> | ||
145 | + <Text>{this.state.kg/1000}kg</Text> | ||
146 | + </View> | ||
142 | </View> | 147 | </View> |
143 | </View> | 148 | </View> |
144 | ) | 149 | ) | ... | ... |
-
Please register or login to post a comment