-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
62 lines (53 loc) · 1.63 KB
/
App.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
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { NativeRouter, Route, Link } from 'react-router-native';
// Import Firebase Login
import firebase from 'firebase/app';
require('firebase/auth');
import fireApp from './base2';
// Import the components
import Login from './components/Login';
import Overview from './components/MeasurementOverview';
import Add from './components/Add';
import Measurement from './components/Measurement';
export default class App extends React.Component {
constructor(props) {
super(props);
this.authenticate = this.authenticate.bind(this);
this.state = {
uid: null,
};
}
logout() {
firebase.auth(fireApp).signOut();
this.setState({ uid: null });
}
authenticate(email,password) {
fireApp.auth().signInAndRetrieveDataWithEmailAndPassword(email, password).then(user => {
this.setState({
uid: user.user.uid
});
});
}
render() {
if (this.state.uid === null) {
return <Login authenticate={this.authenticate} />
}
return (
<NativeRouter>
<View style={styles.container}>
<Route exact path="/" render={()=><Overview head="MEASUREMENTS" uid={this.state.uid} />} />
<Route path="/add" render={()=><Add head="ADD MEASUREMENT" uid={this.state.uid} />} />
<Route path="/view/:measurementId" render={({match}) => <Measurement head="VIEW MEASUREMENT" match={match} uid={this.state.uid} />} />
</View>
</NativeRouter>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
justifyContent: 'center',
},
});