Redux React Native Session
This fork is to re-release version 1.0.4 as that release in NPM is not consistent with the parent repo's code.
Keep your session sync with AsyncStorage and Redux
Redux React Native Session provides an simple API that allows to manage sessions through the app.
Installation
yarn:
yarn add redux-react-native-session
npm:
npm install redux-react-native-session --save
Usage
- Add the session reducer:
import { combineReducers } from 'redux';
import { sessionReducer } from 'redux-react-native-session';
const reducers = {
// ... your other reducers here ...
session: sessionReducer
};
const reducer = combineReducers(reducers);
- Initiate the session service:
import { createStore } from 'redux';
import { sessionService } from 'redux-react-native-session';
const store = createStore(reducer)
sessionService.initSessionService(store);
API
initSessionService(store)
Initialize an instance of the session service.
refreshFromAsyncStorage
Force to refresh the Redux store from the AsyncStorage.
Note: this function is called once the session service is initialized
saveSession(session:object) : Promise
Saves the session object in the AsyncStorage and changes the authenticated
flag to true
in Redux store
loadSession : Promise(currentSession:Object)
Returns the current session if exists
Example:
loadSession
.then(currentSession => console.log(currentSession))
.catch(err => console.log(err))
deleteSession : Promise
Deletes the current session from the AsyncStorage
saveUser(user:object) : Promise
Saves the user object in the AsyncStorage and in the Redux store
loadUser : Promise
Returns the current user if exists
deleteUser : Promise
Deletes the current user from the AsyncStorage and the Redux store
Immutable JS
Usage of redux-react-native-session
with an immutable store is really simple.
Instead of the sessionReducer
import the sessionImmutableReducer
, as the following example:
- Add the session reducer:
import { combineReducers } from 'redux';
import { sessionImmutableReducer as session } from 'redux-react-native-session';
const reducers = {
// ... your other reducers here ...
session
};
const reducer = combineReducers(reducers);