react-native-gesture-handler 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +3 -2
  2. package/android/build.gradle +28 -4
  3. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +9 -5
  4. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +6 -1
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +103 -22
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +29 -2
  7. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +74 -84
  8. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +4 -0
  9. package/android/src/main/jni/Android.mk +1 -2
  10. package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +12 -9
  11. package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +1 -0
  12. package/ios/Handlers/RNFlingHandler.m +43 -1
  13. package/ios/Handlers/{RNNativeViewHandler.m → RNNativeViewHandler.mm} +13 -1
  14. package/ios/Handlers/RNPanHandler.m +27 -0
  15. package/ios/RNGestureHandler.h +1 -0
  16. package/ios/RNGestureHandler.m +22 -4
  17. package/ios/RNGestureHandlerManager.mm +10 -2
  18. package/ios/RNGestureHandlerModule.mm +4 -1
  19. package/ios/RNManualActivationRecognizer.m +10 -3
  20. package/ios/RNRootViewGestureRecognizer.m +12 -1
  21. package/lib/commonjs/RNGestureHandlerModule.macos.js +81 -0
  22. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -0
  23. package/lib/commonjs/components/DrawerLayout.js +38 -11
  24. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  25. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  26. package/lib/commonjs/components/touchables/GenericTouchable.js +4 -1
  27. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  28. package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  29. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +2 -1
  30. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  31. package/lib/commonjs/handlers/PanGestureHandler.js +1 -1
  32. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  33. package/lib/commonjs/handlers/PressabilityDebugView.js +14 -0
  34. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -0
  35. package/lib/commonjs/handlers/PressabilityDebugView.web.js +12 -0
  36. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -0
  37. package/lib/commonjs/handlers/createHandler.js +25 -11
  38. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  39. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  40. package/lib/commonjs/handlers/gestures/GestureDetector.js +83 -63
  41. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  42. package/lib/commonjs/handlers/gestures/gesture.js +13 -2
  43. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  44. package/lib/commonjs/handlers/gestures/gestureStateManager.js +13 -9
  45. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
  46. package/lib/commonjs/handlers/gestures/panGesture.js +5 -0
  47. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  48. package/lib/commonjs/mocks.js +2 -0
  49. package/lib/commonjs/mocks.js.map +1 -1
  50. package/lib/commonjs/utils.js +6 -3
  51. package/lib/commonjs/utils.js.map +1 -1
  52. package/lib/commonjs/web/utils.js.map +1 -1
  53. package/lib/module/RNGestureHandlerModule.macos.js +57 -0
  54. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -0
  55. package/lib/module/components/DrawerLayout.js +38 -11
  56. package/lib/module/components/DrawerLayout.js.map +1 -1
  57. package/lib/module/components/GestureButtons.js.map +1 -1
  58. package/lib/module/components/touchables/GenericTouchable.js +4 -1
  59. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  60. package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  61. package/lib/module/handlers/ForceTouchGestureHandler.js +1 -1
  62. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  63. package/lib/module/handlers/PanGestureHandler.js +1 -1
  64. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  65. package/lib/module/handlers/PressabilityDebugView.js +3 -0
  66. package/lib/module/handlers/PressabilityDebugView.js.map +1 -0
  67. package/lib/module/handlers/PressabilityDebugView.web.js +5 -0
  68. package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -0
  69. package/lib/module/handlers/createHandler.js +26 -12
  70. package/lib/module/handlers/createHandler.js.map +1 -1
  71. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  72. package/lib/module/handlers/gestures/GestureDetector.js +83 -63
  73. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  74. package/lib/module/handlers/gestures/gesture.js +13 -2
  75. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  76. package/lib/module/handlers/gestures/gestureStateManager.js +13 -9
  77. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  78. package/lib/module/handlers/gestures/panGesture.js +5 -0
  79. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  80. package/lib/module/mocks.js +2 -0
  81. package/lib/module/mocks.js.map +1 -1
  82. package/lib/module/utils.js +2 -1
  83. package/lib/module/utils.js.map +1 -1
  84. package/lib/module/web/utils.js.map +1 -1
  85. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +34 -0
  86. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  87. package/lib/typescript/components/DrawerLayout.d.ts +3 -0
  88. package/lib/typescript/components/GestureButtons.d.ts +6 -0
  89. package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
  90. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +2 -2
  91. package/lib/typescript/handlers/PanGestureHandler.d.ts +2 -1
  92. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
  93. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
  94. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
  95. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
  96. package/lib/typescript/handlers/gestures/gesture.d.ts +3 -0
  97. package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
  98. package/lib/typescript/mocks.d.ts +1 -0
  99. package/lib/typescript/web/NodeManager.d.ts +2 -2
  100. package/package.json +1 -1
  101. package/src/RNGestureHandlerModule.macos.ts +62 -0
  102. package/src/components/DrawerLayout.tsx +34 -10
  103. package/src/components/GestureButtons.tsx +7 -0
  104. package/src/components/touchables/GenericTouchable.tsx +1 -0
  105. package/src/fabric/RNGestureHandlerButtonNativeComponent.ts +1 -0
  106. package/src/handlers/ForceTouchGestureHandler.ts +3 -2
  107. package/src/handlers/PanGestureHandler.ts +2 -0
  108. package/src/handlers/PressabilityDebugView.tsx +2 -0
  109. package/src/handlers/PressabilityDebugView.web.tsx +4 -0
  110. package/src/handlers/{createHandler.ts → createHandler.tsx} +32 -17
  111. package/src/handlers/gestureHandlerCommon.ts +2 -0
  112. package/src/handlers/gestures/GestureDetector.tsx +107 -81
  113. package/src/handlers/gestures/gesture.ts +16 -0
  114. package/src/handlers/gestures/gestureStateManager.ts +13 -8
  115. package/src/handlers/gestures/panGesture.ts +5 -0
  116. package/src/mocks.ts +2 -0
  117. package/src/utils.ts +3 -1
  118. package/src/web/utils.ts +1 -1
  119. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  120. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
