summaryrefslogtreecommitdiff
path: root/client/faceAnalysis/faceAnalysis.reducer.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/faceAnalysis/faceAnalysis.reducer.js')
-rw-r--r--client/faceAnalysis/faceAnalysis.reducer.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/client/faceAnalysis/faceAnalysis.reducer.js b/client/faceAnalysis/faceAnalysis.reducer.js
new file mode 100644
index 00000000..d9be7447
--- /dev/null
+++ b/client/faceAnalysis/faceAnalysis.reducer.js
@@ -0,0 +1,48 @@
+import * as types from '../types'
+
+const initialState = () => ({
+ query: {},
+ task: {},
+ result: {},
+ loading: false,
+ startTime: 0,
+ timing: 0,
+})
+
+export default function faceAnalysisReducer(state = initialState(), action) {
+ const { startTime } = state
+ switch (action.type) {
+ case types.faceAnalysis.loading:
+ return {
+ ...state,
+ startTime: action.ts,
+ timing: 0,
+ [action.tag]: { loading: true },
+ }
+
+ case types.faceAnalysis.loaded:
+ return {
+ ...state,
+ timing: action.ts - startTime,
+ [action.tag]: action.data,
+ }
+
+ case types.faceAnalysis.poll:
+ return {
+ ...state,
+ timing: action.ts - startTime,
+ result: action.data,
+ }
+
+ case types.faceAnalysis.error:
+ console.log('error', action)
+ return {
+ ...state,
+ timing: action.ts - startTime,
+ [action.tag]: { error: action.err },
+ }
+
+ default:
+ return state
+ }
+}