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,20 +5,24 @@ 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) {
for (const childFilter of newFilter.children) { newFiltersDelta[newFilter.id] = {};
const oldFilterChild = oldFilter?.children.find(f => f.id === childFilter.id); newFilter.children.forEach(filter => (newFiltersDelta[newFilter.id][filter.id] = {}));
if (!oldFilterChild || oldFilterChild.matches !== childFilter.matches) { continue;
if (!newFiltersDelta[newFilter.id]) { }
newFiltersDelta[newFilter.id] = {};
} if (oldFilter.matches < newFilter.matches) {
newFiltersDelta[newFilter.id][childFilter.id] = {}; 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) => { export const annotationFilterChecker = (file: File, filter: INestedFilter, currentUserId: string) => {