This template is modified from the original one, to handle multiple status-code handling of response. Don't ask me how they work, I don't quite understand them in depth...
21 lines
983 B
Text
21 lines
983 B
Text
import {ApiEntitiesRecord} from "./ApiEntitiesRecord{{importFileExtension}}";
|
|
import {ReducerBuilder} from "redux-ts-simple";
|
|
import {normalizedEntities} from "./runtimeSagasAndRecords{{importFileExtension}}";
|
|
|
|
export const ApiEntitiesReducer = new ReducerBuilder(ApiEntitiesRecord())
|
|
.on(normalizedEntities, (state, action): ApiEntitiesRecord => {
|
|
const {entities} = action.payload;
|
|
return state.withMutations(mutableState => {
|
|
for (const entityKey in entities) {
|
|
const entityMap = entities[entityKey];
|
|
const currentEntityMap = mutableState.get(entityKey as any);
|
|
if (currentEntityMap) {
|
|
let mergedEntityMap = currentEntityMap.mergeDeep(entityMap);
|
|
if (!mergedEntityMap.equals(currentEntityMap)) {
|
|
mutableState.set(entityKey as any, mergedEntityMap);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
})
|
|
.build();
|