UNPKG

stitch-ui

Version:

45 lines (43 loc) 1.37 kB
import { createReducer } from "redux-act"; import { OrderedMap } from "immutable"; import * as actions from "./actions"; import * as svcActions from "../actions"; import Rule from "./rule"; export default createReducer( { [svcActions.loadSvcActions.rcv]: (state, payload) => { if (payload.payload.type === "mongodb") { return state; } return { ...state, rules: new OrderedMap(payload.payload.rules || {}).map((raw, _id) => Rule.fromRawRule(raw).set("_id", _id) ), rulesClean: new OrderedMap( payload.payload.rules || {} ).map((raw, _id) => Rule.fromRawRule(raw).set("_id", _id)) }; }, [actions.discardChanges]: (state, { ruleId }) => ({ ...state, rules: state.rules.set(ruleId, state.rulesClean.get(ruleId)) }), [actions.setRule]: (state, { ruleId, rule }) => ({ ...state, rules: state.rules.set(ruleId, rule) }), [actions.setRuleWhen]: (state, { ruleId, value }) => ({ ...state, rules: state.rules.updateIn([ruleId], r => r.updateWhenInput(value)) }), [actions.setRuleAction]: (state, { ruleId, action, enabled }) => ({ ...state, rules: state.rules.updateIn([ruleId], r => r.setAction(action, enabled)) }) }, { rules: new OrderedMap(), rulesClean: new OrderedMap() } );