victorpopkov/universal-redux

View on GitHub
src/app/markdown/duck/reducers.js

Summary

Maintainability
A
0 mins
Test Coverage
import { createReducer } from 'redux-immutablejs';
import { fromJS } from 'immutable';
import types from './types';

export default createReducer(
  fromJS({
    loading: false,
    loaded: false,
    content: null,
    error: null,
  }),
  {
    [types.LOAD_MARKDOWN]: (state) =>
      state.merge({
        loading: true,
        error: null,
      }),
    [types.LOAD_MARKDOWN_SUCCESS]: (state, action) =>
      state.merge({
        loading: false,
        loaded: true,
        content: action.result.content,
        error: null,
      }),
    [types.LOAD_MARKDOWN_FAIL]: (state, action) =>
      state.merge({
        loading: false,
        loaded: true,
        content: null,
        error: action.error.message,
      }),
  },
);