diff -r 6f3078f7fd47 -r be36eed5e6e0 client/src/selectors/coreSelectors.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/src/selectors/coreSelectors.js Thu Aug 03 17:33:00 2017 +0200 @@ -0,0 +1,45 @@ +import Immutable from 'immutable'; +import { ActionEnum } from '../constants' + + +const getSessionMapSelector = actionVal => state => + state.get('sessions') + .filter(s => s.get('action') === actionVal) + .reduce( + (res, obj) => { + return res.set(obj.get('_id'), obj); + }, + Immutable.Map() + ); + +const getNoteMapSelector = actionVal => state => { + const deletedSessions = state.get('sessions') + .filter(s => s.get('action') === ActionEnum.DELETED) + .reduce( + (res, obj) => { + return res.set(obj.get('_id'), obj); + }, + Immutable.Map() + ); + return state.get('notes') + .filter(n => (n.get('action') === actionVal && !deletedSessions.has(n.get('session')))) + .reduce( + (res, obj) => { + return res.set(obj.get('_id'), obj); + }, + Immutable.Map() + ); +} + + +export const getUpdatedSessions = getSessionMapSelector(ActionEnum.UPDATED); + +export const getCreatedSessions = getSessionMapSelector(ActionEnum.CREATED); + +export const getDeletedSessions = getSessionMapSelector(ActionEnum.DELETED); + +export const getUpdatedNotes = getNoteMapSelector(ActionEnum.UPDATED); + +export const getCreatedNotes = getNoteMapSelector(ActionEnum.CREATED); + +export const getDeletedNotes = getNoteMapSelector(ActionEnum.DELETED);