From f5e38c52427e1faca4d0d741c35d35233323cdfe Mon Sep 17 00:00:00 2001 From: lostfictions Date: Thu, 7 Jun 2018 19:43:49 -0400 Subject: [PATCH 1/3] add Pointer Events support to React --- types/react/global.d.ts | 1 + types/react/index.d.ts | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/types/react/global.d.ts b/types/react/global.d.ts index 8d6062b4bc..5afef3a17c 100644 --- a/types/react/global.d.ts +++ b/types/react/global.d.ts @@ -13,6 +13,7 @@ interface FocusEvent extends Event { } interface KeyboardEvent extends Event { } interface MouseEvent extends Event { } interface TouchEvent extends Event { } +interface PointerEvent extends Event { } interface TransitionEvent extends Event { } interface UIEvent extends Event { } interface WheelEvent extends Event { } diff --git a/types/react/index.d.ts b/types/react/index.d.ts index 27a76a9a08..6c96a3ac0d 100644 --- a/types/react/index.d.ts +++ b/types/react/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for React 16.3 +// Type definitions for React 16.4 // Project: http://facebook.github.io/react/ // Definitions by: Asana // AssureSign @@ -31,6 +31,7 @@ type NativeFocusEvent = FocusEvent; type NativeKeyboardEvent = KeyboardEvent; type NativeMouseEvent = MouseEvent; type NativeTouchEvent = TouchEvent; +type NativePointerEvent = PointerEvent; type NativeTransitionEvent = TransitionEvent; type NativeUIEvent = UIEvent; type NativeWheelEvent = WheelEvent; @@ -590,6 +591,18 @@ declare namespace React { nativeEvent: NativeDragEvent; } + interface PointerEvent extends MouseEvent { + pointerId: number; + pressure: number; + tiltX: number; + tiltY: number; + width: number; + height: number; + pointerType: 'mouse' | 'pen' | 'touch'; + isPrimary: boolean; + nativeEvent: NativePointerEvent; + } + interface FocusEvent extends SyntheticEvent { nativeEvent: NativeFocusEvent; relatedTarget: EventTarget; @@ -711,6 +724,7 @@ declare namespace React { type KeyboardEventHandler = EventHandler>; type MouseEventHandler = EventHandler>; type TouchEventHandler = EventHandler>; + type PointerEventHandler = EventHandler>; type UIEventHandler = EventHandler>; type WheelEventHandler = EventHandler>; type AnimationEventHandler = EventHandler>; @@ -898,6 +912,28 @@ declare namespace React { onTouchStart?: TouchEventHandler; onTouchStartCapture?: TouchEventHandler; + // Pointer Events + onPointerDown?: PointerEventHandler; + onPointerDownCapture?: PointerEventHandler; + onPointerMove?: PointerEventHandler; + onPointerMoveCapture?: PointerEventHandler; + onPointerUp?: PointerEventHandler; + onPointerUpCapture?: PointerEventHandler; + onPointerCancel?: PointerEventHandler; + onPointerCancelCapture?: PointerEventHandler; + onPointerEnter?: PointerEventHandler; + onPointerEnterCapture?: PointerEventHandler; + onPointerLeave?: PointerEventHandler; + onPointerLeaveCapture?: PointerEventHandler; + onPointerOver?: PointerEventHandler; + onPointerOverCapture?: PointerEventHandler; + onPointerOut?: PointerEventHandler; + onPointerOutCapture?: PointerEventHandler; + onGotPointerCapture?: PointerEventHandler; + onGotPointerCaptureCapture?: PointerEventHandler; + onLostPointerCapture?: PointerEventHandler; + onLostPointerCaptureCapture?: PointerEventHandler; + // UI Events onScroll?: UIEventHandler; onScrollCapture?: UIEventHandler; From d633b71a9bf4f8a2f4b602133eb9b1abeb3babb0 Mon Sep 17 00:00:00 2001 From: lostfictions Date: Fri, 8 Jun 2018 01:59:02 -0400 Subject: [PATCH 2/3] fix react-pointable typings --- types/react-pointable/index.d.ts | 10 +--------- types/react-pointable/react-pointable-tests.tsx | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/types/react-pointable/index.d.ts b/types/react-pointable/index.d.ts index c69d537d55..1a12822643 100644 --- a/types/react-pointable/index.d.ts +++ b/types/react-pointable/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for react-pointable 1.1 +// Type definitions for react-pointable 1.1.2 // Project: https://github.com/MilllerTime/react-pointable // Definitions by: Stefan Fochler // Dibyo Majumdar @@ -13,14 +13,6 @@ export interface PointableProps extends React.HTMLAttributes, React.SVG tagName?: keyof ElementTagNameMap; touchAction?: TouchAction; elementRef?(el: HTMLElement|SVGElement): void; - onPointerMove?(evt: PointerEvent): void; - onPointerDown?(evt: PointerEvent): void; - onPointerUp?(evt: PointerEvent): void; - onPointerOver?(evt: PointerEvent): void; - onPointerOut?(evt: PointerEvent): void; - onPointerEnter?(evt: PointerEvent): void; - onPointerLeave?(evt: PointerEvent): void; - onPointerCancel?(evt: PointerEvent): void; } export default class Pointable extends React.Component { diff --git a/types/react-pointable/react-pointable-tests.tsx b/types/react-pointable/react-pointable-tests.tsx index 6331b88386..f905b8faa8 100644 --- a/types/react-pointable/react-pointable-tests.tsx +++ b/types/react-pointable/react-pointable-tests.tsx @@ -3,7 +3,7 @@ import Pointable from 'react-pointable'; class Test extends React.Component { elementRef(el: HTMLElement) {} - somePointerEvent(evt: PointerEvent) {} + somePointerEvent(evt: React.PointerEvent) {} render() { return ( From 4c5030321e7c086418436b406a8b5fb414eae317 Mon Sep 17 00:00:00 2001 From: lostfictions Date: Fri, 8 Jun 2018 13:44:47 -0400 Subject: [PATCH 3/3] increment version for react-pointable to satisfy CI (even though this version doesn't exist) --- types/react-pointable/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-pointable/index.d.ts b/types/react-pointable/index.d.ts index 1a12822643..0b83bdeb1d 100644 --- a/types/react-pointable/index.d.ts +++ b/types/react-pointable/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for react-pointable 1.1.2 +// Type definitions for react-pointable 1.2 // Project: https://github.com/MilllerTime/react-pointable // Definitions by: Stefan Fochler // Dibyo Majumdar