diff -r 1f340f3597a8 -r ea92f4fe783d client/src/selectors/syncSelectors.js --- a/client/src/selectors/syncSelectors.js Tue Oct 09 19:07:47 2018 +0200 +++ b/client/src/selectors/syncSelectors.js Mon Oct 08 18:35:47 2018 +0200 @@ -1,10 +1,18 @@ // selectors linked to syncronization status +import * as R from 'ramda'; + import { ActionEnum } from '../constants'; -export const getLastSync = state => state.getIn(['authStatus', 'lastSync']) || 0 +export const getLastSync = R.pathOr(0, ['authStatus', 'lastSync']); -export const isSynchronizing = state => state.getIn(['status', 'isSynchronizing']) +export const isSynchronizing = R.path(['status', 'isSynchronizing']); -export const isSynchronized = state => - state.get('notes').every((n) => n.get('action')===ActionEnum.NONE) && - state.get('sessions').every((n) => n.get('action')===ActionEnum.NONE) +const isAllActionNone = R.all(R.propEq('action', ActionEnum.NONE)) +const notesIsAllActionNone = R.compose(isAllActionNone, R.prop('notes')); +const sessionsIsAllActionNone = R.compose(isAllActionNone, R.prop('sessions')); + +export const isSynchronized = R.converge(R.and, [notesIsAllActionNone, sessionsIsAllActionNone]) + +// export const isSynchronized = state => +// state['notes'].every((n) => n['action']===ActionEnum.NONE) && +// state['sessions'].every((n) => n['action']===ActionEnum.NONE)