@@ -6,6 +6,7 @@ import '@bendera/vscode-webview-elements/dist/vscode-icon';
66import '@bendera/vscode-webview-elements/dist/vscode-single-select' ;
77import '@bendera/vscode-webview-elements/dist/vscode-option' ;
88import store , { RootState } from '../store/store' ;
9+ import { changeSelectedRepository } from '../store/actions' ;
910
1011@customElement ( 'cme-repo-selector' )
1112export class RepoSelector extends connect ( store ) ( LitElement ) {
@@ -43,13 +44,14 @@ export class RepoSelector extends connect(store)(LitElement) {
4344 private _handleChange (
4445 ev : CustomEvent < { selectedIndex : number ; value : string } >
4546 ) {
46- this . _selectedRepositoryPath = ev . detail . value ;
47-
47+ const path = ev . detail . value ;
4848 const changeEvent = new CustomEvent ( 'cme-change' , {
49- detail : ev . detail . value ,
49+ detail : path ,
5050 } ) ;
5151
52+ this . _selectedRepositoryPath = path ;
5253 this . dispatchEvent ( changeEvent ) ;
54+ store . dispatch ( changeSelectedRepository ( path ) ) ;
5355 }
5456
5557 static get styles ( ) : CSSResult {
@@ -72,13 +74,13 @@ export class RepoSelector extends connect(store)(LitElement) {
7274 return html `< div class ="repo-info ">
7375 < vscode-icon name ="repo "> </ vscode-icon >
7476 < b > Selected repository:</ b >
75- < vscode-single-select @vsc-change =${ this . _handleChange } >
77+ < vscode-single-select
78+ @vsc-change =${ this . _handleChange }
79+ .value =${ this . _selectedRepositoryPath }
80+ >
7681 ${ this . _availableRepositories . map (
7782 ( r ) =>
78- html `< vscode-option
79- description =${ r }
80- value =${ r }
81- ?selected=${ this . _selectedRepositoryPath === r }
83+ html `< vscode-option description =${ r } value =${ r }
8284 > ${ this . _getNameFromPath ( r ) } </ vscode-option
8385 > `
8486 ) }
0 commit comments