@@ -107,7 +107,12 @@ interface ContextProps extends CDropdownProps {
107107 portal : boolean
108108}
109109
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+ ) => {
111116 const listLength = list . length
112117 let index = list . indexOf ( activeElement )
113118
@@ -223,20 +228,24 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
223228 } , [ visible ] )
224229
225230 useEffect ( ( ) => {
226- if ( _visible && dropdownRef . current && dropdownToggleRef . current && dropdownMenuRef . current ) {
231+ if ( _visible && dropdownToggleRef . current && dropdownMenuRef . current ) {
227232 dropdownToggleRef . current . focus ( )
228233 popper && initPopper ( dropdownToggleRef . current , dropdownMenuRef . current , popperConfig )
229234 window . addEventListener ( 'mouseup' , handleMouseUp )
230235 window . addEventListener ( 'keyup' , handleKeyup )
231- dropdownRef . current . addEventListener ( 'keydown' , handleKeydown )
236+ dropdownToggleRef . current . addEventListener ( 'keydown' , handleKeydown )
237+ dropdownMenuRef . current . addEventListener ( 'keydown' , handleKeydown )
232238 onShow && onShow ( )
233239 }
234240
235241 return ( ) => {
236242 popper && destroyPopper ( )
237243 window . removeEventListener ( 'mouseup' , handleMouseUp )
238244 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 )
240249 onHide && onHide ( )
241250 }
242251 } , [ _visible ] )
@@ -245,7 +254,12 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
245254 if ( _visible && ( event . key === 'ArrowDown' || event . key === 'ArrowUp' ) ) {
246255 const target = event . target as HTMLElement
247256 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+ )
249263 getNextActiveElement ( items , target , event . key === 'ArrowDown' , true ) . focus ( )
250264 }
251265 }
@@ -292,7 +306,6 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
292306 'dropup dropup-center' : direction === 'dropup-center' ,
293307 [ `${ direction } ` ] :
294308 direction && direction !== 'center' && direction !== 'dropup-center' ,
295- show : _visible ,
296309 } ,
297310 className ,
298311 ) }
0 commit comments