@@ -96,6 +96,16 @@ export class QwcExtensions extends observeState(LitElement) {
9696 width: 2em;
9797 height: 2em;
9898 }
99+ .extensionFilterInput {
100+ width: 99%;
101+ padding-left: 5px;
102+ padding-right: 5px;
103+ padding-top: unset;
104+ }
105+ vaadin-text-field::part(input-field):focus-within {
106+ outline: none;
107+ box-shadow: none;
108+ }
99109 ` ;
100110
101111 static properties = {
@@ -104,8 +114,7 @@ export class QwcExtensions extends observeState(LitElement) {
104114 _installedExtensions : { state : true , type : Array } ,
105115 _selectedFilters : { state : true , type : Array } ,
106116 _addExtensionsEnabled : { state : true , type : Boolean } ,
107- _filterText : { state : true } ,
108- _showFilterBar : { state : true }
117+ _filterText : { state : true }
109118 }
110119
111120 constructor ( ) {
@@ -116,13 +125,11 @@ export class QwcExtensions extends observeState(LitElement) {
116125 this . _selectedFilters = [ "Favorites" , "Active" , "Inactive" ] ;
117126 this . _addExtensionsEnabled = false ;
118127 this . _filterText = '' ;
119- this . _showFilterBar = false ;
120128 }
121129
122130 connectedCallback ( ) {
123131 super . connectedCallback ( ) ;
124132 window . addEventListener ( 'extensions-filters-changed' , this . _onFiltersChanged ) ;
125- window . addEventListener ( 'keydown' , this . _handleGlobalKeyDown ) ;
126133 window . addEventListener ( 'storage-changed' , this . _storageChange ) ;
127134 if ( allowExtensionManagement ) {
128135 this . jsonRpc . getInstalledNamespaces ( ) . then ( jsonRpcResponse => {
@@ -138,11 +145,14 @@ export class QwcExtensions extends observeState(LitElement) {
138145
139146 disconnectedCallback ( ) {
140147 window . removeEventListener ( 'extensions-filters-changed' , this . _onFiltersChanged ) ;
141- window . removeEventListener ( 'keydown' , this . _handleGlobalKeyDown ) ;
142148 window . removeEventListener ( 'storage-changed' , this . _storageChange ) ;
143149 super . disconnectedCallback ( ) ;
144150 }
145151
152+ firstUpdated ( ) {
153+ this . updateComplete . then ( ( ) => this . renderRoot . getElementById ( 'searchInput' ) ?. focus ( ) ) ;
154+ }
155+
146156 render ( ) {
147157 return html `
148158 ${ this . _renderFilterbar ( ) }
@@ -151,29 +161,21 @@ export class QwcExtensions extends observeState(LitElement) {
151161 }
152162
153163 _renderFilterbar ( ) {
154- if ( this . _showFilterBar ) {
155- return html `< div style ="padding: 10px; ">
156- < vaadin-text-field
157- id ="extensionFilterInput "
164+ return html `
165+ < vaadin-text-field id ="searchInput "
166+ class ="extensionFilterInput "
158167 theme ="small "
159- style ="width: 100%; "
160- placeholder ="Filter extensions… "
168+ placeholder ="Search extensions… "
161169 clear-button-visible
162170 .value =${ this . _filterText }
163171 @input =${ this . _onFilterInput } >
164- < vaadin-icon slot ="prefix " icon ="font-awesome-solid:filter "> </ vaadin-icon >
165- </ vaadin-text-field >
166- </ div > ` ;
167- }
172+ < vaadin-icon slot ="prefix " icon ="font-awesome-solid:magnifying-glass "> </ vaadin-icon >
173+ </ vaadin-text-field > ` ;
168174 }
169175
170176 _onFilterInput ( e ) {
171177 const value = e . target . value . trim ( ) ;
172178 this . _filterText = value ;
173-
174- if ( ! value ) {
175- this . _showFilterBar = false ;
176- }
177179 }
178180
179181 _renderGrid ( ) {
@@ -517,26 +519,6 @@ export class QwcExtensions extends observeState(LitElement) {
517519 }
518520 }
519521
520- _handleGlobalKeyDown = ( e ) => {
521- if ( ! this . _showFilterBar && e . key . length === 1 && ! e . metaKey && ! e . ctrlKey && ! e . altKey ) {
522- this . _showFilterBar = true ;
523- const key = e . key ;
524- this . updateComplete . then ( ( ) => {
525- const input = this . shadowRoot . getElementById ( 'extensionFilterInput' ) ;
526- if ( input ) {
527- input . value = key ;
528- input . focus ( ) ;
529- this . _filterText = key ;
530- }
531- } ) ;
532- e . preventDefault ( ) ; // Stop the browser from processing the key further
533- } else if ( e . key === 'Escape' && this . _showFilterBar ) {
534- this . _filterText = '' ;
535- this . _showFilterBar = false ;
536- }
537- }
538-
539-
540522 _onFiltersChanged = ( event ) => {
541523 this . _selectedFilters = event . detail . filters ;
542524 }
0 commit comments