client/src/selectors/syncSelectors.js
changeset 168 ea92f4fe783d
parent 134 be36eed5e6e0
--- 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)