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, 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,15 +5,20 @@ export function handleFilterDelta(oldFilters: INestedFilter[], newFilters: INest
const newFiltersDelta = {}; const newFiltersDelta = {};
for (const newFilter of newFilters) { for (const newFilter of newFilters) {
const oldFilter = oldFilters.find(f => f.id === newFilter.id); 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) { if (!oldFilter) {
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) { for (const childFilter of newFilter.children) {
const oldFilterChild = oldFilter?.children.find(f => f.id === childFilter.id); const oldFilterChild = oldFilter.children.find(f => f.id === childFilter.id);
if (!oldFilterChild || oldFilterChild.matches !== childFilter.matches) { if (!oldFilterChild || oldFilterChild.matches < childFilter.matches) {
if (!newFiltersDelta[newFilter.id]) { if (!newFiltersDelta[newFilter.id]) {
newFiltersDelta[newFilter.id] = {}; newFiltersDelta[newFilter.id] = {};
} }
@ -21,7 +26,6 @@ export function handleFilterDelta(oldFilters: INestedFilter[], newFilters: INest
} }
} }
} }
}
for (const key of Object.keys(newFiltersDelta)) { for (const key of Object.keys(newFiltersDelta)) {
const foundFilter = allFilters.find(f => f.id === key); const foundFilter = allFilters.find(f => f.id === key);
@ -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) => { export const annotationFilterChecker = (file: File, filter: INestedFilter, currentUserId: string) => {