@@ -27,7 +27,7 @@ export default function getSelectedIndex(config) {
27
27
multiple,
28
28
search,
29
29
} )
30
- const enabledIndicies = _ . reduce (
30
+ const enabledIndexes = _ . reduce (
31
31
menuOptions ,
32
32
( memo , item , index ) => {
33
33
if ( ! item . disabled ) memo . push ( index )
@@ -40,30 +40,32 @@ export default function getSelectedIndex(config) {
40
40
41
41
// update the selected index
42
42
if ( ! selectedIndex || selectedIndex < 0 ) {
43
- const firstIndex = enabledIndicies [ 0 ]
43
+ const firstIndex = enabledIndexes [ 0 ]
44
44
45
45
// Select the currently active item, if none, use the first item.
46
46
// Multiple selects remove active items from the list,
47
47
// their initial selected index should be 0.
48
48
newSelectedIndex = multiple
49
49
? firstIndex
50
- : _ . findIndex ( menuOptions , [ 'value' , value ] ) || enabledIndicies [ 0 ]
50
+ : _ . findIndex ( menuOptions , [ 'value' , value ] ) || enabledIndexes [ 0 ]
51
51
} else if ( multiple ) {
52
+ newSelectedIndex = _ . find ( enabledIndexes , ( index ) => index >= selectedIndex )
53
+
52
54
// multiple selects remove options from the menu as they are made active
53
55
// keep the selected index within range of the remaining items
54
56
if ( selectedIndex >= menuOptions . length - 1 ) {
55
- newSelectedIndex = enabledIndicies [ enabledIndicies . length - 1 ]
57
+ newSelectedIndex = enabledIndexes [ enabledIndexes . length - 1 ]
56
58
}
57
59
} else {
58
60
const activeIndex = _ . findIndex ( menuOptions , [ 'value' , value ] )
59
61
60
62
// regular selects can only have one active item
61
63
// set the selected index to the currently active item
62
- newSelectedIndex = _ . includes ( enabledIndicies , activeIndex ) ? activeIndex : undefined
64
+ newSelectedIndex = _ . includes ( enabledIndexes , activeIndex ) ? activeIndex : undefined
63
65
}
64
66
65
67
if ( ! newSelectedIndex || newSelectedIndex < 0 ) {
66
- newSelectedIndex = enabledIndicies [ 0 ]
68
+ newSelectedIndex = enabledIndexes [ 0 ]
67
69
}
68
70
69
71
return newSelectedIndex
0 commit comments