@@ -394,26 +394,6 @@ const eventResponderContext: ReactResponderContext = {
394394 } ,
395395 getActiveDocument ,
396396 objectAssign : Object . assign ,
397- getEventPointerType (
398- event : ReactResponderEvent ,
399- ) : '' | 'mouse' | 'keyboard' | 'pen' | 'touch' {
400- validateResponderContext ( ) ;
401- const nativeEvent : any = event . nativeEvent ;
402- const { type, pointerType} = nativeEvent ;
403- if ( pointerType != null ) {
404- return pointerType ;
405- }
406- if ( type . indexOf ( 'mouse' ) === 0 ) {
407- return 'mouse' ;
408- }
409- if ( type . indexOf ( 'touch' ) === 0 ) {
410- return 'touch' ;
411- }
412- if ( type . indexOf ( 'key' ) === 0 ) {
413- return 'keyboard' ;
414- }
415- return '' ;
416- } ,
417397 getEventCurrentTarget ( event : ReactResponderEvent ) : Element {
418398 validateResponderContext ( ) ;
419399 const target = event . target ;
@@ -583,12 +563,29 @@ function createResponderEvent(
583563 passive : boolean ,
584564 passiveSupported : boolean ,
585565) : ReactResponderEvent {
566+ const { pointerType} = ( nativeEvent : any ) ;
567+ let eventPointerType = '' ;
568+ let pointerId = null ;
569+
570+ if ( pointerType !== undefined ) {
571+ eventPointerType = pointerType ;
572+ pointerId = ( nativeEvent : any ) . pointerId ;
573+ } else if ( nativeEvent . key !== undefined ) {
574+ eventPointerType = 'keyboard' ;
575+ } else if ( nativeEvent . button !== undefined ) {
576+ eventPointerType = 'mouse' ;
577+ } else if ( ( nativeEvent : any ) . changedTouches !== undefined ) {
578+ eventPointerType = 'touch' ;
579+ }
580+
586581 const responderEvent = {
587582 nativeEvent : nativeEvent ,
588- target : nativeEventTarget ,
589- type : topLevelType ,
590583 passive,
591584 passiveSupported,
585+ pointerId,
586+ pointerType : eventPointerType ,
587+ target : nativeEventTarget ,
588+ type : topLevelType ,
592589 } ;
593590 if ( __DEV__ ) {
594591 Object . freeze ( responderEvent ) ;
0 commit comments