UNPKG

stitch-ui

Version:

77 lines (73 loc) 1.94 kB
import { createReducer } from "redux-act"; import * as actions from "./actions"; export default createReducer( { // TODO just use local state, not redux, for modal open/close state. [actions.showNewAppModal]: state => ({ ...state, showNewAppModal: true }), [actions.hideNewAppModal]: state => ({ ...state, showNewAppModal: false, createAppError: null }), [actions.loadAppsActions.req]: state => ({ ...state, loading: true }), [actions.loadAppsActions.rcv]: (state, payload) => ({ ...state, loading: false, apps: payload.payload, error: null }), [actions.loadAppsActions.fail]: (state, payload) => ({ ...state, loading: false, error: payload.error }), [actions.createAppActions.req]: state => ({ ...state, creatingApp: true }), [actions.createAppActions.rcv]: state => ({ ...state, creatingApp: false, createAppError: null }), [actions.createAppActions.fail]: (state, payload) => ({ ...state, creatingApp: false, createAppError: payload.error }), [actions.setCreateAppError]: (state, payload) => ({ ...state, createAppError: payload }), [actions.deleteAppActions.req]: state => ({ ...state, deletingApp: true }), [actions.deleteAppActions.rcv]: state => ({ ...state, deletingApp: false }), [actions.deleteAppActions.fail]: (state, payload) => ({ ...state, deletingApp: false, error: payload.error }), [actions.toggleGroupDropdown]: state => ({ ...state, isGroupDropdownOpen: !state.isGroupDropdownOpen }), [actions.setGroupId]: (state, id) => ({ ...state, groupId: id }) }, { groupId: null, isGroupDropdownOpen: false, apps: [], loading: false, showNewAppModal: false, createAppError: null, error: null } );