react-native-gesture-handler 2.7.0 → 2.8.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.
- package/android/build.gradle +10 -5
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
- package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
- package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +7 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +6 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +35 -14
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
- package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
- package/ios/Handlers/RNManualHandler.m +24 -8
- package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
- package/ios/RNGestureHandlerManager.mm +176 -178
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +2 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +26 -12
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +15 -4
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +18 -15
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +36 -7
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +2 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +4 -1
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +117 -0
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +2 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +5 -2
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +26 -12
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +15 -4
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +18 -15
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +36 -6
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +2 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -5
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +0 -5
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -1
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +4 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +25 -6
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
- package/lib/typescript/components/DrawerLayout.d.ts +7 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
- package/lib/typescript/web/interfaces.d.ts +3 -1
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/package.json +14 -10
- package/src/RNGestureHandlerModule.macos.ts +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/RNGestureHandlerModule.windows.ts +140 -0
- package/src/components/DrawerLayout.tsx +14 -8
- package/src/components/Swipeable.tsx +2 -4
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/getShadowNodeFromRef.ts +3 -3
- package/src/handlers/createHandler.tsx +13 -15
- package/src/handlers/gestureHandlerCommon.ts +9 -4
- package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
- package/src/handlers/gestures/GestureDetector.tsx +46 -19
- package/src/handlers/gestures/eventReceiver.ts +2 -1
- package/src/handlers/gestures/gesture.ts +8 -12
- package/src/handlers/gestures/gestureComposition.ts +19 -6
- package/src/jestUtils/jestUtils.ts +3 -4
- package/src/web/detectors/RotationGestureDetector.ts +2 -1
- package/src/web/handlers/FlingGestureHandler.ts +28 -20
- package/src/web/handlers/GestureHandler.ts +42 -17
- package/src/web/handlers/LongPressGestureHandler.ts +2 -2
- package/src/web/handlers/ManualGestureHandler.ts +10 -1
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -5
- package/src/web/handlers/PanGestureHandler.ts +0 -6
- package/src/web/handlers/PinchGestureHandler.ts +0 -2
- package/src/web/handlers/RotationGestureHandler.ts +2 -5
- package/src/web/handlers/TapGestureHandler.ts +0 -2
- package/src/web/interfaces.ts +3 -0
- package/src/web/tools/InteractionManager.ts +2 -3
- package/src/web_hammer/GestureHandler.ts +6 -8
- package/src/web_hammer/NodeManager.ts +3 -1
- package/src/web_hammer/PanGestureHandler.ts +12 -6
- package/android/lib/build.gradle +0 -28
- package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
|
@@ -27,7 +27,7 @@ import com.facebook.react.uimanager.ViewProps
|
|
|
27
27
|
import com.facebook.react.uimanager.annotations.ReactProp
|
|
28
28
|
import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate
|
|
29
29
|
import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerInterface
|
|
30
|
-
import com.swmansion.gesturehandler.NativeViewGestureHandler
|
|
30
|
+
import com.swmansion.gesturehandler.core.NativeViewGestureHandler
|
|
31
31
|
import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager.ButtonViewGroup
|
|
32
32
|
|
|
33
33
|
@ReactModule(name = RNGestureHandlerButtonViewManager.REACT_CLASS)
|
|
@@ -35,7 +35,7 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
|
|
|
35
35
|
private val mDelegate: ViewManagerDelegate<ButtonViewGroup>
|
|
36
36
|
|
|
37
37
|
init {
|
|
38
|
-
|
|
38
|
+
mDelegate = RNGestureHandlerButtonManagerDelegate<ButtonViewGroup, RNGestureHandlerButtonViewManager>(this)
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
override fun getName() = REACT_CLASS
|
|
@@ -91,7 +91,8 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
|
|
|
91
91
|
return mDelegate
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
class ButtonViewGroup(context: Context?) :
|
|
94
|
+
class ButtonViewGroup(context: Context?) :
|
|
95
|
+
ViewGroup(context),
|
|
95
96
|
NativeViewGestureHandler.NativeViewGestureHandlerHook {
|
|
96
97
|
// Using object because of handling null representing no value set.
|
|
97
98
|
var rippleColor: Int? = null
|
|
@@ -254,9 +255,9 @@ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), R
|
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
val drawable = RippleDrawable(
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
258
|
+
colorStateList,
|
|
259
|
+
null,
|
|
260
|
+
if (useBorderlessDrawable) null else ShapeDrawable(RectShape())
|
|
260
261
|
)
|
|
261
262
|
|
|
262
263
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && rippleRadius != null) {
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
package com.swmansion.gesturehandler.react
|
|
2
2
|
|
|
3
3
|
import android.content.Context
|
|
4
|
-
import android.os.Bundle
|
|
5
4
|
import android.util.AttributeSet
|
|
6
|
-
import android.view.MotionEvent
|
|
7
|
-
import com.facebook.react.ReactInstanceManager
|
|
8
5
|
import com.facebook.react.ReactRootView
|
|
9
|
-
import java.lang.Exception
|
|
10
6
|
|
|
11
7
|
@Deprecated(message = "Use <GestureHandlerRootView /> component instead. Check gesture handler installation instructions in documentation for more information.")
|
|
12
8
|
class RNGestureHandlerEnabledRootView : ReactRootView {
|
|
@@ -14,6 +10,6 @@ class RNGestureHandlerEnabledRootView : ReactRootView {
|
|
|
14
10
|
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
|
|
15
11
|
|
|
16
12
|
init {
|
|
17
|
-
|
|
13
|
+
throw UnsupportedOperationException("Your application is configured to use RNGestureHandlerEnabledRootView which is no longer supported. You can see how to migrate to <GestureHandlerRootView /> here: https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot")
|
|
18
14
|
}
|
|
19
15
|
}
|
|
@@ -11,7 +11,7 @@ import com.facebook.react.bridge.Arguments
|
|
|
11
11
|
import com.facebook.react.bridge.WritableMap
|
|
12
12
|
import com.facebook.react.uimanager.events.Event
|
|
13
13
|
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
14
|
-
import com.swmansion.gesturehandler.GestureHandler
|
|
14
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
15
15
|
|
|
16
16
|
class RNGestureHandlerEvent private constructor() : Event<RNGestureHandlerEvent>() {
|
|
17
17
|
private var extraData: WritableMap? = null
|
|
@@ -53,13 +53,13 @@ class RNGestureHandlerEvent private constructor() : Event<RNGestureHandlerEvent>
|
|
|
53
53
|
init(handler, dataExtractor)
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
fun <T: GestureHandler<T>> createEventData(
|
|
56
|
+
fun <T : GestureHandler<T>> createEventData(
|
|
57
57
|
handler: T,
|
|
58
58
|
dataExtractor: RNGestureHandlerEventDataExtractor<T>?
|
|
59
59
|
): WritableMap = Arguments.createMap().apply {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
dataExtractor?.extractEventData(handler, this)
|
|
61
|
+
putInt("handlerTag", handler.tag)
|
|
62
|
+
putInt("state", handler.state)
|
|
63
|
+
}
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.swmansion.gesturehandler.react
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.WritableMap
|
|
4
|
-
import com.swmansion.gesturehandler.GestureHandler
|
|
4
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
5
5
|
|
|
6
6
|
interface RNGestureHandlerEventDataExtractor<T : GestureHandler<T>> {
|
|
7
7
|
fun extractEventData(handler: T, eventData: WritableMap)
|
|
@@ -2,9 +2,9 @@ package com.swmansion.gesturehandler.react
|
|
|
2
2
|
|
|
3
3
|
import android.util.SparseArray
|
|
4
4
|
import com.facebook.react.bridge.ReadableMap
|
|
5
|
-
import com.swmansion.gesturehandler.GestureHandler
|
|
6
|
-
import com.swmansion.gesturehandler.GestureHandlerInteractionController
|
|
7
|
-
import com.swmansion.gesturehandler.NativeViewGestureHandler
|
|
5
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
6
|
+
import com.swmansion.gesturehandler.core.GestureHandlerInteractionController
|
|
7
|
+
import com.swmansion.gesturehandler.core.NativeViewGestureHandler
|
|
8
8
|
|
|
9
9
|
class RNGestureHandlerInteractionManager : GestureHandlerInteractionController {
|
|
10
10
|
private val waitForRelations = SparseArray<IntArray>()
|
|
@@ -3,17 +3,33 @@ package com.swmansion.gesturehandler.react
|
|
|
3
3
|
import android.content.Context
|
|
4
4
|
import android.util.Log
|
|
5
5
|
import android.view.MotionEvent
|
|
6
|
-
import android.view.ViewGroup
|
|
7
6
|
import com.facebook.react.ReactRootView
|
|
8
|
-
import com.facebook.react.bridge
|
|
7
|
+
import com.facebook.react.bridge.JSApplicationIllegalArgumentException
|
|
8
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
9
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
10
|
+
import com.facebook.react.bridge.ReactMethod
|
|
11
|
+
import com.facebook.react.bridge.ReadableMap
|
|
12
|
+
import com.facebook.react.bridge.ReadableType
|
|
13
|
+
import com.facebook.react.bridge.WritableMap
|
|
9
14
|
import com.facebook.react.module.annotations.ReactModule
|
|
10
15
|
import com.facebook.react.uimanager.PixelUtil
|
|
11
|
-
import com.facebook.react.uimanager.UIBlock
|
|
12
16
|
import com.facebook.react.uimanager.events.Event
|
|
13
17
|
import com.facebook.soloader.SoLoader
|
|
14
18
|
import com.swmansion.common.GestureHandlerStateManager
|
|
15
|
-
import com.swmansion.gesturehandler
|
|
16
|
-
import
|
|
19
|
+
import com.swmansion.gesturehandler.BuildConfig
|
|
20
|
+
import com.swmansion.gesturehandler.ReanimatedEventDispatcher
|
|
21
|
+
import com.swmansion.gesturehandler.core.FlingGestureHandler
|
|
22
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
23
|
+
import com.swmansion.gesturehandler.core.LongPressGestureHandler
|
|
24
|
+
import com.swmansion.gesturehandler.core.ManualGestureHandler
|
|
25
|
+
import com.swmansion.gesturehandler.core.NativeViewGestureHandler
|
|
26
|
+
import com.swmansion.gesturehandler.core.OnTouchEventListener
|
|
27
|
+
import com.swmansion.gesturehandler.core.PanGestureHandler
|
|
28
|
+
import com.swmansion.gesturehandler.core.PinchGestureHandler
|
|
29
|
+
import com.swmansion.gesturehandler.core.RotationGestureHandler
|
|
30
|
+
import com.swmansion.gesturehandler.core.TapGestureHandler
|
|
31
|
+
import com.swmansion.gesturehandler.dispatchEvent
|
|
32
|
+
|
|
17
33
|
// NativeModule.onCatalystInstanceDestroy() was deprecated in favor of NativeModule.invalidate()
|
|
18
34
|
// ref: https://github.com/facebook/react-native/commit/18c8417290823e67e211bde241ae9dde27b72f17
|
|
19
35
|
|
|
@@ -21,8 +37,8 @@ import java.util.*
|
|
|
21
37
|
// ref: https://github.com/facebook/react-native/commit/acbf9e18ea666b07c1224a324602a41d0a66985e
|
|
22
38
|
@Suppress("DEPRECATION")
|
|
23
39
|
@ReactModule(name = RNGestureHandlerModule.MODULE_NAME)
|
|
24
|
-
class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
25
|
-
|
|
40
|
+
class RNGestureHandlerModule(reactContext: ReactApplicationContext?) :
|
|
41
|
+
ReactContextBaseJavaModule(reactContext), GestureHandlerStateManager {
|
|
26
42
|
private abstract class HandlerFactory<T : GestureHandler<T>> : RNGestureHandlerEventDataExtractor<T> {
|
|
27
43
|
abstract val type: Class<T>
|
|
28
44
|
abstract val name: String
|
|
@@ -63,7 +79,8 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
|
63
79
|
super.configure(handler, config)
|
|
64
80
|
if (config.hasKey(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)) {
|
|
65
81
|
handler.setShouldActivateOnStart(
|
|
66
|
-
config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)
|
|
82
|
+
config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)
|
|
83
|
+
)
|
|
67
84
|
}
|
|
68
85
|
if (config.hasKey(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION)) {
|
|
69
86
|
handler.setDisallowInterruption(config.getBoolean(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION))
|
|
@@ -352,7 +369,9 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
|
352
369
|
@ReactMethod
|
|
353
370
|
@Suppress("UNCHECKED_CAST")
|
|
354
371
|
fun <T : GestureHandler<T>> createGestureHandler(
|
|
355
|
-
handlerName: String,
|
|
372
|
+
handlerName: String,
|
|
373
|
+
handlerTag: Int,
|
|
374
|
+
config: ReadableMap,
|
|
356
375
|
) {
|
|
357
376
|
for (handlerFactory in handlerFactories as Array<HandlerFactory<T>>) {
|
|
358
377
|
if (handlerFactory.name == handlerName) {
|
|
@@ -551,8 +570,9 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
|
551
570
|
// Reanimated worklet
|
|
552
571
|
val event = RNGestureHandlerStateChangeEvent.obtain(handler, newState, oldState, handlerFactory)
|
|
553
572
|
sendEventForReanimated(event)
|
|
554
|
-
} else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT
|
|
555
|
-
|
|
573
|
+
} else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT ||
|
|
574
|
+
handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API
|
|
575
|
+
) {
|
|
556
576
|
// JS function or Animated.event with useNativeDriver: false with old API
|
|
557
577
|
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
558
578
|
val data = RNGestureHandlerStateChangeEvent.createEventData(handler, handlerFactory, newState, oldState)
|
|
@@ -570,13 +590,14 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?)
|
|
|
570
590
|
|
|
571
591
|
private fun <T : GestureHandler<T>> onTouchEvent(handler: T) {
|
|
572
592
|
// triggers onTouchesDown, onTouchesMove, onTouchesUp, onTouchesCancelled callbacks on the JS side
|
|
573
|
-
|
|
593
|
+
|
|
574
594
|
if (handler.tag < 0) {
|
|
575
595
|
// root containers use negative tags, we don't need to dispatch events for them to the JS
|
|
576
596
|
return
|
|
577
597
|
}
|
|
578
|
-
if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE
|
|
579
|
-
|
|
598
|
+
if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE ||
|
|
599
|
+
handler.state == GestureHandler.STATE_UNDETERMINED || handler.view != null
|
|
600
|
+
) {
|
|
580
601
|
if (handler.actionType == GestureHandler.ACTION_TYPE_REANIMATED_WORKLET) {
|
|
581
602
|
// Reanimated worklet
|
|
582
603
|
val event = RNGestureHandlerTouchEvent.obtain(handler)
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt
CHANGED
|
@@ -3,8 +3,8 @@ package com.swmansion.gesturehandler.react
|
|
|
3
3
|
import android.util.SparseArray
|
|
4
4
|
import android.view.View
|
|
5
5
|
import com.facebook.react.bridge.UiThreadUtil
|
|
6
|
-
import com.swmansion.gesturehandler.GestureHandler
|
|
7
|
-
import com.swmansion.gesturehandler.GestureHandlerRegistry
|
|
6
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
7
|
+
import com.swmansion.gesturehandler.core.GestureHandlerRegistry
|
|
8
8
|
import java.util.*
|
|
9
9
|
|
|
10
10
|
class RNGestureHandlerRegistry : GestureHandlerRegistry {
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt
CHANGED
|
@@ -9,9 +9,8 @@ import com.facebook.react.bridge.ReactContext
|
|
|
9
9
|
import com.facebook.react.bridge.UiThreadUtil
|
|
10
10
|
import com.facebook.react.common.ReactConstants
|
|
11
11
|
import com.facebook.react.uimanager.RootView
|
|
12
|
-
import com.
|
|
13
|
-
import com.swmansion.gesturehandler.
|
|
14
|
-
import com.swmansion.gesturehandler.GestureHandlerOrchestrator
|
|
12
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
13
|
+
import com.swmansion.gesturehandler.core.GestureHandlerOrchestrator
|
|
15
14
|
|
|
16
15
|
class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView: ViewGroup) {
|
|
17
16
|
private val orchestrator: GestureHandlerOrchestrator?
|
|
@@ -29,9 +28,11 @@ class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView:
|
|
|
29
28
|
rootView = findRootViewTag(wrappedView)
|
|
30
29
|
Log.i(
|
|
31
30
|
ReactConstants.TAG,
|
|
32
|
-
"[GESTURE HANDLER] Initialize gesture handler for root view $rootView"
|
|
31
|
+
"[GESTURE HANDLER] Initialize gesture handler for root view $rootView"
|
|
32
|
+
)
|
|
33
33
|
orchestrator = GestureHandlerOrchestrator(
|
|
34
|
-
wrappedView, registry, RNViewConfigurationHelper()
|
|
34
|
+
wrappedView, registry, RNViewConfigurationHelper()
|
|
35
|
+
).apply {
|
|
35
36
|
minimumAlphaForTraversal = MIN_ALPHA_FOR_TOUCH
|
|
36
37
|
}
|
|
37
38
|
jsGestureHandler = RootViewGestureHandler().apply { tag = -wrappedViewTag }
|
|
@@ -45,7 +46,8 @@ class RNGestureHandlerRootHelper(private val context: ReactContext, wrappedView:
|
|
|
45
46
|
fun tearDown() {
|
|
46
47
|
Log.i(
|
|
47
48
|
ReactConstants.TAG,
|
|
48
|
-
"[GESTURE HANDLER] Tearing down gesture handler registered for root view $rootView"
|
|
49
|
+
"[GESTURE HANDLER] Tearing down gesture handler registered for root view $rootView"
|
|
50
|
+
)
|
|
49
51
|
val module = context.getNativeModule(RNGestureHandlerModule::class.java)!!
|
|
50
52
|
with(module) {
|
|
51
53
|
registry.dropHandler(jsGestureHandler!!.tag)
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt
CHANGED
|
@@ -4,12 +4,10 @@ import android.content.Context
|
|
|
4
4
|
import android.util.Log
|
|
5
5
|
import android.view.MotionEvent
|
|
6
6
|
import android.view.ViewGroup
|
|
7
|
-
import android.view.ViewParent
|
|
8
7
|
import com.facebook.react.bridge.ReactContext
|
|
9
8
|
import com.facebook.react.bridge.UiThreadUtil
|
|
10
9
|
import com.facebook.react.common.ReactConstants
|
|
11
10
|
import com.facebook.react.uimanager.RootView
|
|
12
|
-
import com.facebook.react.views.modal.ReactModalHostView
|
|
13
11
|
import com.facebook.react.views.view.ReactViewGroup
|
|
14
12
|
|
|
15
13
|
class RNGestureHandlerRootView(context: Context?) : ReactViewGroup(context) {
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt
CHANGED
|
@@ -13,7 +13,8 @@ import com.facebook.react.viewmanagers.RNGestureHandlerRootViewManagerInterface
|
|
|
13
13
|
* to be provided.
|
|
14
14
|
*/
|
|
15
15
|
@ReactModule(name = RNGestureHandlerRootViewManager.REACT_CLASS)
|
|
16
|
-
class RNGestureHandlerRootViewManager :
|
|
16
|
+
class RNGestureHandlerRootViewManager :
|
|
17
|
+
ViewGroupManager<RNGestureHandlerRootView>(),
|
|
17
18
|
RNGestureHandlerRootViewManagerInterface<RNGestureHandlerRootView> {
|
|
18
19
|
private val mDelegate: ViewManagerDelegate<RNGestureHandlerRootView>
|
|
19
20
|
|
|
@@ -41,7 +42,8 @@ class RNGestureHandlerRootViewManager : ViewGroupManager<RNGestureHandlerRootVie
|
|
|
41
42
|
RNGestureHandlerEvent.EVENT_NAME to
|
|
42
43
|
mutableMapOf("registrationName" to RNGestureHandlerEvent.EVENT_NAME),
|
|
43
44
|
RNGestureHandlerStateChangeEvent.EVENT_NAME to
|
|
44
|
-
mutableMapOf("registrationName" to RNGestureHandlerStateChangeEvent.EVENT_NAME)
|
|
45
|
+
mutableMapOf("registrationName" to RNGestureHandlerStateChangeEvent.EVENT_NAME)
|
|
46
|
+
)
|
|
45
47
|
|
|
46
48
|
companion object {
|
|
47
49
|
const val REACT_CLASS = "RNGestureHandlerRootView"
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt
CHANGED
|
@@ -11,7 +11,7 @@ import com.facebook.react.bridge.Arguments
|
|
|
11
11
|
import com.facebook.react.bridge.WritableMap
|
|
12
12
|
import com.facebook.react.uimanager.events.Event
|
|
13
13
|
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
14
|
-
import com.swmansion.gesturehandler.GestureHandler
|
|
14
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
15
15
|
|
|
16
16
|
class RNGestureHandlerStateChangeEvent private constructor() : Event<RNGestureHandlerStateChangeEvent>() {
|
|
17
17
|
private var extraData: WritableMap? = null
|
|
@@ -57,16 +57,16 @@ class RNGestureHandlerStateChangeEvent private constructor() : Event<RNGestureHa
|
|
|
57
57
|
init(handler, newState, oldState, dataExtractor)
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
fun <T: GestureHandler<T>> createEventData(
|
|
60
|
+
fun <T : GestureHandler<T>> createEventData(
|
|
61
61
|
handler: T,
|
|
62
62
|
dataExtractor: RNGestureHandlerEventDataExtractor<T>?,
|
|
63
63
|
newState: Int,
|
|
64
64
|
oldState: Int,
|
|
65
65
|
): WritableMap = Arguments.createMap().apply {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
dataExtractor?.extractEventData(handler, this)
|
|
67
|
+
putInt("handlerTag", handler.tag)
|
|
68
|
+
putInt("state", newState)
|
|
69
|
+
putInt("oldState", oldState)
|
|
70
|
+
}
|
|
71
71
|
}
|
|
72
72
|
}
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt
CHANGED
|
@@ -5,7 +5,7 @@ import com.facebook.react.bridge.Arguments
|
|
|
5
5
|
import com.facebook.react.bridge.WritableMap
|
|
6
6
|
import com.facebook.react.uimanager.events.Event
|
|
7
7
|
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
8
|
-
import com.swmansion.gesturehandler.GestureHandler
|
|
8
|
+
import com.swmansion.gesturehandler.core.GestureHandler
|
|
9
9
|
|
|
10
10
|
class RNGestureHandlerTouchEvent private constructor() : Event<RNGestureHandlerTouchEvent>() {
|
|
11
11
|
private var extraData: WritableMap? = null
|
|
@@ -43,11 +43,11 @@ class RNGestureHandlerTouchEvent private constructor() : Event<RNGestureHandlerT
|
|
|
43
43
|
private val EVENTS_POOL = Pools.SynchronizedPool<RNGestureHandlerTouchEvent>(TOUCH_EVENTS_POOL_SIZE)
|
|
44
44
|
|
|
45
45
|
fun <T : GestureHandler<T>> obtain(handler: T): RNGestureHandlerTouchEvent =
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
(EVENTS_POOL.acquire() ?: RNGestureHandlerTouchEvent()).apply {
|
|
47
|
+
init(handler)
|
|
48
|
+
}
|
|
49
49
|
|
|
50
|
-
fun <T: GestureHandler<T>> createEventData(handler: T,): WritableMap = Arguments.createMap().apply {
|
|
50
|
+
fun <T : GestureHandler<T>> createEventData(handler: T,): WritableMap = Arguments.createMap().apply {
|
|
51
51
|
putInt("handlerTag", handler.tag)
|
|
52
52
|
putInt("state", handler.state)
|
|
53
53
|
putInt("numberOfTouches", handler.trackedPointersCount)
|
package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt
CHANGED
|
@@ -5,8 +5,8 @@ import android.view.ViewGroup
|
|
|
5
5
|
import com.facebook.react.uimanager.PointerEvents
|
|
6
6
|
import com.facebook.react.uimanager.ReactPointerEventsView
|
|
7
7
|
import com.facebook.react.views.view.ReactViewGroup
|
|
8
|
-
import com.swmansion.gesturehandler.PointerEventsConfig
|
|
9
|
-
import com.swmansion.gesturehandler.ViewConfigurationHelper
|
|
8
|
+
import com.swmansion.gesturehandler.core.PointerEventsConfig
|
|
9
|
+
import com.swmansion.gesturehandler.core.ViewConfigurationHelper
|
|
10
10
|
|
|
11
11
|
class RNViewConfigurationHelper : ViewConfigurationHelper {
|
|
12
12
|
override fun getPointerEventsConfigForView(view: View): PointerEventsConfig {
|
|
@@ -5,9 +5,9 @@ import com.facebook.react.uimanager.UIManagerModule
|
|
|
5
5
|
import com.facebook.react.uimanager.events.Event
|
|
6
6
|
|
|
7
7
|
fun ReactContext.dispatchEvent(event: Event<*>) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
try {
|
|
9
|
+
this.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher.dispatchEvent(event)
|
|
10
|
+
} catch (e: NullPointerException) {
|
|
11
|
+
throw Exception("Couldn't get an instance of UIManagerModule. Gesture Handler is unable to send an event.", e)
|
|
12
|
+
}
|
|
13
13
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
@interface RNManualRecognizer : UIGestureRecognizer
|
|
4
4
|
|
|
5
|
-
- (id)initWithGestureHandler:(RNGestureHandler*)gestureHandler;
|
|
5
|
+
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
|
6
6
|
|
|
7
7
|
@end
|
|
8
8
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
{
|
|
25
25
|
[super touchesBegan:touches withEvent:event];
|
|
26
26
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
if (_shouldSendBeginEvent) {
|
|
29
29
|
[_gestureHandler handleGesture:self];
|
|
30
30
|
_shouldSendBeginEvent = NO;
|
|
@@ -35,6 +35,14 @@
|
|
|
35
35
|
{
|
|
36
36
|
[super touchesMoved:touches withEvent:event];
|
|
37
37
|
[_gestureHandler.pointerTracker touchesMoved:touches withEvent:event];
|
|
38
|
+
|
|
39
|
+
if ([self shouldFail]) {
|
|
40
|
+
self.state = (self.state == UIGestureRecognizerStatePossible)
|
|
41
|
+
? UIGestureRecognizerStateFailed
|
|
42
|
+
: UIGestureRecognizerStateCancelled;
|
|
43
|
+
|
|
44
|
+
[self reset];
|
|
45
|
+
}
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
|
|
@@ -53,21 +61,29 @@
|
|
|
53
61
|
{
|
|
54
62
|
[_gestureHandler.pointerTracker reset];
|
|
55
63
|
[super reset];
|
|
56
|
-
|
|
64
|
+
|
|
57
65
|
_shouldSendBeginEvent = YES;
|
|
58
66
|
}
|
|
59
67
|
|
|
68
|
+
- (BOOL)shouldFail
|
|
69
|
+
{
|
|
70
|
+
if (_gestureHandler.shouldCancelWhenOutside && ![_gestureHandler containsPointInView]) {
|
|
71
|
+
return YES;
|
|
72
|
+
} else {
|
|
73
|
+
return NO;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
60
77
|
@end
|
|
61
78
|
|
|
62
79
|
@implementation RNManualGestureHandler
|
|
63
80
|
|
|
64
81
|
- (instancetype)initWithTag:(NSNumber *)tag
|
|
65
82
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return self;
|
|
83
|
+
if ((self = [super initWithTag:tag])) {
|
|
84
|
+
_recognizer = [[RNManualRecognizer alloc] initWithGestureHandler:self];
|
|
85
|
+
}
|
|
86
|
+
return self;
|
|
71
87
|
}
|
|
72
88
|
|
|
73
89
|
@end
|
|
@@ -17,9 +17,8 @@ using namespace facebook::react;
|
|
|
17
17
|
@interface RNGestureHandlerButtonComponentView () <RCTRNGestureHandlerButtonViewProtocol>
|
|
18
18
|
@end
|
|
19
19
|
|
|
20
|
-
@implementation RNGestureHandlerButtonComponentView
|
|
21
|
-
|
|
22
|
-
RNGestureHandlerButton *_buttonView;
|
|
20
|
+
@implementation RNGestureHandlerButtonComponentView {
|
|
21
|
+
RNGestureHandlerButton *_buttonView;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
@@ -28,7 +27,7 @@ using namespace facebook::react;
|
|
|
28
27
|
static const auto defaultProps = std::make_shared<const RNGestureHandlerButtonProps>();
|
|
29
28
|
_props = defaultProps;
|
|
30
29
|
_buttonView = [[RNGestureHandlerButton alloc] initWithFrame:self.bounds];
|
|
31
|
-
|
|
30
|
+
|
|
32
31
|
self.contentView = _buttonView;
|
|
33
32
|
}
|
|
34
33
|
|
|
@@ -44,12 +43,12 @@ using namespace facebook::react;
|
|
|
44
43
|
|
|
45
44
|
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
|
46
45
|
{
|
|
47
|
-
|
|
46
|
+
const auto &newProps = *std::static_pointer_cast<const RNGestureHandlerButtonProps>(props);
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
_buttonView.userEnabled = newProps.enabled;
|
|
49
|
+
_buttonView.exclusiveTouch = newProps.exclusive;
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
[super updateProps:props oldProps:oldProps];
|
|
53
52
|
}
|
|
54
53
|
@end
|
|
55
54
|
|