diff -r 6f3078f7fd47 -r be36eed5e6e0 client/src/sagas/selectors.js --- a/client/src/sagas/selectors.js Thu Aug 03 09:44:37 2017 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -// Define state selector for saga -import Immutable from 'immutable'; -import { ActionEnum } from '../constants' - -export const getLastSync = state => state.getIn(['authStatus', 'lastSync']) || 0 - -export const getOnline = state => state.getIn(["status", 'online']) - -export const getToken = state => state.getIn(['authStatus','token']) - -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);