redux-react-native-session
v1.0.7
Published
Keep your session sync with the storage and redux
Downloads
243
Maintainers
Readme
Redux React Native Session
Keep your session sync with AsyncStorage and Redux :key:
Redux React Native Session provides an simple API that allows to manage sessions through the app.
Installation
- Install:
yarn:
yarn add redux-react-native-session
npm:
npm install redux-react-native-session
- Link:
react-native link @react-native-community/async-storage
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);