Updated entity-selector-popup to reset on selection

Better links the core selector component to the popup version, with new
public methods for direct controlling.

For #3528
This commit is contained in:
Dan Brown
2022-06-25 14:13:17 +01:00
parent 0801955a26
commit c9d0e22132
3 changed files with 19 additions and 3 deletions

View File

@ -7,9 +7,9 @@ class EntitySelectorPopup {
setup() {
this.elem = this.$el;
this.selectButton = this.$refs.select;
this.searchInput = this.$refs.searchInput;
window.EntitySelectorPopup = this;
this.selectorEl = this.$refs.selector;
this.callback = null;
this.selection = null;
@ -22,13 +22,17 @@ class EntitySelectorPopup {
show(callback) {
this.callback = callback;
this.elem.components.popup.show();
this.searchInput.focus();
this.getSelector().focusSearch();
}
hide() {
this.elem.components.popup.hide();
}
getSelector() {
return this.selectorEl.components['entity-selector'];
}
onSelectButtonClick() {
this.hide();
if (this.selection !== null && this.callback) this.callback(this.selection);
@ -36,6 +40,7 @@ class EntitySelectorPopup {
onSelectionConfirm(entity) {
this.hide();
this.getSelector().reset();
if (this.callback && entity) this.callback(entity);
}

View File

@ -87,6 +87,16 @@ class EntitySelector {
}
}
reset() {
this.searchInput.value = '';
this.showLoading();
this.initialLoad();
}
focusSearch() {
this.searchInput.focus();
}
showLoading() {
this.loading.style.display = 'block';
this.resultsContainer.style.display = 'none';