Revert "Et2Email: Fix validation message for invalid search text did not always show on field blur"

This reverts commit 44f1317873.
This commit is contained in:
nathan 2023-12-19 11:10:03 -07:00 committed by ralf
parent 55f81b7985
commit 197e321905

View File

@ -215,7 +215,7 @@ export class Et2Email extends Et2InputWidget(LitElement) implements SearchMixinI
this.open = false; this.open = false;
this._valueUID = this.egw().uid(); this._valueUID = this.egw().uid();
this.updateComplete.then(() => this.makeSortable()); this.updateComplete.then(() => this.makeSortable());
document.addEventListener('focusout', this.handleLostFocus); document.addEventListener('focusin', this.handleLostFocus);
} }
disconnectedCallback() disconnectedCallback()
@ -226,7 +226,7 @@ export class Et2Email extends Et2InputWidget(LitElement) implements SearchMixinI
{ {
this._sortable.destroy(); this._sortable.destroy();
} }
document.removeEventListener('focusout', this.handleLostFocus); document.removeEventListener('focusin', this.handleLostFocus);
} }
willUpdate(changedProperties : PropertyValues) willUpdate(changedProperties : PropertyValues)
@ -588,21 +588,26 @@ export class Et2Email extends Et2InputWidget(LitElement) implements SearchMixinI
*/ */
private handleLostFocus = (event : MouseEvent | KeyboardEvent) => private handleLostFocus = (event : MouseEvent | KeyboardEvent) =>
{ {
// If they had something OK typed, use it // Close when clicking outside of the component
if(this.addAddress(this._search.value.trim())) const path = event.composedPath();
if(this && !path.includes(this))
{ {
this._search.value = ""; // If they had something OK typed, use it
if(this.addAddress(this._search.value.trim()))
{
this._search.value = "";
}
else if(this._search.value)
{
// Invalid input, show message
// Can't just call this.validate() since the input is not part of the value
let currentValue = this.value;
this.value = [this._search.value];
this.validate();
this.value = currentValue;
}
this.hide();
} }
else if(this._search.value)
{
// Invalid input, show message
// Can't just call this.validate() since the input is not part of the value
let currentValue = this.value;
this.value = [this._search.value];
this.validate();
this.value = currentValue;
}
this.hide();
}; };
async handleOpenChange() async handleOpenChange()