@ryan-pratt/redux-react-native-session

1.0.5 • Public • Published

Redux React Native Session

NPM version Dependency Status

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);

Package Sidebar

Install

npm i @ryan-pratt/redux-react-native-session

Weekly Downloads

0

Version

1.0.5

License

MIT

Unpacked Size

28.5 kB

Total Files

14

Last publish

Collaborators

  • ryan-pratt