@@ -107,7 +107,12 @@ interface ContextProps extends CDropdownProps {
107
107
portal : boolean
108
108
}
109
109
110
- export const getNextActiveElement = ( list : HTMLElement [ ] , activeElement : HTMLElement , shouldGetNext : boolean , isCycleAllowed : boolean ) => {
110
+ export const getNextActiveElement = (
111
+ list : HTMLElement [ ] ,
112
+ activeElement : HTMLElement ,
113
+ shouldGetNext : boolean ,
114
+ isCycleAllowed : boolean ,
115
+ ) => {
111
116
const listLength = list . length
112
117
let index = list . indexOf ( activeElement )
113
118
@@ -223,20 +228,24 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
223
228
} , [ visible ] )
224
229
225
230
useEffect ( ( ) => {
226
- if ( _visible && dropdownRef . current && dropdownToggleRef . current && dropdownMenuRef . current ) {
231
+ if ( _visible && dropdownToggleRef . current && dropdownMenuRef . current ) {
227
232
dropdownToggleRef . current . focus ( )
228
233
popper && initPopper ( dropdownToggleRef . current , dropdownMenuRef . current , popperConfig )
229
234
window . addEventListener ( 'mouseup' , handleMouseUp )
230
235
window . addEventListener ( 'keyup' , handleKeyup )
231
- dropdownRef . current . addEventListener ( 'keydown' , handleKeydown )
236
+ dropdownToggleRef . current . addEventListener ( 'keydown' , handleKeydown )
237
+ dropdownMenuRef . current . addEventListener ( 'keydown' , handleKeydown )
232
238
onShow && onShow ( )
233
239
}
234
240
235
241
return ( ) => {
236
242
popper && destroyPopper ( )
237
243
window . removeEventListener ( 'mouseup' , handleMouseUp )
238
244
window . removeEventListener ( 'keyup' , handleKeyup )
239
- dropdownRef . current && dropdownRef . current . removeEventListener ( 'keydown' , handleKeydown )
245
+ dropdownToggleRef . current &&
246
+ dropdownToggleRef . current . removeEventListener ( 'keydown' , handleKeydown )
247
+ dropdownMenuRef . current &&
248
+ dropdownMenuRef . current . removeEventListener ( 'keydown' , handleKeydown )
240
249
onHide && onHide ( )
241
250
}
242
251
} , [ _visible ] )
@@ -245,7 +254,12 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
245
254
if ( _visible && ( event . key === 'ArrowDown' || event . key === 'ArrowUp' ) ) {
246
255
const target = event . target as HTMLElement
247
256
event . preventDefault ( )
248
- const items = [ ] . concat ( ...Element . prototype . querySelectorAll . call ( dropdownRef . current , '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' ) )
257
+ const items = [ ] . concat (
258
+ ...Element . prototype . querySelectorAll . call (
259
+ dropdownMenuRef . current ,
260
+ '.dropdown-item:not(.disabled):not(:disabled)' ,
261
+ ) ,
262
+ )
249
263
getNextActiveElement ( items , target , event . key === 'ArrowDown' , true ) . focus ( )
250
264
}
251
265
}
@@ -292,7 +306,6 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
292
306
'dropup dropup-center' : direction === 'dropup-center' ,
293
307
[ `${ direction } ` ] :
294
308
direction && direction !== 'center' && direction !== 'dropup-center' ,
295
- show : _visible ,
296
309
} ,
297
310
className ,
298
311
) }
0 commit comments