import { GROUP_RELATIONSHIPS_FETCH_SUCCESS, GROUP_JOIN_SUCCESS, GROUP_LEAVE_SUCCESS } from '../actions/groups'; import { Map as ImmutableMap, fromJS } from 'immutable'; const normalizeRelationship = (state, relationship) => state.set(relationship.id, fromJS(relationship)); const normalizeRelationships = (state, relationships) => { relationships.forEach(relationship => { state = normalizeRelationship(state, relationship); }); return state; }; const initialState = ImmutableMap(); export default function group_relationships(state = initialState, action) { switch(action.type) { case GROUP_JOIN_SUCCESS: case GROUP_LEAVE_SUCCESS: return normalizeRelationship(state, action.relationship); case GROUP_RELATIONSHIPS_FETCH_SUCCESS: return normalizeRelationships(state, action.relationships); default: return state; } };