LukeSheard/Monzo-Dashboard

View on GitHub
src/common/store/session/duck.js

Summary

Maintainability
A
0 mins
Test Coverage
import jwtDecode from 'jwt-decode';

const RECEIVE = 'SESSION_RECEIVE_TOKEN';
const REMOVE = 'SESSION_REMOVE_TOKEN';

import {
  createAction,
  handleActions,
} from 'redux-actions';

export const receiveToken = createAction(RECEIVE);
export const removeToken = createAction(REMOVE);

export const initialState = {
  loading: false,
  data: {},
};
export default handleActions({
  [receiveToken]: (state, action) => ({
    ...state,
    data: {
      bearer: action.payload,
      token: jwtDecode(action.payload),
    },
  }),
  [removeToken]: () => initialState,
}, initialState);