@@ -120,7 +120,14 @@ export default class AddNewPluginModal extends Modal {
120
120
}
121
121
122
122
private updateVersionDropdown ( settingEl : Setting , versions : ReleaseVersion [ ] , selected = "" ) : void {
123
+ let selectedVersion : string ;
124
+
123
125
settingEl . clear ( ) ;
126
+ if ( versions . length > 0 && ! selected && this . plugin . settings . selectLatestPluginVersionByDefault ) {
127
+ selectedVersion = "latest" ;
128
+ } else {
129
+ selectedVersion = selected ;
130
+ }
124
131
125
132
const VERSION_THRESHOLD = 20 ;
126
133
@@ -133,11 +140,13 @@ export default class AddNewPluginModal extends Modal {
133
140
for ( const version of versions ) {
134
141
dropdown . addOption ( version . version , `${ version . version } ${ version . prerelease ? "(Prerelease)" : "" } ` ) ;
135
142
}
136
- dropdown . setValue ( selected ) ;
137
- dropdown . onChange ( ( value ) => {
143
+ const changeHandler = ( value : string ) => {
138
144
this . version = value ;
139
145
this . updateAddButtonState ( ) ;
140
- } ) ;
146
+ } ;
147
+ dropdown . onChange ( changeHandler ) ;
148
+ dropdown . setValue ( selectedVersion ) ;
149
+ changeHandler ( selectedVersion ) ;
141
150
142
151
dropdown . selectEl . addClass ( "brat-version-selector" ) ;
143
152
dropdown . selectEl . style . width = "100%" ;
@@ -146,7 +155,7 @@ export default class AddNewPluginModal extends Modal {
146
155
// Use suggest modal for many versions
147
156
settingEl . addButton ( ( button ) => {
148
157
button
149
- . setButtonText ( selected === "latest" ? "Latest version" : selected || "Select a version..." )
158
+ . setButtonText ( selectedVersion === "latest" ? "Latest version" : selectedVersion || "Select a version..." )
150
159
. setClass ( "brat-version-selector" )
151
160
. setClass ( "button" )
152
161
. onClick ( ( e : Event ) => {
@@ -156,7 +165,7 @@ export default class AddNewPluginModal extends Modal {
156
165
prerelease : false ,
157
166
} ;
158
167
const suggestedVersions : ReleaseVersion [ ] = [ latest , ...versions ] ;
159
- const modal = new VersionSuggestModal ( this . app , this . address , suggestedVersions , selected , ( version : string ) => {
168
+ const modal = new VersionSuggestModal ( this . app , this . address , suggestedVersions , selectedVersion , ( version : string ) => {
160
169
this . version = version ;
161
170
button . setButtonText ( version === "latest" ? "Latest version" : version || "Select a version..." ) ;
162
171
this . updateAddButtonState ( ) ;
0 commit comments