UNPKG

onfido-sdk-ui

Version:

JavaScript SDK view layer for Onfido identity verification

40 lines (32 loc) 968 B
import { CAPTURE_CREATE, CAPTURE_DELETE, SET_CAPTURE_METADATA } from '../../constants' import { cleanFalsy } from '~utils/array' import { omit } from '~utils/object' const initialState = {} const stateKey = arr => cleanFalsy(arr).join('_') const getKeyByCaptureId = (captures = {}, captureId) => Object.keys(captures).find(key => captures[key].id === captureId) export function captures (state = initialState, action = {}) { const { payload = {}, type } = action const key = payload.captureId ? getKeyByCaptureId(state, payload.captureId) : stateKey([payload.method, payload.side]) switch (type) { case CAPTURE_CREATE: return { ...state, [key]: payload, } case CAPTURE_DELETE: return omit(state, [key]) case SET_CAPTURE_METADATA: return { ...state, [key]: { ...state[key], metadata: payload.metadata, } } default: return state } }