RED-5228: fix filters auto expand

This commit is contained in:
Dan Percic 2022-09-20 17:50:18 +03:00
parent 1b7a55a892
commit 461a4fbf52
2 changed files with 21 additions and 16 deletions

View File

@ -96,8 +96,10 @@ export class AnnotationProcessingService {
},
skipTranslation: true,
};
filterMap.set(a.filterKey, childFilter);
parentFilter.children.push(new Filter(childFilter));
const newChildFilter = new Filter(childFilter);
filterMap.set(a.filterKey, newChildFilter);
parentFilter.children.push(newChildFilter);
}
}
});

View File

@ -5,20 +5,24 @@ export function handleFilterDelta(oldFilters: INestedFilter[], newFilters: INest
const newFiltersDelta = {};
for (const newFilter of newFilters) {
const oldFilter = oldFilters.find(f => f.id === newFilter.id);
if (!oldFilter || oldFilter.matches !== newFilter.matches) {
newFiltersDelta[newFilter.id] = {};
newFilter.children.forEach(filter => (newFiltersDelta[newFilter.id][filter.id] = {}));
}
if (!oldFilter) {
for (const childFilter of newFilter.children) {
const oldFilterChild = oldFilter?.children.find(f => f.id === childFilter.id);
if (!oldFilterChild || oldFilterChild.matches !== childFilter.matches) {
if (!newFiltersDelta[newFilter.id]) {
newFiltersDelta[newFilter.id] = {};
}
newFiltersDelta[newFilter.id][childFilter.id] = {};
newFiltersDelta[newFilter.id] = {};
newFilter.children.forEach(filter => (newFiltersDelta[newFilter.id][filter.id] = {}));
continue;
}
if (oldFilter.matches < newFilter.matches) {
newFiltersDelta[newFilter.id] = {};
}
for (const childFilter of newFilter.children) {
const oldFilterChild = oldFilter.children.find(f => f.id === childFilter.id);
if (!oldFilterChild || oldFilterChild.matches < childFilter.matches) {
if (!newFiltersDelta[newFilter.id]) {
newFiltersDelta[newFilter.id] = {};
}
newFiltersDelta[newFilter.id][childFilter.id] = {};
}
}
}
@ -39,9 +43,8 @@ export function handleFilterDelta(oldFilters: INestedFilter[], newFilters: INest
}
}
}
allFilters.forEach(filter => {
handleCheckedValue(filter);
});
allFilters.forEach(handleCheckedValue);
}
export const annotationFilterChecker = (file: File, filter: INestedFilter, currentUserId: string) => {