Fix quickbar debounce (#7426)

* Fix quicbar debounce

* Clear search property when dialog is closed

Co-authored-by: Donnie <donniekarnsinsb@hotmail.com>
This commit is contained in:
Bram Kragten 2020-10-22 11:00:36 +02:00 committed by GitHub
parent dbd53f8d14
commit 211ab4eea8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -55,6 +55,8 @@ export class QuickBar extends LitElement {
@internalProperty() private _filter = ""; @internalProperty() private _filter = "";
@internalProperty() private _search = "";
@internalProperty() private _opened = false; @internalProperty() private _opened = false;
@internalProperty() private _commandMode = false; @internalProperty() private _commandMode = false;
@ -79,6 +81,7 @@ export class QuickBar extends LitElement {
this._done = false; this._done = false;
this._focusSet = false; this._focusSet = false;
this._filter = ""; this._filter = "";
this._search = "";
this._commandTriggered = -1; this._commandTriggered = -1;
this._items = []; this._items = [];
fireEvent(this, "dialog-closed", { dialog: this.localName }); fireEvent(this, "dialog-closed", { dialog: this.localName });
@ -116,7 +119,7 @@ export class QuickBar extends LitElement {
.label=${this.hass.localize( .label=${this.hass.localize(
"ui.dialogs.quick-bar.filter_placeholder" "ui.dialogs.quick-bar.filter_placeholder"
)} )}
.filter=${this._commandMode ? `>${this._filter}` : this._filter} .filter=${this._commandMode ? `>${this._search}` : this._search}
@keydown=${this._handleInputKeyDown} @keydown=${this._handleInputKeyDown}
@focus=${this._setFocusFirstListItem} @focus=${this._setFocusFirstListItem}
> >
@ -237,12 +240,14 @@ export class QuickBar extends LitElement {
if (newFilter.startsWith(">")) { if (newFilter.startsWith(">")) {
this._commandMode = true; this._commandMode = true;
this._debouncedSetFilter(newFilter.substring(1)); this._search = newFilter.substring(1);
} else { } else {
this._commandMode = false; this._commandMode = false;
this._debouncedSetFilter(newFilter); this._search = newFilter;
} }
this._debouncedSetFilter(this._search);
if (oldCommandMode !== this._commandMode) { if (oldCommandMode !== this._commandMode) {
this._items = undefined; this._items = undefined;
this._focusSet = false; this._focusSet = false;