Commit e6b408f
Changed files (2)
app
domain
screens
app/domain/application-storage.js
@@ -0,0 +1,13 @@
+import { View, Text, TouchableHighlight, AsyncStorage } from 'react-native';
+
+export default class ApplicationStorage {
+ fetch(key) {
+ const value = await AsyncStorage.getItem(key);
+ console.log(`found ${key} ${value}`);
+ return value;
+ }
+ save(key, value) {
+ console.log(`storing ${key} ${value}`);
+ AsyncStorage.setItem(key, value);
+ }
+}
app/screens/login-screen.js
@@ -1,8 +1,9 @@
import React, { Component } from 'react';
import { View, Text, TouchableHighlight, AsyncStorage } from 'react-native';
-import Movies from '../components/movies';
import Account from '../domain/account'
import Api from '../services/api'
+import ApplicationStorage from '../domain/application-storage'
+import Movies from '../components/movies';
var t = require('tcomb-form-native');
var Form = t.form.Form;
@@ -11,6 +12,18 @@ export default class LoginScreen extends Component {
static get defaultProps() {
return { title: 'LoginScreen' };
}
+ constructor(props) {
+ super(props)
+ this.storage = new ApplicationStorage();
+ }
+
+ componentDidMount() {
+ debugger
+ let token = this.storage.fetch('authentication_token');
+ if (token) {
+ this.props.navigator.push({component: Movies, params: {}});
+ }
+ }
render() {
return (
@@ -50,12 +63,8 @@ export default class LoginScreen extends Component {
let that = this;
new Api('/api/sessions').post(body, (json) => {
console.log(json);
- that.storeToken("authentication_token", json.token)
+ that.storage.save("authentication_token", json.token);
});
}
}
-
- storeToken(key, value) {
- AsyncStorage.setItem(key, value);
- }
}