Merged PR 288: #1013 Fix Duplicate Check in AddResult Reducer

Related work items: #1013
This commit is contained in:
Sebastian Neumair
2020-09-14 08:38:54 +00:00
committed by Lorenz Hilpert
2 changed files with 59 additions and 25 deletions

View File

@@ -34,7 +34,7 @@ import { ReloadRemission } from '../actions/remission.actions';
import { ReloadFormState } from '../actions/forms.actions';
import { FILIALE_LANDING_PAGE } from '../../utils/app.constants';
export const SYNC_DATA_VERSION = 212;
export const SYNC_DATA_VERSION = 213;
export class AppStateModel {
currentProcesssId: number;

View File

@@ -1,13 +1,24 @@
import { createReducer, Action, on } from '@ngrx/store';
import { INITIAL_SEARCH_STATE, SearchState, searchStateAdapter, INITIAL_SEARCH_PROCESS } from './search.state';
import {
INITIAL_SEARCH_STATE,
SearchState,
searchStateAdapter,
INITIAL_SEARCH_PROCESS,
} from './search.state';
import * as actions from './search.actions';
import { SearchProcessState } from './defs';
const _searchReducer = createReducer(
INITIAL_SEARCH_STATE,
on(actions.addSearchProcess, (s, a) => searchStateAdapter.addOne({ ...INITIAL_SEARCH_PROCESS, id: a.id }, s)),
on(actions.removeSearchProcess, (s, a) => searchStateAdapter.removeOne(a.id, s)),
on(actions.setInput, (s, a) => searchStateAdapter.updateOne({ id: a.id, changes: { input: a.input } }, s)),
on(actions.addSearchProcess, (s, a) =>
searchStateAdapter.addOne({ ...INITIAL_SEARCH_PROCESS, id: a.id }, s)
),
on(actions.removeSearchProcess, (s, a) =>
searchStateAdapter.removeOne(a.id, s)
),
on(actions.setInput, (s, a) =>
searchStateAdapter.updateOne({ id: a.id, changes: { input: a.input } }, s)
),
on(actions.setSelectFilters, (s, a) =>
searchStateAdapter.updateOne(
{
@@ -40,17 +51,19 @@ const _searchReducer = createReducer(
changes: {
filters: {
...s.entities[a.id].filters,
selectedFilters: s.entities[a.id].filters.selectedFilters.map((filter) => {
let options = filter.options || [];
if (filter.options) {
options = filter.options.map((o) => ({
...o,
selected: o.initial_selected_state,
}));
}
selectedFilters: s.entities[a.id].filters.selectedFilters.map(
(filter) => {
let options = filter.options || [];
if (filter.options) {
options = filter.options.map((o) => ({
...o,
selected: o.initial_selected_state,
}));
}
return { ...filter, options };
}),
return { ...filter, options };
}
),
},
},
},
@@ -64,10 +77,12 @@ const _searchReducer = createReducer(
changes: {
filters: {
...s.entities[a.id].filters,
primaryFilters: s.entities[a.id].filters.primaryFilters.map((primaryFilter) => ({
...primaryFilter,
selected: primaryFilter.initial_selected_state,
})),
primaryFilters: s.entities[a.id].filters.primaryFilters.map(
(primaryFilter) => ({
...primaryFilter,
selected: primaryFilter.initial_selected_state,
})
),
},
},
},
@@ -86,11 +101,16 @@ const _searchReducer = createReducer(
)
),
on(actions.clearResults, (s, a) =>
searchStateAdapter.updateOne({ id: a.id, changes: { result: [], state: SearchProcessState.INIT } }, s)
searchStateAdapter.updateOne(
{ id: a.id, changes: { result: [], state: SearchProcessState.INIT } },
s
)
),
on(actions.addResult, (s, a) => {
const addSubsetIds = a.result.map((item) => item.orderItemSubsetId);
const entitiesWithoutDublicatedItems = s.entities[a.id].result.filter((item) => !addSubsetIds.some((id) => item.orderItemSubsetId));
const entitiesWithoutDublicatedItems = s.entities[a.id].result.filter(
(item) => !addSubsetIds.some((id) => id === item.orderItemSubsetId)
);
return searchStateAdapter.updateOne(
{
@@ -103,8 +123,12 @@ const _searchReducer = createReducer(
s
);
}),
on(actions.clearHits, (s, a) => searchStateAdapter.updateOne({ id: a.id, changes: { hits: undefined } }, s)),
on(actions.setHits, (s, a) => searchStateAdapter.updateOne({ id: a.id, changes: { hits: a.hits } }, s)),
on(actions.clearHits, (s, a) =>
searchStateAdapter.updateOne({ id: a.id, changes: { hits: undefined } }, s)
),
on(actions.setHits, (s, a) =>
searchStateAdapter.updateOne({ id: a.id, changes: { hits: a.hits } }, s)
),
on(actions.setTimestamp, (s, a) =>
searchStateAdapter.updateOne(
{
@@ -114,8 +138,18 @@ const _searchReducer = createReducer(
s
)
),
on(actions.fetchResult, (s, a) => searchStateAdapter.updateOne({ id: a.id, changes: { state: SearchProcessState.FETCHING } }, s)),
on(actions.fetchResultDone, (s, a) => searchStateAdapter.updateOne({ id: a.id, changes: { state: SearchProcessState.FETCHED } }, s)),
on(actions.fetchResult, (s, a) =>
searchStateAdapter.updateOne(
{ id: a.id, changes: { state: SearchProcessState.FETCHING } },
s
)
),
on(actions.fetchResultDone, (s, a) =>
searchStateAdapter.updateOne(
{ id: a.id, changes: { state: SearchProcessState.FETCHED } },
s
)
),
on(actions.setPendingInput, (s, a) =>
searchStateAdapter.updateOne(
{