Sha256: d2676a41af291e69f30277cac6b6a8fb415eecb14057ad3da297260715cd07e3

Contents?: true

Size: 693 Bytes

Versions: 2

Compression:

Stored size: 693 Bytes

Contents

import { FETCH, CREATE, DELETE, SHOW_ALL } from '../actions/Messages';

const messagesState = { messages: [], loaded: false, showAll: false };

export function messages(state = messagesState, action) {
  switch (action.type) {
  case FETCH:
    return { ...state, messages: action.data, loaded: true };
  case CREATE:
    let newState = state.messages.concat([action.message]);
    return { ...state, messages: newState };
  case DELETE:
    let index = state.messages.map((x) => x.id).indexOf(action.id);
    state.messages.splice(index, 1);
    return { ...state, messages: state.messages };
  case SHOW_ALL:
    return { ...state, showAll: action.data };
  default:
    return state;
  }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
denshobato_chat_panel-0.0.2 lib/react/reducers/Messages.jsx
denshobato_chat_panel-0.0.1 lib/react/reducers/Messages.jsx