Skip to content

Commit

Permalink
Fix for selection and duplicate terms
Browse files Browse the repository at this point in the history
  • Loading branch information
patrikhellgren committed Dec 13, 2021
1 parent 579f517 commit e722a0b
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions src/controls/modernTaxonomyPicker/taxonomyTree/TaxonomyTree.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,7 @@ export function TaxonomyTree(props: ITaxonomyTreeProps): React.ReactElement<ITax
if (props.termSetInfo.childrenCount > 0) {
props.onLoadMoreData(Guid.parse(props.termSetInfo.id), props.anchorTermInfo ? Guid.parse(props.anchorTermInfo.id) : Guid.empty, '', props.hideDeprecatedTerms)
.then((loadedTerms) => {
const nonExistingTerms = loadedTerms.value.filter((term) => props.terms.every((prevTerm) => prevTerm.id !== term.id));
const grps: IGroup[] = nonExistingTerms.map(term => {
const grps: IGroup[] = loadedTerms.value.map(term => {
let termNames = term.labels.filter((termLabel) => (termLabel.languageTag === props.languageTag && termLabel.isDefault === true));
if (termNames.length === 0) {
termNames = term.labels.filter((termLabel) => (termLabel.languageTag === props.termStoreInfo.defaultLanguageTag && termLabel.isDefault === true));
Expand All @@ -237,6 +236,7 @@ export function TaxonomyTree(props: ITaxonomyTreeProps): React.ReactElement<ITax
return g;
});
props.setTerms((prevTerms) => {
const nonExistingTerms = loadedTerms.value.filter((newTerm) => prevTerms.every((prevTerm) => prevTerm.id !== newTerm.id));
return [...prevTerms, ...nonExistingTerms];
});
rootGroup.children = grps;
Expand Down Expand Up @@ -276,8 +276,7 @@ export function TaxonomyTree(props: ITaxonomyTreeProps): React.ReactElement<ITax

props.onLoadMoreData(Guid.parse(props.termSetInfo.id), Guid.parse(group.key), '', props.hideDeprecatedTerms)
.then((loadedTerms) => {
const nonExistingTerms = loadedTerms.value.filter((term) => props.terms.every((prevTerm) => prevTerm.id !== term.id));
const grps: IGroup[] = nonExistingTerms.map(term => {
const grps: IGroup[] = loadedTerms.value.map(term => {
let termNames = term.labels.filter((termLabel) => (termLabel.languageTag === props.languageTag && termLabel.isDefault === true));
if (termNames.length === 0) {
termNames = term.labels.filter((termLabel) => (termLabel.languageTag === props.termStoreInfo.defaultLanguageTag && termLabel.isDefault === true));
Expand All @@ -299,10 +298,12 @@ export function TaxonomyTree(props: ITaxonomyTreeProps): React.ReactElement<ITax
});

props.setTerms((prevTerms) => {
const nonExistingTerms = loadedTerms.value.filter((newTerm) => prevTerms.every((prevTerm) => prevTerm.id !== newTerm.id));
return [...prevTerms, ...nonExistingTerms];
});

group.children = grps;
const nonExistingChildren = grps.filter((grp) => group.children?.every((child) => child.key !== grp.key));
group.children = nonExistingChildren;
group.data.skiptoken = loadedTerms.skiptoken;
group.hasMoreData = loadedTerms.skiptoken !== '';
setGroupsLoading((prevGroupsLoading) => prevGroupsLoading.filter((value) => value !== group.key));
Expand Down Expand Up @@ -513,8 +514,7 @@ export function TaxonomyTree(props: ITaxonomyTreeProps): React.ReactElement<ITax
setGroupsLoading((prevGroupsLoading) => [...prevGroupsLoading, footerProps.group.key]);
props.onLoadMoreData(Guid.parse(props.termSetInfo.id), footerProps.group.key === props.termSetInfo.id ? Guid.empty : Guid.parse(footerProps.group.key), footerProps.group.data.skiptoken, props.hideDeprecatedTerms)
.then((loadedTerms) => {
const nonExistingTerms = loadedTerms.value.filter((term) => props.terms.every((prevTerm) => prevTerm.id !== term.id));
const grps: IGroup[] = nonExistingTerms.map(term => {
const grps: IGroup[] = loadedTerms.value.map(term => {
let termNames = term.labels.filter((termLabel) => (termLabel.languageTag === props.languageTag && termLabel.isDefault === true));
if (termNames.length === 0) {
termNames = term.labels.filter((termLabel) => (termLabel.languageTag === props.termStoreInfo.defaultLanguageTag && termLabel.isDefault === true));
Expand All @@ -535,9 +535,11 @@ export function TaxonomyTree(props: ITaxonomyTreeProps): React.ReactElement<ITax
return g;
});
props.setTerms((prevTerms) => {
const nonExistingTerms = loadedTerms.value.filter((newTerm) => prevTerms.every((prevTerm) => prevTerm.id !== newTerm.id));
return [...prevTerms, ...nonExistingTerms];
});
footerProps.group.children = [...footerProps.group.children, ...grps];
const nonExistingChildren = grps.filter((grp) => footerProps.group.children?.every((child) => child.key !== grp.key));
footerProps.group.children = [...footerProps.group.children, ...nonExistingChildren];
footerProps.group.data.skiptoken = loadedTerms.skiptoken;
footerProps.group.hasMoreData = loadedTerms.skiptoken !== '';
setGroupsLoading((prevGroupsLoading) => prevGroupsLoading.filter((value) => value !== footerProps.group.key));
Expand Down

0 comments on commit e722a0b

Please sign in to comment.