@@ -187,21 +187,41 @@ export class DeviceList extends Component<{}, DeviceListState> {
187
187
}
188
188
189
189
setSort ( column : SortColumn ) {
190
+ let newSortColumn : SortColumn ;
191
+ let newSortSequence : "asc" | "desc" ;
192
+
190
193
if ( this . state . sortColumn !== column ) {
191
- this . setState ( { ...this . state , sortColumn : column , sortSequence : "asc" } ) ;
194
+ newSortColumn = column ;
195
+ newSortSequence = "asc" ;
192
196
} else if ( this . state . sortSequence === "asc" ) {
193
- this . setState ( { ...this . state , sortSequence : "desc" } ) ;
197
+ newSortColumn = column ;
198
+ newSortSequence = "desc" ;
194
199
} else {
195
- this . setState ( { ...this . state , sortColumn : "none" , sortSequence : "asc" } ) ;
200
+ newSortColumn = "none" ;
201
+ newSortSequence = "asc" ;
196
202
}
203
+
204
+ this . setState ( {
205
+ ...this . state ,
206
+ sortColumn : newSortColumn ,
207
+ sortSequence : newSortSequence
208
+ } , ( ) => {
209
+ this . setSortedDevices ( [ ...this . state . devices ] ) ;
210
+ } ) ;
197
211
}
198
212
199
213
setMobileSort ( column : SortColumn ) {
214
+ let newSortColumn : SortColumn ;
215
+
200
216
if ( this . state . sortColumn !== column ) {
201
- this . setState ( { sortColumn : column } ) ;
217
+ newSortColumn = column ;
202
218
} else {
203
- this . setState ( { sortColumn : "none" } ) ;
219
+ newSortColumn = "none" ;
204
220
}
221
+
222
+ this . setState ( { sortColumn : newSortColumn } , ( ) => {
223
+ this . setSortedDevices ( [ ...this . state . devices ] ) ;
224
+ } ) ;
205
225
}
206
226
207
227
setSortedDevices ( devices : StateDevice [ ] ) {
@@ -346,7 +366,10 @@ export class DeviceList extends Component<{}, DeviceListState> {
346
366
sortColumn = { this . state . sortColumn }
347
367
sortSequence = { this . state . sortSequence }
348
368
onMobileSort = { ( column ) => this . setMobileSort ( column ) }
349
- onSortSequenceChange = { ( sequence ) => this . setState ( { sortSequence : sequence } ) }
369
+ onSortSequenceChange = { ( sequence ) => this . setState ( { sortSequence : sequence } , ( ) => {
370
+ // Re-sort the devices after state update
371
+ this . setSortedDevices ( [ ...this . state . devices ] ) ;
372
+ } ) }
350
373
onConnect = { handleConnect }
351
374
onDelete = { this . handleDelete }
352
375
onEditNote = { this . handleEditNote }
0 commit comments