Commit 25ea2c3
Changed files (3)
app
domain
screens
app/domain/application-storage.js
@@ -6,6 +6,7 @@ export default class ApplicationStorage {
console.log(`found ${key} ${value}`);
return value;
}
+
async save(key, value) {
try {
console.log(`storing ${key} ${value}`);
@@ -14,4 +15,12 @@ export default class ApplicationStorage {
console.error(error.message);
}
}
+
+ async delete(key) {
+ try {
+ await AsyncStorage.removeItem(key);
+ } catch (error) {
+ console.error(error.message);
+ }
+ }
}
app/screens/dashboard-screen.js
@@ -1,5 +1,6 @@
import React, { Component } from 'react';
-import { View, Text, TouchableHighlight, AsyncStorage } from 'react-native';
+import { View, Text, Button } from 'react-native';
+import ApplicationStorage from '../domain/application-storage';
export default class DashboardScreen extends Component {
render() {
@@ -7,7 +8,26 @@ export default class DashboardScreen extends Component {
return (
<View>
<Text>Welcome back !</Text>
+ <Button onPress={this.onHistory.bind(this)} title="History" />
+ <Button onPress={this.onStartWorkout.bind(this)} title="Start Workout" />
+ <Button onPress={this.onLogout.bind(this)} title="Logout" />
</View>
);
}
+
+ onHistory() {
+ console.log("load previous workouts");
+ }
+
+ onStartWorkout() {
+ console.log("load previous workouts");
+ }
+
+ onLogout() {
+ console.log("logout");
+ let storage = new ApplicationStorage();
+ storage.delete('authentication_token');
+ storage.delete('username');
+ this.props.navigator.pop();
+ }
}
app/screens/login-screen.js
@@ -17,13 +17,8 @@ export default class LoginScreen extends Component {
componentDidMount() {
let token = this.storage.fetch('authentication_token');
- let username = this.storage.fetch('username');
-
- console.log(username);
- if (token) {
- this.props.navigator.push({
- component: DashboardScreen, params: { username: username }
- });
+ if (token != null) {
+ this.openDashboard(this.storage.fetch('username'))
}
}
@@ -51,7 +46,14 @@ export default class LoginScreen extends Component {
console.log(json);
that.storage.save("authentication_token", json.token);
that.storage.save("username", value.username);
+ that.openDashboard(value.username);
});
}
}
+
+ openDashboard(username) {
+ this.props.navigator.push({
+ component: DashboardScreen, params: { username: username }
+ });
+ }
}