app opens now at last selectioned server

This commit is contained in:
Guilherme Gazzo 2017-08-21 00:00:41 -03:00
parent e3fab36f0a
commit 2ba17081ea
No known key found for this signature in database
GPG Key ID: 1F85C9AD922D0829
5 changed files with 32 additions and 4 deletions

View File

@ -12,6 +12,7 @@ function createRequestTypes(base, types = defaultTypes) {
// Login events // Login events
export const LOGIN = createRequestTypes('LOGIN', [...defaultTypes, 'SET_TOKEN', 'SUBMIT']); export const LOGIN = createRequestTypes('LOGIN', [...defaultTypes, 'SET_TOKEN', 'SUBMIT']);
export const ROOMS = createRequestTypes('ROOMS'); export const ROOMS = createRequestTypes('ROOMS');
export const APP = createRequestTypes('APP', ['READY']);
export const MESSAGES = createRequestTypes('MESSAGES'); export const MESSAGES = createRequestTypes('MESSAGES');
export const NAVIGATION = createRequestTypes('NAVIGATION', ['SET']); export const NAVIGATION = createRequestTypes('NAVIGATION', ['SET']);
export const SERVER = createRequestTypes('SERVER', ['SELECT', 'CHANGED']); export const SERVER = createRequestTypes('SERVER', ['SELECT', 'CHANGED']);

View File

@ -1,5 +1,11 @@
import * as types from '../constants/types'; import * as types from '../constants/types';
import { APP } from './actionsTypes';
export function appReady() {
return {
type: APP.READY
};
}
export function setCurrentServer(server) { export function setCurrentServer(server) {
return { return {
type: types.SET_CURRENT_SERVER, type: types.SET_CURRENT_SERVER,

View File

@ -1,12 +1,16 @@
import { fork } from 'redux-saga/effects'; import { fork, take } from 'redux-saga/effects';
import * as types from '../actions/actionsTypes';
import hello from './hello'; import hello from './hello';
import login from './login'; import login from './login';
import connect from './connect'; import connect from './connect';
import rooms from './rooms'; import rooms from './rooms';
import messages from './messages'; import messages from './messages';
import selectServer from './selectServer'; import selectServer from './selectServer';
import init from './init';
const root = function* root() { const root = function* root() {
yield fork(init);
yield take(types.APP.READY);
yield fork(hello); yield fork(hello);
yield fork(rooms); yield fork(rooms);
yield fork(login); yield fork(login);

15
app/sagas/init.js Normal file
View File

@ -0,0 +1,15 @@
import { AsyncStorage } from 'react-native';
import { call, put } from 'redux-saga/effects';
import * as actions from '../actions';
import { setServer } from '../actions/server';
const restore = function* restore() {
try {
const currentServer = yield call([AsyncStorage, 'getItem'], 'currentServer');
yield put(actions.appReady({}));
if (currentServer) { yield put(setServer(currentServer)); }
} catch (e) {
console.log(e);
}
};
export default restore;

View File

@ -1,12 +1,14 @@
import { put, takeEvery } from 'redux-saga/effects'; import { put, takeEvery, call } from 'redux-saga/effects';
import { AsyncStorage } from 'react-native';
import { SERVER } from '../actions/actionsTypes'; import { SERVER } from '../actions/actionsTypes';
import { connectRequest, disconnect } from '../actions/connect'; import { connectRequest, disconnect } from '../actions/connect';
import { changedServer } from '../actions/server'; import { changedServer } from '../actions/server';
const selectServer = function* selectServer(server) { const selectServer = function* selectServer({ server }) {
yield put(disconnect()); yield put(disconnect());
yield put(changedServer(server)); yield put(changedServer(server));
yield console.log('SERVER->', server);
yield call([AsyncStorage, 'setItem'], 'currentServer', server);
yield put(connectRequest(server)); yield put(connectRequest(server));
}; };
const root = function* root() { const root = function* root() {