-
Notifications
You must be signed in to change notification settings - Fork 0
/
log_entry.js
90 lines (79 loc) · 1.91 KB
/
log_entry.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
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
import React, { Component } from 'react';
import {
AsyncStorage,
Button,
Text,
TextInput,
View,
} from 'react-native';
import DatePicker from 'react-native-datepicker'
export class LogEntry extends Component {
static navigationOptions = {
title: 'Log Entry'
}
constructor(props) {
super(props);
this.state = {
date: new Date()
}
}
render() {
const { navigate } = this.props.navigation;
return(
<View>
<Text>Date</Text>
<DatePicker
date={this.state.date}
onDateChange={(date) => {
this.setState({date: date})
}}
/>
<Text>Odometer</Text>
<TextInput
value={this.state.odometer}
keyboardType='numeric'
onChangeText={(odometer) => {this.setState({odometer: odometer})}}
/>
<Text>Volume (gal)</Text>
<TextInput
value={this.state.volume}
keyboardType='numeric'
onChangeText={(volume) => {this.setState({volume: volume})}}
/>
<Text>Price ($/gal)</Text>
<TextInput
value={this.state.price}
keyboardType='numeric'
onChangeText={(price) => {this.setState({price: price})}}
/>
<Button
title='Save log entry'
onPress={() => {
this._saveData()
navigate('History')
}}
/>
</View>
)
}
_formattedDate() {
let date = this.state.date
if (typeof date == 'string') { return date }
let day = date.getDate()
if (day < 10) { day = '0'+day }
let month = date.getMonth() + 1
let year = date.getFullYear()
return [month, day, year].join('/')
}
_saveData() {
key = this.state.odometer
value = [
this._formattedDate(),
this.state.volume,
this.state.price,
this.state.odometer,
'F'
].join(',')
AsyncStorage.setItem(key, value)
}
}