@@ -126,6 +126,8 @@ export type BaseGestureHandlerProps<
126
126
  onHandlerStateChange?: (
127
127
  event: HandlerStateChangeEvent<ExtraEventPayloadT>
128
128
  ) => void;
129
+ // implicit `children` prop has been removed in @types/react^18.0.0
130
+ children?: React.ReactNode;
129
131
  };
130
132
 
131
133
  function isConfigParam(param: unknown, name: string) {
@@ -268,11 +268,34 @@ function updateHandlers(
268
268
  }
269
269
 
270
270
  if (preparedGesture.animatedHandlers) {
271
- preparedGesture.animatedHandlers.value = (preparedGesture.config
271
+ const previousHandlersValue =
272
+ preparedGesture.animatedHandlers.value ?? [];
273
+ const newHandlersValue = (preparedGesture.config
272
274
  .filter((g) => g.shouldUseReanimated) // ignore gestures that shouldn't run on UI
273
275
  .map((g) => g.handlers) as unknown) as HandlerCallbacks<
274
276
  Record<string, unknown>
275
277
  >[];
278
+
279
+ // if amount of gesture configs changes, we need to update the callbacks in shared value
280
+ let shouldUpdateSharedValue =
281
+ previousHandlersValue.length !== newHandlersValue.length;
282
+
283
+ if (!shouldUpdateSharedValue) {
284
+ // if the amount is the same, we need to check if any of the configs inside has changed
285
+ for (let i = 0; i < newHandlersValue.length; i++) {
286
+ if (
287
+ // we can use the `gestureId` prop as it's unique for every config instance
288
+ newHandlersValue[i].gestureId !== previousHandlersValue[i].gestureId
289
+ ) {
290
+ shouldUpdateSharedValue = true;
291
+ break;
292
+ }
293
+ }
294
+ }
295
+
296
+ if (shouldUpdateSharedValue) {
297
+ preparedGesture.animatedHandlers.value = newHandlersValue;
298
+ }
276
299
  }
277
300
 
278
301
  scheduleFlushOperations();
@@ -299,90 +322,90 @@ function needsToReattach(
299
322
  return false;
300
323
  }
301
324
 
302
- function useAnimatedGesture(
303
- preparedGesture: GestureConfigReference,
304
- needsRebuild: boolean
305
- ) {
306
- if (!Reanimated) {
307
- return;
308
- }
325
+ function isStateChangeEvent(
326
+ event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
327
+ ): event is GestureStateChangeEvent {
328
+ 'worklet';
329
+ // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point
330
+ return event.oldState != null;
331
+ }
309
332
 
310
- function isStateChangeEvent(
311
- event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
312
- ): event is GestureStateChangeEvent {
313
- 'worklet';
314
- // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point
315
- return event.oldState != null;
316
- }
333
+ function isTouchEvent(
334
+ event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
335
+ ): event is GestureTouchEvent {
336
+ 'worklet';
337
+ return event.eventType != null;
338
+ }
317
339
 
318
- function isTouchEvent(
319
- event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
320
- ): event is GestureTouchEvent {
321
- 'worklet';
322
- return event.eventType != null;
340
+ function getHandler(
341
+ type: CALLBACK_TYPE,
342
+ gesture: HandlerCallbacks<Record<string, unknown>>
343
+ ) {
344
+ 'worklet';
345
+ switch (type) {
346
+ case CALLBACK_TYPE.BEGAN:
347
+ return gesture.onBegin;
348
+ case CALLBACK_TYPE.START:
349
+ return gesture.onStart;
350
+ case CALLBACK_TYPE.UPDATE:
351
+ return gesture.onUpdate;
352
+ case CALLBACK_TYPE.CHANGE:
353
+ return gesture.onChange;
354
+ case CALLBACK_TYPE.END:
355
+ return gesture.onEnd;
356
+ case CALLBACK_TYPE.FINALIZE:
357
+ return gesture.onFinalize;
358
+ case CALLBACK_TYPE.TOUCHES_DOWN:
359
+ return gesture.onTouchesDown;
360
+ case CALLBACK_TYPE.TOUCHES_MOVE:
361
+ return gesture.onTouchesMove;
362
+ case CALLBACK_TYPE.TOUCHES_UP:
363
+ return gesture.onTouchesUp;
364
+ case CALLBACK_TYPE.TOUCHES_CANCELLED:
365
+ return gesture.onTouchesCancelled;
323
366
  }
367
+ }
324
368
 
325
- function getHandler(
326
- type: CALLBACK_TYPE,
327
- gesture: HandlerCallbacks<Record<string, unknown>>
328
- ) {
329
- 'worklet';
330
- switch (type) {
331
- case CALLBACK_TYPE.BEGAN:
332
- return gesture.onBegin;
333
- case CALLBACK_TYPE.START:
334
- return gesture.onStart;
335
- case CALLBACK_TYPE.UPDATE:
336
- return gesture.onUpdate;
337
- case CALLBACK_TYPE.CHANGE:
338
- return gesture.onChange;
339
- case CALLBACK_TYPE.END:
340
- return gesture.onEnd;
341
- case CALLBACK_TYPE.FINALIZE:
342
- return gesture.onFinalize;
343
- case CALLBACK_TYPE.TOUCHES_DOWN:
344
- return gesture.onTouchesDown;
345
- case CALLBACK_TYPE.TOUCHES_MOVE:
346
- return gesture.onTouchesMove;
347
- case CALLBACK_TYPE.TOUCHES_UP:
348
- return gesture.onTouchesUp;
349
- case CALLBACK_TYPE.TOUCHES_CANCELLED:
350
- return gesture.onTouchesCancelled;
351
- }
369
+ function touchEventTypeToCallbackType(
370
+ eventType: TouchEventType
371
+ ): CALLBACK_TYPE {
372
+ 'worklet';
373
+ switch (eventType) {
374
+ case TouchEventType.TOUCHES_DOWN:
375
+ return CALLBACK_TYPE.TOUCHES_DOWN;
376
+ case TouchEventType.TOUCHES_MOVE:
377
+ return CALLBACK_TYPE.TOUCHES_MOVE;
378
+ case TouchEventType.TOUCHES_UP:
379
+ return CALLBACK_TYPE.TOUCHES_UP;
380
+ case TouchEventType.TOUCHES_CANCELLED:
381
+ return CALLBACK_TYPE.TOUCHES_CANCELLED;
352
382
  }
383
+ return CALLBACK_TYPE.UNDEFINED;
384
+ }
353
385
 
354
- function touchEventTypeToCallbackType(
355
- eventType: TouchEventType
356
- ): CALLBACK_TYPE {
357
- 'worklet';
358
- switch (eventType) {
359
- case TouchEventType.TOUCHES_DOWN:
360
- return CALLBACK_TYPE.TOUCHES_DOWN;
361
- case TouchEventType.TOUCHES_MOVE:
362
- return CALLBACK_TYPE.TOUCHES_MOVE;
363
- case TouchEventType.TOUCHES_UP:
364
- return CALLBACK_TYPE.TOUCHES_UP;
365
- case TouchEventType.TOUCHES_CANCELLED:
366
- return CALLBACK_TYPE.TOUCHES_CANCELLED;
367
- }
368
- return CALLBACK_TYPE.UNDEFINED;
386
+ function runWorklet(
387
+ type: CALLBACK_TYPE,
388
+ gesture: HandlerCallbacks<Record<string, unknown>>,
389
+ event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,
390
+ ...args: any[]
391
+ ) {
392
+ 'worklet';
393
+ const handler = getHandler(type, gesture);
394
+ if (gesture.isWorklet[type]) {
395
+ // @ts-ignore Logic below makes sure the correct event is send to the
396
+ // correct handler.
397
+ handler?.(event, ...args);
398
+ } else if (handler) {
399
+ console.warn(tagMessage('Animated gesture callback must be a worklet'));
369
400
  }
401
+ }
370
402
 
371
- function runWorklet(
372
- type: CALLBACK_TYPE,
373
- gesture: HandlerCallbacks<Record<string, unknown>>,
374
- event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,
375
- ...args: any[]
376
- ) {
377
- 'worklet';
378
- const handler = getHandler(type, gesture);
379
- if (gesture.isWorklet[type]) {
380
- // @ts-ignore Logic below makes sure the correct event is send to the
381
- // correct handler.
382
- handler?.(event, ...args);
383
- } else if (handler) {
384
- console.warn(tagMessage('Animated gesture callback must be a worklet'));
385
- }
403
+ function useAnimatedGesture(
404
+ preparedGesture: GestureConfigReference,
405
+ needsRebuild: boolean
406
+ ) {
407
+ if (!Reanimated) {
408
+ return;
386
409
  }
387
410
 
388
411
  // Hooks are called conditionally, but the condition is whether the
@@ -490,10 +513,9 @@ function useAnimatedGesture(
490
513
 
491
514
  interface GestureDetectorProps {
492
515
  gesture?: ComposedGesture | GestureType;
516
+ children?: React.ReactNode;
493
517
  }
494
- export const GestureDetector: React.FunctionComponent<GestureDetectorProps> = (
495
- props
496
- ) => {
518
+ export const GestureDetector = (props: GestureDetectorProps) => {
497
519
  const gestureConfig = props.gesture;
498
520
  const gesture = gestureConfig?.toGestureArray?.() ?? [];
499
521
  const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);
@@ -605,7 +627,11 @@ export const GestureDetector: React.FunctionComponent<GestureDetectorProps> = (
605
627
  }
606
628
  };
607
629
 
608
- class Wrap extends React.Component<{ onGestureHandlerEvent?: unknown }> {
630
+ class Wrap extends React.Component<{
631
+ onGestureHandlerEvent?: unknown;
632
+ // implicit `children` prop has been removed in @types/react^18.0.0
633
+ children?: React.ReactNode;
634
+ }> {
609
635
  render() {
610
636
  // I don't think that fighting with types over such a simple function is worth it
611
637
  // The only thing it does is add 'collapsable: false' to the child component
@@ -53,6 +53,7 @@ type TouchEventHandlerType = (
53
53
  ) => void;
54
54
 
55
55
  export type HandlerCallbacks<EventPayloadT extends Record<string, unknown>> = {
56
+ gestureId: number;
56
57
  handlerTag: number;
57
58
  onBegin?: (event: GestureStateChangeEvent<EventPayloadT>) => void;
58
59
  onStart?: (event: GestureStateChangeEvent<EventPayloadT>) => void;
@@ -115,17 +116,32 @@ export abstract class Gesture {
115
116
  abstract prepare(): void;
116
117
  }
117
118
 
119
+ let nextGestureId = 0;
118
120
  export abstract class BaseGesture<
119
121
  EventPayloadT extends Record<string, unknown>
120
122
  > extends Gesture {
123
+ private gestureId = -1;
121
124
  public handlerTag = -1;
122
125
  public handlerName = '';
123
126
  public config: BaseGestureConfig = {};
124
127
  public handlers: HandlerCallbacks<EventPayloadT> = {
128
+ gestureId: -1,
125
129
  handlerTag: -1,
126
130
  isWorklet: [],
127
131
  };
128
132
 
133
+ constructor() {
134
+ super();
135
+
136
+ // Used to check whether the gesture config has been updated when wrapping it
137
+ // with `useMemo`. Since every config will have a unique id, when the dependencies
138
+ // don't change, the config won't be recreated and the id will stay the same.
139
+ // If the id is different, it means that the config has changed and the gesture
140
+ // needs to be updated.
141
+ this.gestureId = nextGestureId++;
142
+ this.handlers.gestureId = this.gestureId;
143
+ }
144
+
129
145
  private addDependency(
130
146
  key: 'simultaneousWith' | 'requireToFail',
131
147
  gesture: Exclude<GestureRef, number>
@@ -13,14 +13,19 @@ const warningMessage = tagMessage(
13
13
  'react-native-reanimated is required in order to use synchronous state management'
14
14
  );
15
15
 
16
+ // check if reanimated module is available, but look for useSharedValue as conditional
17
+ // require of reanimated can sometimes return content of `utils.ts` file (?)
18
+ const REANIMATED_AVAILABLE = Reanimated?.useSharedValue !== undefined;
19
+ const setGestureState = Reanimated?.setGestureState;
20
+
16
21
  export const GestureStateManager = {
17
22
  create(handlerTag: number): GestureStateManagerType {
18
23
  'worklet';
19
24
  return {
20
25
  begin: () => {
21
26
  'worklet';
22
- if (Reanimated) {
23
- Reanimated.setGestureState(handlerTag, State.BEGAN);
27
+ if (REANIMATED_AVAILABLE) {
28
+ setGestureState(handlerTag, State.BEGAN);
24
29
  } else {
25
30
  console.warn(warningMessage);
26
31
  }
@@ -28,8 +33,8 @@ export const GestureStateManager = {
28
33
 
29
34
  activate: () => {
30
35
  'worklet';
31
- if (Reanimated) {
32
- Reanimated.setGestureState(handlerTag, State.ACTIVE);
36
+ if (REANIMATED_AVAILABLE) {
37
+ setGestureState(handlerTag, State.ACTIVE);
33
38
  } else {
34
39
  console.warn(warningMessage);
35
40
  }
@@ -37,8 +42,8 @@ export const GestureStateManager = {
37
42
 
38
43
  fail: () => {
39
44
  'worklet';
40
- if (Reanimated) {
41
- Reanimated.setGestureState(handlerTag, State.FAILED);
45
+ if (REANIMATED_AVAILABLE) {
46
+ setGestureState(handlerTag, State.FAILED);
42
47
  } else {
43
48
  console.warn(warningMessage);
44
49
  }
@@ -46,8 +51,8 @@ export const GestureStateManager = {
46
51
 
47
52
  end: () => {
48
53
  'worklet';
49
- if (Reanimated) {
50
- Reanimated.setGestureState(handlerTag, State.END);
54
+ if (REANIMATED_AVAILABLE) {
55
+ setGestureState(handlerTag, State.END);
51
56
  } else {
52
57
  console.warn(warningMessage);
53
58
  }
@@ -131,6 +131,11 @@ export class PanGesture extends ContinousBaseGesture<
131
131
  return this;
132
132
  }
133
133
 
134
+ activateAfterLongPress(duration: number) {
135
+ this.config.activateAfterLongPress = duration;
136
+ return this;
137
+ }
138
+
134
139
  onChange(
135
140
  callback: (
136
141
  event: GestureUpdateEvent<
package/src/mocks.ts CHANGED
@@ -21,6 +21,7 @@ const attachGestureHandler = NOOP;
21
21
  const createGestureHandler = NOOP;
22
22
  const dropGestureHandler = NOOP;
23
23
  const updateGestureHandler = NOOP;
24
+ const flushOperations = NOOP;
24
25
  const NativeViewGestureHandler = View;
25
26
  const TapGestureHandler = View;
26
27
  const ForceTouchGestureHandler = View;
@@ -59,6 +60,7 @@ export default {
59
60
  createGestureHandler,
60
61
  dropGestureHandler,
61
62
  updateGestureHandler,
63
+ flushOperations,
62
64
  // probably can be removed
63
65
  Directions,
64
66
  State,
package/src/utils.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { version as rnVersion } from 'react-native/package.json';
1
+ import pack from 'react-native/package.json';
2
+
3
+ const rnVersion = pack.version;
2
4
 
3
5
  export function toArray<T>(object: T | T[]): T[] {
4
6
  if (!Array.isArray(object)) {
package/src/web/utils.ts CHANGED
@@ -20,5 +20,5 @@ export function fireAfterInterval(
20
20
  method();
21
21
  return null;
22
22
  }
23
- return setTimeout(() => method(), interval);
23
+ return setTimeout(() => method(), interval as number);
24
24
  }
@@ -1,19 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>RNGestureHandler-tvOS.xcscheme_^#shared#^_</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>1</integer>
11
- </dict>
12
- <key>RNGestureHandler.xcscheme_^#shared#^_</key>
13
- <dict>
14
- <key>orderHint</key>
15
- <integer>0</integer>
16
- </dict>
17
- </dict>
18
- </dict>
19
- </plist>