in src/app/customers/store/catalogs/catalog.reducer.ts [36:104]
export function reducer(state: State = initialState, action: catalogActions.Actions): State {
switch (action.type) {
case catalogActions.LOAD: {
const catalog: Catalog = action.payload;
return Object.assign({}, state, {
catalog,
loadedAt: Date.now()
});
}
case catalogActions.CREATE_SUCCESS: {
const catalog: Catalog = action.payload.catalog;
return Object.assign({}, state, {
catalog,
loadedAt: state.loadedAt
});
}
case catalogActions.DELETE_SUCCESS: {
return initialState;
}
case catalogActions.SELECT_FIELD: {
return Object.assign({}, state, {
selectedFieldIdentifier: action.payload
});
}
case catalogActions.UPDATE_FIELD_SUCCESS: {
const payload = action.payload;
const updatedField: Field = payload.field;
const catalog = Object.assign({}, state.catalog, {
fields: state.catalog.fields.map(field =>
field.identifier === updatedField.identifier ? updatedField : field
)
});
return Object.assign({}, state, {
catalog,
loadedAt: state.loadedAt
});
}
case catalogActions.DELETE_FIELD_SUCCESS: {
const payload = action.payload;
const deletedField: Field = payload.field;
const catalog = Object.assign({}, state.catalog, {
fields: state.catalog.fields.filter(field =>
field.identifier !== deletedField.identifier
)
});
return Object.assign({}, state, {
catalog,
loadedAt: state.loadedAt
});
}
default: {
return state;
}
}
}