SearchMixin: Fix initial values not always displayed when options are from server or file

Fix for when remote result doesn't get there before SlSelect renders, and the SlSelect removed the value because the option wasn't there
This commit is contained in:
nathan 2023-11-30 14:00:16 -07:00
parent a813d09ae5
commit 562a391579

View File

@ -633,12 +633,13 @@ export const Et2WithSearchMixin = dedupeMixin(<T extends Constructor<LitElement>
// Given a value we need to search for - this will add in all matches, including the one needed // Given a value we need to search for - this will add in all matches, including the one needed
this.remoteSearch(newValueElement, this.searchOptions).then((result : SelectOption[]) => this.remoteSearch(newValueElement, this.searchOptions).then((result : SelectOption[]) =>
{ {
const option = <SelectOption>result.find(o => o.value == newValueElement); // Re-set / update value since SlSelect probably removed it by now due to missing option
if(option && !this._selected_remote.some(o => o.value == newValueElement)) if(typeof this.select != "undefined")
{ {
this._selected_remote.push(option); this.select.value = this.shoelaceValue ?? this.value;
this.select.requestUpdate("value");
} }
this.requestUpdate(); this.requestUpdate("value");
}); });
} }