mahaplatform/reframe

View on GitHub
src/controls/lookup2/reducer.js

Summary

Maintainability
A
3 hrs
Test Coverage
export const INITIAL_STATE = {
  active: false,
  records: null,
  selected: [],
  status: 'pending'
}

const reducer = (state = INITIAL_STATE, action) => {

  switch (action.type) {

  case 'FETCH_REQUEST':
    return {
      ...state,
      status: 'loading'
    }

  case 'FETCH_FAILURE':
    return {
      ...state,
      status: 'failure'
    }

  case 'FETCH_SUCCESS':
    return {
      ...state,
      selected: action.result.data,
      status: 'success'
    }

  case 'SET':
    return {
      ...state,
      records: action.records
    }

  case 'BEGIN':
    return {
      ...state,
      active: true
    }

  case 'END':
    return {
      ...state,
      active: false
    }

  case 'SELECT':
    return {
      ...state,
      selected: action.selected
    }

  case 'REMOVE':
    return {
      ...state,
      selected: [
        ...state.selected.slice(0, action.index),
        ...state.selected.slice(action.index + 1)
      ]
    }

  default:
    return state

  }

}

export default reducer