Configure Redux

To prepare your app to use the PubNub Redux framework, you will need to implement the following items. These instructions are non-prescriptive, to help you be free to follow your own app development process.

Configure the Store

A Redux application manages all application state in a centralized location called the store. To gain the benefits offered by the PubNub Redux framework, you must configure your store to include references to the PubNub libraries.

Create the PubNub Instance

let pubnub = new Pubnub({  publishKey: "myPublishKey",  subscribeKey: "mySubscribeKey"});

Configure Reducers

let rootReducer = combineReducers(  createNetworkStatusReducer(false),  createMessageReducer(),  createPresenceReducer(),  createUserDataReducer(),  createChannelDataReducer(),  createMembershipReducer(),  createChannelMembersReducer(),);

Configure Redux Thunk Middleware

The PubNub Redux framework uses Redux Thunk to manage the interaction with commands that execute PubNub API calls, process the responses, and dispatch Redux actions.

let thunkArgument = {  pubnub: {    api: pubnub  }};let middleware = applyMiddleware(ReduxThunk.withExtraArgument(thunkArgument));

Complete the Store Configuration

let myStore = createStore(  rootReducer,  undefined,  middleware,);

Register Listeners

You can register all the listeners that are included in the PubNub Redux framework.

pubnub.addListener(createPubnubListener(store.dispatch));

You can also choose to register only specific listeners and combine with other listeners in your application.

pubnub.addListener(  combineListeners(    createNetworkStatusListener(store.dispatch),    createMessageListener(store.dispatch),    createPresenceListener(store.dispatch),    // a custom listener    {      status: (status) => {        console.log(status)      }    }  ));