111768: move original code back to init only for performance

This commit is contained in:
Jens Vannerum
2024-02-19 11:42:57 +01:00
parent 9767260b9a
commit f7f86b0a9e

View File

@@ -68,10 +68,14 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
*/ */
ngOnInit() { ngOnInit() {
this.updatePageInfo(this.model.maxOptions, 1); this.updatePageInfo(this.model.maxOptions, 1);
this.loadOptions(); this.loadOptions(true);
this.group.get(this.model.id).valueChanges.pipe(distinctUntilChanged())
.subscribe((value) => {
this.setCurrentValue(value);
});
} }
loadOptions() { loadOptions(fromInit: boolean) {
this.loading = true; this.loading = true;
this.vocabularyService.getVocabularyEntriesByValue(this.inputText, false, this.model.vocabularyOptions, this.pageInfo).pipe( this.vocabularyService.getVocabularyEntriesByValue(this.inputText, false, this.model.vocabularyOptions, this.pageInfo).pipe(
getFirstSucceededRemoteDataPayload(), getFirstSucceededRemoteDataPayload(),
@@ -79,7 +83,7 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
tap(() => this.loading = false) tap(() => this.loading = false)
).subscribe((list: PaginatedList<VocabularyEntry>) => { ).subscribe((list: PaginatedList<VocabularyEntry>) => {
this.optionsList = list.page; this.optionsList = list.page;
if (this.model.value) { if (fromInit && this.model.value) {
this.setCurrentValue(this.model.value, true); this.setCurrentValue(this.model.value, true);
} }
@@ -92,11 +96,6 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
this.selectedIndex = 0; this.selectedIndex = 0;
this.cdr.detectChanges(); this.cdr.detectChanges();
}); });
this.group.get(this.model.id).valueChanges.pipe(distinctUntilChanged())
.subscribe((value) => {
this.setCurrentValue(value);
});
} }
/** /**
@@ -113,7 +112,7 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
this.group.markAsUntouched(); this.group.markAsUntouched();
this.inputText = null; this.inputText = null;
this.updatePageInfo(this.model.maxOptions, 1); this.updatePageInfo(this.model.maxOptions, 1);
this.loadOptions(); this.loadOptions(false);
sdRef.open(); sdRef.open();
} }
} }
@@ -170,7 +169,7 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
this.inputText += keyName; this.inputText += keyName;
// When a new key is added, we need to reset the page info // When a new key is added, we need to reset the page info
this.updatePageInfo(this.model.maxOptions, 1); this.updatePageInfo(this.model.maxOptions, 1);
this.loadOptions(); this.loadOptions(false);
} }
removeKeyFromInput() { removeKeyFromInput() {
@@ -179,7 +178,7 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
if (this.inputText === '') { if (this.inputText === '') {
this.inputText = null; this.inputText = null;
} }
this.loadOptions(); this.loadOptions(false);
} }
} }