@@ -257,25 +257,26 @@ class DragSession {
257257
258258 onFocus ( e : FocusEvent ) : void {
259259 let activateButton = this . getCurrentActivateButton ( ) ;
260- if ( getEventTarget ( e ) === activateButton ) {
260+ let eventTarget = getEventTarget ( e ) ;
261+ if ( eventTarget === activateButton ) {
261262 // TODO: canceling this breaks the focus ring. Revisit when we support tabbing.
262263 this . cancelEvent ( e ) ;
263264 return ;
264265 }
265266
266267 // Prevent focus events, except to the original drag target.
267- if ( getEventTarget ( e ) !== this . dragTarget . element ) {
268+ if ( eventTarget !== this . dragTarget . element ) {
268269 this . cancelEvent ( e ) ;
269270 }
270271
271272 // Ignore focus events on the window/document (JSDOM). Will be handled in onBlur, below.
272- if ( ! ( getEventTarget ( e ) instanceof HTMLElement ) || getEventTarget ( e ) === this . dragTarget . element ) {
273+ if ( ! ( eventTarget instanceof HTMLElement ) || eventTarget === this . dragTarget . element ) {
273274 return ;
274275 }
275276
276277 let dropTarget =
277- this . validDropTargets . find ( target => target . element === getEventTarget ( e ) as HTMLElement ) ||
278- this . validDropTargets . find ( target => nodeContains ( target . element , getEventTarget ( e ) as HTMLElement ) ) ;
278+ this . validDropTargets . find ( target => target . element === eventTarget ) ||
279+ this . validDropTargets . find ( target => nodeContains ( target . element , eventTarget ) ) ;
279280
280281 if ( ! dropTarget ) {
281282 // if (e.target === activateButton) {
@@ -289,7 +290,7 @@ class DragSession {
289290 return ;
290291 }
291292
292- let item = dropItems . get ( getEventTarget ( e ) as HTMLElement ) ;
293+ let item = dropItems . get ( eventTarget ) ;
293294 if ( dropTarget ) {
294295 this . setCurrentDropTarget ( dropTarget , item ) ;
295296 }
@@ -321,10 +322,11 @@ class DragSession {
321322 this . cancelEvent ( e ) ;
322323 if ( isVirtualClick ( e ) || this . isVirtualClick ) {
323324 let dropElements = dropItems . values ( ) ;
324- let item = [ ...dropElements ] . find ( item => item . element === getEventTarget ( e ) as HTMLElement || nodeContains ( item . activateButtonRef ?. current , getEventTarget ( e ) as HTMLElement ) ) ;
325- let dropTarget = this . validDropTargets . find ( target => nodeContains ( target . element , getEventTarget ( e ) as HTMLElement ) ) ;
325+ let eventTarget = getEventTarget ( e ) as HTMLElement ;
326+ let item = [ ...dropElements ] . find ( item => item . element === eventTarget || nodeContains ( item . activateButtonRef ?. current , eventTarget ) ) ;
327+ let dropTarget = this . validDropTargets . find ( target => nodeContains ( target . element , eventTarget ) ) ;
326328 let activateButton = item ?. activateButtonRef ?. current ?? dropTarget ?. activateButtonRef ?. current ;
327- if ( nodeContains ( activateButton , getEventTarget ( e ) as HTMLElement ) && dropTarget ) {
329+ if ( nodeContains ( activateButton , eventTarget ) && dropTarget ) {
328330 this . activate ( dropTarget , item ) ;
329331 return ;
330332 }
@@ -350,7 +352,8 @@ class DragSession {
350352
351353 cancelEvent ( e : Event ) : void {
352354 // Allow focusin and focusout on the drag target so focus ring works properly.
353- if ( ( e . type === 'focusin' || e . type === 'focusout' ) && ( getEventTarget ( e ) === this . dragTarget ?. element || getEventTarget ( e ) === this . getCurrentActivateButton ( ) ) ) {
355+ let eventTarget = getEventTarget ( e ) ;
356+ if ( ( e . type === 'focusin' || e . type === 'focusout' ) && ( eventTarget === this . dragTarget ?. element || eventTarget === this . getCurrentActivateButton ( ) ) ) {
354357 return ;
355358 }
356359
0 commit comments