Sha256: 3d2fe74b361fc3bc8fc319eb2de38bf6b4eea915edc058d67652db63052e37db
Contents?: true
Size: 1.12 KB
Versions: 5
Compression:
Stored size: 1.12 KB
Contents
import Immutable from 'seamless-immutable'; import { FOREMAN_TASK_DETAILS_FETCH_TASK_REQUEST, FOREMAN_TASK_DETAILS_FETCH_TASK_SUCCESS, FOREMAN_TASK_DETAILS_STOP_POLLING, FOREMAN_TASK_DETAILS_START_POLLING, } from './TaskDetailsConstants'; const initialState = Immutable({}); export default (state = initialState, action) => { const { type, payload } = action; let { taskReload, timeoutId } = state; switch (type) { case FOREMAN_TASK_DETAILS_FETCH_TASK_REQUEST: return state.set('loading', true); case FOREMAN_TASK_DETAILS_FETCH_TASK_SUCCESS: if (payload.state === 'stopped') { clearTimeout(state.timeoutId); taskReload = false; timeoutId = null; } return state.merge({ loading: false, ...payload, taskReload, timeoutId, }); case FOREMAN_TASK_DETAILS_STOP_POLLING: return state.merge({ taskReload: false, timeoutId: null }); case FOREMAN_TASK_DETAILS_START_POLLING: clearTimeout(state.timeoutId); return state.merge({ taskReload: true, timeoutId: payload.timeoutId }); default: return state; } };
Version data entries
5 entries across 5 versions & 1 rubygems