client/src/selectors/syncSelectors.js
changeset 168 ea92f4fe783d
parent 134 be36eed5e6e0
equal deleted inserted replaced
167:1f340f3597a8 168:ea92f4fe783d
     1 // selectors linked to syncronization status
     1 // selectors linked to syncronization status
       
     2 import * as R from 'ramda';
       
     3 
     2 import { ActionEnum } from '../constants';
     4 import { ActionEnum } from '../constants';
     3 
     5 
     4 export const getLastSync = state => state.getIn(['authStatus', 'lastSync']) || 0
     6 export const getLastSync = R.pathOr(0, ['authStatus', 'lastSync']);
     5 
     7 
     6 export const isSynchronizing = state => state.getIn(['status', 'isSynchronizing'])
     8 export const isSynchronizing = R.path(['status', 'isSynchronizing']);
     7 
     9 
     8 export const isSynchronized = state =>
    10 const isAllActionNone = R.all(R.propEq('action', ActionEnum.NONE))
     9     state.get('notes').every((n) => n.get('action')===ActionEnum.NONE) &&
    11 const notesIsAllActionNone = R.compose(isAllActionNone, R.prop('notes'));
    10     state.get('sessions').every((n) => n.get('action')===ActionEnum.NONE)
    12 const sessionsIsAllActionNone = R.compose(isAllActionNone, R.prop('sessions'));
       
    13 
       
    14 export const isSynchronized = R.converge(R.and, [notesIsAllActionNone, sessionsIsAllActionNone])
       
    15 
       
    16 // export const isSynchronized = state =>
       
    17 //     state['notes'].every((n) => n['action']===ActionEnum.NONE) &&
       
    18 //     state['sessions'].every((n) => n['action']===ActionEnum.NONE)