UNPKG

trc-client-core

Version:
39 lines (30 loc) 1.19 kB
import {Map, OrderedMap, fromJS} from 'immutable'; import {file} from 'trc-client-core/src/utils/Request'; import createRequestActions from 'trc-client-core/src/utils/createRequestActions'; const FETCH = 'trc/fileUpload/FETCH'; const RECEIVE = 'trc/fileUpload/RECEIVE'; const ERROR = 'trc/fileUpload/ERROR'; export const requestFileUpload = createRequestActions(FETCH, RECEIVE, ERROR, file.upload); const initialState = Map({ fetching: false, collection: OrderedMap({}) }); export default function fileUploadReducer(state = initialState, action = {}) { switch (action.type) { case FETCH: return state .set('fetching', true); case ERROR: return state .set('fetching', false) .set('error', action.payload); case RECEIVE: var newState = fromJS(action.payload) .reduce((rr, ii) => rr.set(ii.getIn(['request', 'filePath']), ii.getIn(['request', 'objectKey'])), OrderedMap()); return state .set('fetching', false) .mergeDeepIn(['collection'], newState); default: return state; } }