react-native-reanimated 3.0.2 → 3.1.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/Common/cpp/Fabric/FabricUtils.h +1 -1
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +38 -27
- package/Common/cpp/SharedItems/Shareables.h +22 -0
- package/Common/cpp/Tools/PlatformDepMethodsHolder.h +2 -0
- package/Common/cpp/Tools/RuntimeDecorator.cpp +4 -1
- package/Common/cpp/Tools/RuntimeDecorator.h +2 -1
- package/Common/cpp/Tools/SingleInstanceChecker.h +14 -2
- package/RNReanimated.podspec +5 -2
- package/android/CMakeLists.txt +4 -0
- package/android/build.gradle +18 -10
- package/android/src/main/cpp/NativeProxy.cpp +316 -337
- package/android/src/main/cpp/NativeProxy.h +53 -11
- package/android/src/main/java/com/swmansion/reanimated/NativeMethodsHelper.java +7 -12
- package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +11 -8
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +21 -14
- package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +0 -3
- package/ios/Fabric/REAInitializerRCTFabricSurface.mm +1 -0
- package/ios/REANodesManager.h +1 -0
- package/ios/REANodesManager.mm +30 -4
- package/ios/keyboardObserver/REAKeyboardEventObserver.m +51 -130
- package/ios/native/NativeMethods.mm +1 -1
- package/ios/native/NativeProxy.mm +4 -1
- package/ios/native/REAIOSErrorHandler.mm +1 -1
- package/ios/native/REAIOSLogger.mm +1 -1
- package/ios/native/REAIOSScheduler.mm +1 -1
- package/ios/native/REAInitializer.mm +1 -1
- package/ios/native/REAMessageThread.mm +2 -2
- package/lib/commonjs/Animated.js +0 -8
- package/lib/commonjs/Animated.js.map +1 -1
- package/lib/commonjs/ConfigHelper.js +8 -19
- package/lib/commonjs/ConfigHelper.js.map +1 -1
- package/lib/commonjs/createAnimatedComponent.js +20 -158
- package/lib/commonjs/createAnimatedComponent.js.map +1 -1
- package/lib/commonjs/index.js +0 -9
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +0 -7
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/reanimated2/Bezier.js +14 -34
- package/lib/commonjs/reanimated2/Bezier.js.map +1 -1
- package/lib/commonjs/reanimated2/Colors.js +60 -132
- package/lib/commonjs/reanimated2/Colors.js.map +1 -1
- package/lib/commonjs/reanimated2/Easing.js +81 -34
- package/lib/commonjs/reanimated2/Easing.js.map +1 -1
- package/lib/commonjs/reanimated2/NativeMethods.js +8 -20
- package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
- package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +5 -31
- package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
- package/lib/commonjs/reanimated2/NativeReanimated/index.js +0 -7
- package/lib/commonjs/reanimated2/NativeReanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated2/PlatformChecker.js +0 -6
- package/lib/commonjs/reanimated2/PlatformChecker.js.map +1 -1
- package/lib/commonjs/reanimated2/PropAdapters.js +10 -12
- package/lib/commonjs/reanimated2/PropAdapters.js.map +1 -1
- package/lib/commonjs/reanimated2/UpdateProps.js +3 -12
- package/lib/commonjs/reanimated2/UpdateProps.js.map +1 -1
- package/lib/commonjs/reanimated2/ViewDescriptorsSet.js +0 -10
- package/lib/commonjs/reanimated2/ViewDescriptorsSet.js.map +1 -1
- package/lib/commonjs/reanimated2/WorkletEventHandler.js +5 -22
- package/lib/commonjs/reanimated2/WorkletEventHandler.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/decay.js +7 -18
- package/lib/commonjs/reanimated2/animation/decay.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/delay.js +0 -11
- package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/index.js +0 -8
- package/lib/commonjs/reanimated2/animation/index.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/repeat.js +6 -22
- package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/sequence.js +3 -20
- package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/spring.js +11 -23
- package/lib/commonjs/reanimated2/animation/spring.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/styleAnimation.js +3 -35
- package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/timing.js +0 -11
- package/lib/commonjs/reanimated2/animation/timing.js.map +1 -1
- package/lib/commonjs/reanimated2/animation/util.js +11 -41
- package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
- package/lib/commonjs/reanimated2/commonTypes.js +16 -23
- package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/component/FlatList.js +0 -16
- package/lib/commonjs/reanimated2/component/FlatList.js.map +1 -1
- package/lib/commonjs/reanimated2/component/Image.js +0 -4
- package/lib/commonjs/reanimated2/component/Image.js.map +1 -1
- package/lib/commonjs/reanimated2/component/ScrollView.js +0 -4
- package/lib/commonjs/reanimated2/component/ScrollView.js.map +1 -1
- package/lib/commonjs/reanimated2/component/Text.js +0 -4
- package/lib/commonjs/reanimated2/component/Text.js.map +1 -1
- package/lib/commonjs/reanimated2/component/View.js +0 -4
- package/lib/commonjs/reanimated2/component/View.js.map +1 -1
- package/lib/commonjs/reanimated2/core.js +6 -48
- package/lib/commonjs/reanimated2/core.js.map +1 -1
- package/lib/commonjs/reanimated2/errors.js +3 -14
- package/lib/commonjs/reanimated2/errors.js.map +1 -1
- package/lib/commonjs/reanimated2/fabricUtils.js +3 -5
- package/lib/commonjs/reanimated2/fabricUtils.js.map +1 -1
- package/lib/commonjs/reanimated2/fabricUtils.web.js +1 -3
- package/lib/commonjs/reanimated2/fabricUtils.web.js.map +1 -1
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -12
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -17
- package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/Hooks.js +0 -5
- package/lib/commonjs/reanimated2/hook/Hooks.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/index.js +0 -12
- package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js +4 -17
- package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +2 -9
- package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +1 -11
- package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +0 -12
- package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js +2 -9
- package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +8 -23
- package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +13 -71
- package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useDerivedValue.js +4 -13
- package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useFrameCallback.js +0 -5
- package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +0 -7
- package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/useSharedValue.js +2 -7
- package/lib/commonjs/reanimated2/hook/useSharedValue.js.map +1 -1
- package/lib/commonjs/reanimated2/hook/utils.js +8 -39
- package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
- package/lib/commonjs/reanimated2/index.js +0 -26
- package/lib/commonjs/reanimated2/index.js.map +1 -1
- package/lib/commonjs/reanimated2/initializers.js +21 -43
- package/lib/commonjs/reanimated2/initializers.js.map +1 -1
- package/lib/commonjs/reanimated2/interpolateColor.js +6 -43
- package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
- package/lib/commonjs/reanimated2/interpolation.js +14 -29
- package/lib/commonjs/reanimated2/interpolation.js.map +1 -1
- package/lib/commonjs/reanimated2/jestUtils.js +11 -44
- package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +15 -39
- package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +9 -28
- package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js +7 -37
- package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js +5 -18
- package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/global.js +2 -9
- package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
- package/lib/commonjs/reanimated2/js-reanimated/index.js +3 -14
- package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -26
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -49
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -43
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +4 -5
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +0 -4
- package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +4 -23
- package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -74
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -53
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -63
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -26
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -13
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -23
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -43
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -43
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -23
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -83
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js +0 -20
- package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -22
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -29
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -9
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -11
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -8
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -12
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js +0 -12
- package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/index.js +0 -9
- package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
- package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -17
- package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
- package/lib/commonjs/reanimated2/mappers.js +26 -32
- package/lib/commonjs/reanimated2/mappers.js.map +1 -1
- package/lib/commonjs/reanimated2/mock.js +5 -15
- package/lib/commonjs/reanimated2/mock.js.map +1 -1
- package/lib/commonjs/reanimated2/mutables.js +2 -28
- package/lib/commonjs/reanimated2/mutables.js.map +1 -1
- package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js +0 -2
- package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js.map +1 -1
- package/lib/commonjs/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
- package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js +31 -0
- package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +0 -2
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
- package/lib/commonjs/reanimated2/platform-specific/jsVersion.js +14 -0
- package/lib/commonjs/reanimated2/platform-specific/jsVersion.js.map +1 -0
- package/lib/commonjs/reanimated2/pluginUtils.js +0 -1
- package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -1
- package/lib/commonjs/reanimated2/shareables.js +92 -49
- package/lib/commonjs/reanimated2/shareables.js.map +1 -1
- package/lib/commonjs/reanimated2/threads.js +42 -46
- package/lib/commonjs/reanimated2/threads.js.map +1 -1
- package/lib/commonjs/reanimated2/utils.js +0 -5
- package/lib/commonjs/reanimated2/utils.js.map +1 -1
- package/lib/commonjs/reanimated2/valueSetter.js +6 -21
- package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
- package/lib/commonjs/setAndForwardRef.js +3 -3
- package/lib/commonjs/setAndForwardRef.js.map +1 -1
- package/lib/module/Animated.js.map +1 -1
- package/lib/module/ConfigHelper.js +9 -15
- package/lib/module/ConfigHelper.js.map +1 -1
- package/lib/module/createAnimatedComponent.js +20 -139
- package/lib/module/createAnimatedComponent.js.map +1 -1
- package/lib/module/index.js +0 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/reanimated2/Bezier.js +14 -33
- package/lib/module/reanimated2/Bezier.js.map +1 -1
- package/lib/module/reanimated2/Colors.js +59 -109
- package/lib/module/reanimated2/Colors.js.map +1 -1
- package/lib/module/reanimated2/Easing.js +37 -33
- package/lib/module/reanimated2/Easing.js.map +1 -1
- package/lib/module/reanimated2/NativeMethods.js +8 -15
- package/lib/module/reanimated2/NativeMethods.js.map +1 -1
- package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +5 -27
- package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
- package/lib/module/reanimated2/NativeReanimated/index.js +0 -2
- package/lib/module/reanimated2/NativeReanimated/index.js.map +1 -1
- package/lib/module/reanimated2/PlatformChecker.js.map +1 -1
- package/lib/module/reanimated2/PropAdapters.js +12 -10
- package/lib/module/reanimated2/PropAdapters.js.map +1 -1
- package/lib/module/reanimated2/UpdateProps.js +3 -5
- package/lib/module/reanimated2/UpdateProps.js.map +1 -1
- package/lib/module/reanimated2/ViewDescriptorsSet.js +0 -6
- package/lib/module/reanimated2/ViewDescriptorsSet.js.map +1 -1
- package/lib/module/reanimated2/WorkletEventHandler.js +5 -18
- package/lib/module/reanimated2/WorkletEventHandler.js.map +1 -1
- package/lib/module/reanimated2/animation/decay.js +7 -15
- package/lib/module/reanimated2/animation/decay.js.map +1 -1
- package/lib/module/reanimated2/animation/delay.js +0 -9
- package/lib/module/reanimated2/animation/delay.js.map +1 -1
- package/lib/module/reanimated2/animation/index.js.map +1 -1
- package/lib/module/reanimated2/animation/repeat.js +6 -20
- package/lib/module/reanimated2/animation/repeat.js.map +1 -1
- package/lib/module/reanimated2/animation/sequence.js +3 -18
- package/lib/module/reanimated2/animation/sequence.js.map +1 -1
- package/lib/module/reanimated2/animation/spring.js +11 -21
- package/lib/module/reanimated2/animation/spring.js.map +1 -1
- package/lib/module/reanimated2/animation/styleAnimation.js +7 -31
- package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
- package/lib/module/reanimated2/animation/timing.js +0 -8
- package/lib/module/reanimated2/animation/timing.js.map +1 -1
- package/lib/module/reanimated2/animation/util.js +10 -33
- package/lib/module/reanimated2/animation/util.js.map +1 -1
- package/lib/module/reanimated2/commonTypes.js +12 -19
- package/lib/module/reanimated2/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/component/FlatList.js +0 -4
- package/lib/module/reanimated2/component/FlatList.js.map +1 -1
- package/lib/module/reanimated2/component/Image.js.map +1 -1
- package/lib/module/reanimated2/component/ScrollView.js.map +1 -1
- package/lib/module/reanimated2/component/Text.js.map +1 -1
- package/lib/module/reanimated2/component/View.js.map +1 -1
- package/lib/module/reanimated2/core.js +6 -22
- package/lib/module/reanimated2/core.js.map +1 -1
- package/lib/module/reanimated2/errors.js +3 -13
- package/lib/module/reanimated2/errors.js.map +1 -1
- package/lib/module/reanimated2/fabricUtils.js +3 -3
- package/lib/module/reanimated2/fabricUtils.js.map +1 -1
- package/lib/module/reanimated2/fabricUtils.web.js +1 -1
- package/lib/module/reanimated2/fabricUtils.web.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -8
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -15
- package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
- package/lib/module/reanimated2/globals.d.js.map +1 -1
- package/lib/module/reanimated2/hook/Hooks.js +3 -2
- package/lib/module/reanimated2/hook/Hooks.js.map +1 -1
- package/lib/module/reanimated2/hook/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/hook/index.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js +3 -14
- package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +2 -5
- package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedReaction.js +1 -7
- package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedRef.js +0 -6
- package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js +2 -7
- package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedSensor.js +9 -20
- package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
- package/lib/module/reanimated2/hook/useAnimatedStyle.js +13 -59
- package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
- package/lib/module/reanimated2/hook/useDerivedValue.js +4 -8
- package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
- package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
- package/lib/module/reanimated2/hook/useScrollViewOffset.js +0 -1
- package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
- package/lib/module/reanimated2/hook/useSharedValue.js +2 -3
- package/lib/module/reanimated2/hook/useSharedValue.js.map +1 -1
- package/lib/module/reanimated2/hook/utils.js +8 -21
- package/lib/module/reanimated2/hook/utils.js.map +1 -1
- package/lib/module/reanimated2/index.js.map +1 -1
- package/lib/module/reanimated2/initializers.js +23 -37
- package/lib/module/reanimated2/initializers.js.map +1 -1
- package/lib/module/reanimated2/interpolateColor.js +5 -34
- package/lib/module/reanimated2/interpolateColor.js.map +1 -1
- package/lib/module/reanimated2/interpolation.js +13 -28
- package/lib/module/reanimated2/interpolation.js.map +1 -1
- package/lib/module/reanimated2/jestUtils.js +11 -35
- package/lib/module/reanimated2/jestUtils.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/JSReanimated.js +15 -35
- package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/Mapper.js +9 -23
- package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/MapperRegistry.js +7 -35
- package/lib/module/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/MutableValue.js +5 -16
- package/lib/module/reanimated2/js-reanimated/MutableValue.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/global.js +2 -6
- package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
- package/lib/module/reanimated2/js-reanimated/index.js +3 -9
- package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -23
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -45
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -39
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +3 -3
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/animationsManager.js +4 -19
- package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -52
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -32
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -38
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -16
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -8
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -14
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -26
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -26
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -14
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -50
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -17
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -23
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -5
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -6
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -5
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -8
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -13
- package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
- package/lib/module/reanimated2/mappers.js +26 -25
- package/lib/module/reanimated2/mappers.js.map +1 -1
- package/lib/module/reanimated2/mock.js +5 -15
- package/lib/module/reanimated2/mock.js.map +1 -1
- package/lib/module/reanimated2/mutables.js +2 -19
- package/lib/module/reanimated2/mutables.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/RNRenderer.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/checkCppVersion.js +24 -0
- package/lib/module/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
- package/lib/module/reanimated2/platform-specific/checkVersion.web.js +0 -1
- package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
- package/lib/module/reanimated2/platform-specific/jsVersion.js +7 -0
- package/lib/module/reanimated2/platform-specific/jsVersion.js.map +1 -0
- package/lib/module/reanimated2/pluginUtils.js.map +1 -1
- package/lib/module/reanimated2/shareables.js +96 -44
- package/lib/module/reanimated2/shareables.js.map +1 -1
- package/lib/module/reanimated2/threads.js +39 -33
- package/lib/module/reanimated2/threads.js.map +1 -1
- package/lib/module/reanimated2/utils.js +0 -3
- package/lib/module/reanimated2/utils.js.map +1 -1
- package/lib/module/reanimated2/valueSetter.js +6 -19
- package/lib/module/reanimated2/valueSetter.js.map +1 -1
- package/lib/module/setAndForwardRef.js +3 -2
- package/lib/module/setAndForwardRef.js.map +1 -1
- package/package.json +46 -40
- package/plugin/.eslintrc.js +7 -0
- package/plugin/README.md +241 -0
- package/plugin/build/plugin.js +714 -0
- package/plugin/build/plugin.js.map +7 -0
- package/plugin/index.js +1 -807
- package/plugin/package.json +23 -0
- package/plugin/src/buildWorkletString.ts +213 -0
- package/plugin/src/commonObjects.ts +60 -0
- package/plugin/src/injectVersion.ts +37 -0
- package/plugin/src/makeWorklet.ts +375 -0
- package/plugin/src/plugin.ts +49 -0
- package/plugin/src/processForCalleesWorklets.ts +106 -0
- package/plugin/src/processIfGestureHandlerEventCallbackFunctionNode.ts +156 -0
- package/plugin/src/processIfWorkletFunction.ts +55 -0
- package/plugin/src/processIfWorkletNode.ts +44 -0
- package/plugin/src/processInlineStylesWarning.ts +129 -0
- package/plugin/src/processWorkletObjectMethod.ts +31 -0
- package/plugin/src/types.ts +15 -0
- package/plugin/src/utils.ts +6 -0
- package/plugin/tsconfig.json +15 -0
- package/plugin/yarn.lock +2193 -0
- package/react-native-reanimated.d.ts +1 -0
- package/scripts/reanimated_utils.rb +2 -2
- package/src/createAnimatedComponent.tsx +2 -3
- package/src/reanimated2/Easing.ts +19 -0
- package/src/reanimated2/NativeMethods.ts +9 -4
- package/src/reanimated2/NativeReanimated/NativeReanimated.ts +2 -2
- package/src/reanimated2/UpdateProps.ts +2 -2
- package/src/reanimated2/animation/decay.ts +7 -1
- package/src/reanimated2/animation/styleAnimation.ts +5 -1
- package/src/reanimated2/core.ts +4 -4
- package/src/reanimated2/errors.ts +1 -0
- package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +12 -4
- package/src/reanimated2/globals.d.ts +71 -112
- package/src/reanimated2/hook/commonTypes.ts +1 -1
- package/src/reanimated2/hook/useAnimatedReaction.ts +2 -2
- package/src/reanimated2/hook/useAnimatedSensor.ts +2 -2
- package/src/reanimated2/initializers.ts +11 -8
- package/src/reanimated2/jestUtils.ts +0 -1
- package/src/reanimated2/js-reanimated/JSReanimated.ts +5 -1
- package/src/reanimated2/js-reanimated/index.ts +1 -1
- package/src/reanimated2/mappers.ts +26 -4
- package/src/reanimated2/mock.ts +1 -0
- package/src/reanimated2/platform-specific/checkCppVersion.ts +29 -0
- package/src/reanimated2/platform-specific/jsVersion.ts +6 -0
- package/src/reanimated2/shareables.ts +107 -8
- package/src/reanimated2/threads.ts +36 -17
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +0 -42
- package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +0 -1
- package/lib/module/reanimated2/platform-specific/checkVersion.js +0 -35
- package/lib/module/reanimated2/platform-specific/checkVersion.js.map +0 -1
- package/src/reanimated2/platform-specific/checkVersion.ts +0 -39
|
@@ -847,6 +847,7 @@ declare module 'react-native-reanimated' {
|
|
|
847
847
|
x2: number,
|
|
848
848
|
y2: number
|
|
849
849
|
): Animated.EasingFunction;
|
|
850
|
+
steps(n?: number, roundToNextStep?: boolean): Animated.EasingFunction;
|
|
850
851
|
in(easing: Animated.EasingFunction): Animated.EasingFunction;
|
|
851
852
|
out(easing: Animated.EasingFunction): Animated.EasingFunction;
|
|
852
853
|
inOut(easing: Animated.EasingFunction): Animated.EasingFunction;
|
|
@@ -85,7 +85,7 @@ def assert_latest_react_native_with_new_architecture(config, reanimated_package_
|
|
|
85
85
|
reanimated_major_version = reanimated_version.split('.')[0].to_i
|
|
86
86
|
react_native_minor_version = config[:react_native_minor_version]
|
|
87
87
|
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
|
|
88
|
-
if fabric_enabled && reanimated_major_version == 3 && react_native_minor_version <
|
|
89
|
-
raise "[react-native-reanimated] Reanimated " + reanimated_version + " supports the New Architecture only on the latest minor release of React Native. Please upgrade to React Native 0.
|
|
88
|
+
if fabric_enabled && reanimated_major_version == 3 && react_native_minor_version < 72
|
|
89
|
+
raise "[react-native-reanimated] Reanimated " + reanimated_version + " supports the New Architecture only on the latest minor release of React Native. Please upgrade to React Native 0.72.0+ or downgrade to an older version of Reanimated v3"
|
|
90
90
|
end
|
|
91
91
|
end
|
|
@@ -246,8 +246,7 @@ export default function createAnimatedComponent(
|
|
|
246
246
|
invariant(
|
|
247
247
|
typeof Component !== 'function' ||
|
|
248
248
|
(Component.prototype && Component.prototype.isReactComponent),
|
|
249
|
-
'
|
|
250
|
-
'use a class component instead.'
|
|
249
|
+
`Looks like you're passing a function component \`${Component.name}\` to \`createAnimatedComponent\` function which supports only class components. Please wrap your function component with \`React.forwardRef()\` or use a class component instead.`
|
|
251
250
|
);
|
|
252
251
|
|
|
253
252
|
class AnimatedComponent extends React.Component<
|
|
@@ -337,7 +336,7 @@ export default function createAnimatedComponent(
|
|
|
337
336
|
const viewTag = this._viewTag;
|
|
338
337
|
runOnUI(() => {
|
|
339
338
|
'worklet';
|
|
340
|
-
_removeShadowNodeFromRegistry(viewTag);
|
|
339
|
+
_removeShadowNodeFromRegistry!(viewTag);
|
|
341
340
|
})();
|
|
342
341
|
}
|
|
343
342
|
}
|
|
@@ -264,6 +264,24 @@ function inOut(easing: EasingFn): EasingFn {
|
|
|
264
264
|
};
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
+
/**
|
|
268
|
+
* The `steps` easing function jumps between discrete values at regular intervals,
|
|
269
|
+
* creating a stepped animation effect. The `n` parameter determines the number of
|
|
270
|
+
* steps in the animation, and the `roundToNextStep` parameter determines whether the animation
|
|
271
|
+
* should start at the beginning or end of each step.
|
|
272
|
+
*/
|
|
273
|
+
function steps(n = 10, roundToNextStep = true): EasingFn {
|
|
274
|
+
'worklet';
|
|
275
|
+
return (t) => {
|
|
276
|
+
'worklet';
|
|
277
|
+
const value = Math.min(Math.max(t, 0), 1) * n;
|
|
278
|
+
if (roundToNextStep) {
|
|
279
|
+
return Math.ceil(value) / n;
|
|
280
|
+
}
|
|
281
|
+
return Math.floor(value) / n;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
|
|
267
285
|
const EasingObject = {
|
|
268
286
|
linear,
|
|
269
287
|
ease,
|
|
@@ -278,6 +296,7 @@ const EasingObject = {
|
|
|
278
296
|
bounce,
|
|
279
297
|
bezier,
|
|
280
298
|
bezierFn,
|
|
299
|
+
steps,
|
|
281
300
|
in: in_,
|
|
282
301
|
out,
|
|
283
302
|
inOut,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* global _WORKLET _measure _scrollTo _dispatchCommand _setGestureState */
|
|
2
2
|
import { Component } from 'react';
|
|
3
3
|
import { findNodeHandle } from 'react-native';
|
|
4
|
-
import { MeasuredDimensions } from './commonTypes';
|
|
4
|
+
import { MeasuredDimensions, ShadowNodeWrapper } from './commonTypes';
|
|
5
5
|
import { RefObjectFunction } from './hook/commonTypes';
|
|
6
6
|
import { isChromeDebugger, isWeb, shouldBeUseWeb } from './PlatformChecker';
|
|
7
7
|
|
|
@@ -89,8 +89,11 @@ export function dispatchCommand(
|
|
|
89
89
|
if (!_WORKLET || !isNative) {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
|
|
93
|
+
// dispatchCommand works only on Fabric where animatedRef returns
|
|
94
|
+
// an object (ShadowNodeWrapper) and not a number
|
|
95
|
+
const shadowNodeWrapper = animatedRef() as ShadowNodeWrapper;
|
|
96
|
+
_dispatchCommand!(shadowNodeWrapper, commandName, args);
|
|
94
97
|
}
|
|
95
98
|
|
|
96
99
|
export let scrollTo: (
|
|
@@ -133,7 +136,9 @@ if (isWeb()) {
|
|
|
133
136
|
if (!_WORKLET) {
|
|
134
137
|
return;
|
|
135
138
|
}
|
|
136
|
-
|
|
139
|
+
|
|
140
|
+
// Calling animatedRef on Paper returns a number (nativeTag)
|
|
141
|
+
const viewTag = animatedRef() as number;
|
|
137
142
|
_scrollTo(viewTag, x, y, animated);
|
|
138
143
|
};
|
|
139
144
|
} else {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
LayoutAnimationFunction,
|
|
10
10
|
LayoutAnimationType,
|
|
11
11
|
} from '../layoutReanimation';
|
|
12
|
-
import {
|
|
12
|
+
import { checkCppVersion } from '../platform-specific/checkCppVersion';
|
|
13
13
|
|
|
14
14
|
export class NativeReanimated {
|
|
15
15
|
native: boolean;
|
|
@@ -32,7 +32,7 @@ export class NativeReanimated {
|
|
|
32
32
|
);
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
checkCppVersion();
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -58,7 +58,7 @@ if (shouldBeUseWeb()) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
viewDescriptors.value.forEach((viewDescriptor) => {
|
|
61
|
-
_updatePropsFabric(viewDescriptor.shadowNodeWrapper, updates);
|
|
61
|
+
_updatePropsFabric!(viewDescriptor.shadowNodeWrapper, updates);
|
|
62
62
|
});
|
|
63
63
|
};
|
|
64
64
|
} else {
|
|
@@ -75,7 +75,7 @@ if (shouldBeUseWeb()) {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
viewDescriptors.value.forEach((viewDescriptor) => {
|
|
78
|
-
_updatePropsPaper(
|
|
78
|
+
_updatePropsPaper!(
|
|
79
79
|
viewDescriptor.tag,
|
|
80
80
|
viewDescriptor.name || 'RCTView',
|
|
81
81
|
updates
|
|
@@ -48,7 +48,7 @@ export function withDecay(
|
|
|
48
48
|
'worklet';
|
|
49
49
|
const config: DefaultDecayConfig = {
|
|
50
50
|
deceleration: 0.998,
|
|
51
|
-
velocityFactor:
|
|
51
|
+
velocityFactor: 1,
|
|
52
52
|
velocity: 0,
|
|
53
53
|
rubberBandFactor: 0.6,
|
|
54
54
|
};
|
|
@@ -62,6 +62,12 @@ export function withDecay(
|
|
|
62
62
|
const VELOCITY_EPS = Platform.OS !== 'web' ? 1 : 1 / 20;
|
|
63
63
|
const SLOPE_FACTOR = 0.1;
|
|
64
64
|
|
|
65
|
+
// @piaskowyk: Velocity is expressed in pixels per second
|
|
66
|
+
// but pixels on Web are handled differently than on native
|
|
67
|
+
if (Platform.OS === 'web') {
|
|
68
|
+
config.velocity *= 1000;
|
|
69
|
+
}
|
|
70
|
+
|
|
65
71
|
let decay: (animation: InnerDecayAnimation, now: number) => boolean;
|
|
66
72
|
|
|
67
73
|
if (config.rubberBandEffect) {
|
|
@@ -24,7 +24,11 @@ export function resolvePath<T>(
|
|
|
24
24
|
return keys.reduce<NestedObjectValues<T> | undefined>((acc, current) => {
|
|
25
25
|
if (Array.isArray(acc) && typeof current === 'number') {
|
|
26
26
|
return acc[current];
|
|
27
|
-
} else if (
|
|
27
|
+
} else if (
|
|
28
|
+
acc !== null &&
|
|
29
|
+
typeof acc === 'object' &&
|
|
30
|
+
(current as number | string) in acc
|
|
31
|
+
) {
|
|
28
32
|
return (acc as { [key: string]: NestedObjectValues<T> })[
|
|
29
33
|
current as number | string
|
|
30
34
|
];
|
package/src/reanimated2/core.ts
CHANGED
|
@@ -117,7 +117,7 @@ export function registerEventHandler<T>(
|
|
|
117
117
|
eventHash: string,
|
|
118
118
|
eventHandler: (event: T) => void
|
|
119
119
|
): string {
|
|
120
|
-
function
|
|
120
|
+
function handleAndFlushAnimationFrame(eventTimestamp: number, event: T) {
|
|
121
121
|
'worklet';
|
|
122
122
|
global.__frameTimestamp = eventTimestamp;
|
|
123
123
|
eventHandler(event);
|
|
@@ -126,7 +126,7 @@ export function registerEventHandler<T>(
|
|
|
126
126
|
}
|
|
127
127
|
return NativeReanimatedModule.registerEventHandler(
|
|
128
128
|
eventHash,
|
|
129
|
-
makeShareableCloneRecursive(
|
|
129
|
+
makeShareableCloneRecursive(handleAndFlushAnimationFrame)
|
|
130
130
|
);
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -140,7 +140,7 @@ export function subscribeForKeyboardEvents(
|
|
|
140
140
|
): number {
|
|
141
141
|
// TODO: this should really go with the same code path as other events, that is
|
|
142
142
|
// via registerEventHandler. For now we are copying the code from there.
|
|
143
|
-
function
|
|
143
|
+
function handleAndFlushAnimationFrame(state: number, height: number) {
|
|
144
144
|
'worklet';
|
|
145
145
|
const now = performance.now();
|
|
146
146
|
global.__frameTimestamp = now;
|
|
@@ -149,7 +149,7 @@ export function subscribeForKeyboardEvents(
|
|
|
149
149
|
global.__frameTimestamp = undefined;
|
|
150
150
|
}
|
|
151
151
|
return NativeReanimatedModule.subscribeForKeyboardEvents(
|
|
152
|
-
makeShareableCloneRecursive(
|
|
152
|
+
makeShareableCloneRecursive(handleAndFlushAnimationFrame),
|
|
153
153
|
options.isStatusBarTranslucentAndroid ?? false
|
|
154
154
|
);
|
|
155
155
|
}
|
|
@@ -53,5 +53,6 @@ export function reportFatalErrorOnJS({
|
|
|
53
53
|
error.name = 'ReanimatedError';
|
|
54
54
|
// @ts-ignore React Native's ErrorUtils implementation extends the Error type with jsEngine field
|
|
55
55
|
error.jsEngine = 'reanimated';
|
|
56
|
+
// @ts-ignore the reportFatalError method is an internal method of ErrorUtils not exposed in the type definitions
|
|
56
57
|
global.ErrorUtils.reportFatalError(error);
|
|
57
58
|
}
|
|
@@ -15,7 +15,8 @@ export interface FrameCallbackRegistryUI {
|
|
|
15
15
|
frameCallbackRegistry: Map<number, CallbackDetails>;
|
|
16
16
|
activeFrameCallbacks: Set<number>;
|
|
17
17
|
previousFrameTimestamp: number | null;
|
|
18
|
-
runCallbacks: () => void;
|
|
18
|
+
runCallbacks: (callId: number) => void;
|
|
19
|
+
nextCallId: number;
|
|
19
20
|
registerFrameCallback: (
|
|
20
21
|
callback: (frameInfo: FrameInfo) => void,
|
|
21
22
|
callbackId: number
|
|
@@ -31,9 +32,13 @@ export const prepareUIRegistry = runOnUIImmediately(() => {
|
|
|
31
32
|
frameCallbackRegistry: new Map<number, CallbackDetails>(),
|
|
32
33
|
activeFrameCallbacks: new Set<number>(),
|
|
33
34
|
previousFrameTimestamp: null,
|
|
35
|
+
nextCallId: 0,
|
|
34
36
|
|
|
35
|
-
runCallbacks() {
|
|
37
|
+
runCallbacks(callId) {
|
|
36
38
|
const loop = (timestamp: number) => {
|
|
39
|
+
if (callId !== this.nextCallId) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
37
42
|
if (this.previousFrameTimestamp === null) {
|
|
38
43
|
this.previousFrameTimestamp = timestamp;
|
|
39
44
|
}
|
|
@@ -75,7 +80,7 @@ export const prepareUIRegistry = runOnUIImmediately(() => {
|
|
|
75
80
|
// runCallback() should only be called after registering a callback,
|
|
76
81
|
// so if there is only one active callback, then it means that there were
|
|
77
82
|
// zero previously and the loop isn't running yet.
|
|
78
|
-
if (this.activeFrameCallbacks.size === 1) {
|
|
83
|
+
if (this.activeFrameCallbacks.size === 1 && callId === this.nextCallId) {
|
|
79
84
|
requestAnimationFrame(loop);
|
|
80
85
|
}
|
|
81
86
|
},
|
|
@@ -101,12 +106,15 @@ export const prepareUIRegistry = runOnUIImmediately(() => {
|
|
|
101
106
|
}
|
|
102
107
|
if (state) {
|
|
103
108
|
this.activeFrameCallbacks.add(callbackId);
|
|
104
|
-
this.runCallbacks();
|
|
109
|
+
this.runCallbacks(this.nextCallId);
|
|
105
110
|
} else {
|
|
106
111
|
const callback = this.frameCallbackRegistry.get(callbackId)!;
|
|
107
112
|
callback.startTime = null;
|
|
108
113
|
|
|
109
114
|
this.activeFrameCallbacks.delete(callbackId);
|
|
115
|
+
if (this.activeFrameCallbacks.size === 0) {
|
|
116
|
+
this.nextCallId += 1;
|
|
117
|
+
}
|
|
110
118
|
}
|
|
111
119
|
},
|
|
112
120
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable no-var */
|
|
1
2
|
import type {
|
|
2
3
|
AnimatedStyle,
|
|
3
4
|
StyleProps,
|
|
@@ -5,139 +6,97 @@ import type {
|
|
|
5
6
|
MapperRegistry,
|
|
6
7
|
ShareableRef,
|
|
7
8
|
ShareableSyncDataHolderRef,
|
|
9
|
+
ShadowNodeWrapper,
|
|
8
10
|
} from './commonTypes';
|
|
9
11
|
import type { FrameCallbackRegistryUI } from './frameCallback/FrameCallbackRegistryUI';
|
|
10
|
-
import type { ShadowNodeWrapper } from './hook/commonTypes';
|
|
11
|
-
import { LayoutAnimationStartFunction } from './layoutReanimation';
|
|
12
12
|
import type { NativeReanimated } from './NativeReanimated/NativeReanimated';
|
|
13
|
+
import type {
|
|
14
|
+
LayoutAnimationFunction,
|
|
15
|
+
LayoutAnimationType,
|
|
16
|
+
LayoutAnimationsValues,
|
|
17
|
+
} from './layoutReanimation/animationBuilder';
|
|
13
18
|
|
|
14
19
|
declare global {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
var _WORKLET: boolean | undefined;
|
|
21
|
+
var _IS_FABRIC: boolean | undefined;
|
|
22
|
+
var _REANIMATED_VERSION_CPP: string | undefined;
|
|
23
|
+
var _REANIMATED_VERSION_BABEL_PLUGIN: string | undefined;
|
|
24
|
+
var __reanimatedModuleProxy: NativeReanimated | undefined;
|
|
25
|
+
var evalWithSourceMap:
|
|
26
|
+
| ((
|
|
27
|
+
js: string,
|
|
28
|
+
sourceURL: string,
|
|
29
|
+
sourceMap: string
|
|
30
|
+
// eslint-ignore-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
) => any)
|
|
32
|
+
| undefined;
|
|
33
|
+
// eslint-ignore-next-line @typescript-eslint/no-explicit-any
|
|
34
|
+
var evalWithSourceUrl: ((js: string, sourceURL: string) => any) | undefined;
|
|
35
|
+
var _log: (s: string) => void;
|
|
36
|
+
var _notifyAboutProgress: (
|
|
28
37
|
tag: number,
|
|
29
38
|
value: number,
|
|
30
39
|
isSharedTransition: boolean
|
|
31
40
|
) => void;
|
|
32
|
-
|
|
41
|
+
var _notifyAboutEnd: (
|
|
33
42
|
tag: number,
|
|
34
43
|
finished: boolean,
|
|
35
44
|
removeView: boolean
|
|
36
45
|
) => void;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
var _setGestureState: (handlerTag: number, newState: number) => void;
|
|
47
|
+
// eslint-ignore-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
var _makeShareableClone: (value: any) => any;
|
|
49
|
+
var _updateDataSynchronously: (
|
|
40
50
|
dataHolder: ShareableSyncDataHolderRef,
|
|
41
51
|
data: ShareableRef
|
|
42
52
|
) => void;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
tag: number,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
var _scheduleOnJS: (fun: ShareableRef, args?: ShareableRef) => void;
|
|
54
|
+
var _updatePropsPaper:
|
|
55
|
+
| ((tag: number, name: string, updates: StyleProps | AnimatedStyle) => void)
|
|
56
|
+
| undefined;
|
|
57
|
+
var _updatePropsFabric:
|
|
58
|
+
| ((
|
|
59
|
+
shadowNodeWrapper: ShadowNodeWrapper,
|
|
60
|
+
props: StyleProps | AnimatedStyle
|
|
61
|
+
) => void)
|
|
62
|
+
| undefined;
|
|
63
|
+
var _removeShadowNodeFromRegistry: ((viewTag: number) => void) | undefined;
|
|
64
|
+
var _measure: (viewTag: number | ShadowNodeWrapper) => MeasuredDimensions;
|
|
65
|
+
var _scrollTo: (
|
|
56
66
|
viewTag: number,
|
|
57
67
|
x: number,
|
|
58
68
|
y: number,
|
|
59
69
|
animated: boolean
|
|
60
70
|
) => void;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
args: Array<unknown>
|
|
65
|
-
) => void;
|
|
66
|
-
const performance: { now: () => number };
|
|
67
|
-
const ReanimatedDataMock: {
|
|
68
|
-
now: () => number;
|
|
69
|
-
};
|
|
70
|
-
const ErrorUtils: {
|
|
71
|
-
reportFatalError: (error: Error) => void;
|
|
72
|
-
};
|
|
73
|
-
const _frameCallbackRegistry: FrameCallbackRegistryUI;
|
|
74
|
-
const requestAnimationFrame: (callback: (time: number) => void) => number;
|
|
75
|
-
const setImmediate: (callback: (time: number) => void) => number;
|
|
76
|
-
const console: Console;
|
|
77
|
-
|
|
78
|
-
namespace NodeJS {
|
|
79
|
-
interface Global {
|
|
80
|
-
_WORKLET: boolean;
|
|
81
|
-
_IS_FABRIC: boolean;
|
|
82
|
-
_REANIMATED_VERSION_CPP: string;
|
|
83
|
-
__reanimatedModuleProxy: NativeReanimated;
|
|
84
|
-
__frameTimestamp?: number;
|
|
85
|
-
evalWithSourceMap: (
|
|
86
|
-
js: string,
|
|
87
|
-
sourceURL: string,
|
|
88
|
-
sourceMap: string
|
|
89
|
-
) => any;
|
|
90
|
-
evalWithSourceUrl: (js: string, sourceURL: string) => any;
|
|
91
|
-
_log: (s: string) => void;
|
|
92
|
-
_getCurrentTime: () => number;
|
|
93
|
-
_setGestureState: (handlerTag: number, newState: number) => void;
|
|
94
|
-
_makeShareableClone: (value: any) => any;
|
|
95
|
-
_updateDataSynchronously: (
|
|
96
|
-
ShareableSyncDataHolderRef,
|
|
97
|
-
ShareableRef
|
|
98
|
-
) => void;
|
|
99
|
-
_scheduleOnJS: (fun: ShareableRef, args?: ShareableRef) => void;
|
|
100
|
-
_updatePropsPaper: (
|
|
101
|
-
tag: number,
|
|
102
|
-
name: string,
|
|
103
|
-
updates: StyleProps | AnimatedStyle
|
|
104
|
-
) => void;
|
|
105
|
-
_updatePropsFabric: (
|
|
106
|
-
shadowNodeWrapper: ShadowNodeWrapper,
|
|
107
|
-
props: StyleProps | AnimatedStyle
|
|
108
|
-
) => void;
|
|
109
|
-
_removeShadowNodeFromRegistry: (viewTag: number) => void;
|
|
110
|
-
_measure: (viewTag: number) => MeasuredDimensions;
|
|
111
|
-
_scrollTo: (
|
|
112
|
-
viewTag: number,
|
|
113
|
-
x: number,
|
|
114
|
-
y: number,
|
|
115
|
-
animated: boolean
|
|
116
|
-
) => void;
|
|
117
|
-
_dispatchCommand: (
|
|
118
|
-
shadowNodeWrapper: ShadowNodeWrapper,
|
|
71
|
+
var _dispatchCommand:
|
|
72
|
+
| ((
|
|
73
|
+
nodeRef: ShadowNodeWrapper,
|
|
119
74
|
commandName: string,
|
|
120
75
|
args: Array<unknown>
|
|
121
|
-
) => void
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
76
|
+
) => void)
|
|
77
|
+
| undefined;
|
|
78
|
+
var performance: { now: () => number };
|
|
79
|
+
var __ErrorUtils: {
|
|
80
|
+
reportFatalError: (error: Error) => void;
|
|
81
|
+
};
|
|
82
|
+
var _frameCallbackRegistry: FrameCallbackRegistryUI;
|
|
83
|
+
var requestAnimationFrame: (callback: (time: number) => void) => number;
|
|
84
|
+
var console: Console;
|
|
85
|
+
var __frameTimestamp: number | undefined;
|
|
86
|
+
var __flushAnimationFrame: (timestamp: number) => void;
|
|
87
|
+
// eslint-ignore-next-line @typescript-eslint/no-explicit-any
|
|
88
|
+
var __workletsCache: Map<string, any>;
|
|
89
|
+
// eslint-ignore-next-line @typescript-eslint/no-explicit-any
|
|
90
|
+
var __handleCache: WeakMap<object, any>;
|
|
91
|
+
var __callMicrotasks: () => void;
|
|
92
|
+
var __mapperRegistry: MapperRegistry;
|
|
93
|
+
var _maybeFlushUIUpdatesQueue: () => void;
|
|
94
|
+
var LayoutAnimationsManager: {
|
|
95
|
+
start(
|
|
96
|
+
tag: number,
|
|
97
|
+
type: LayoutAnimationType,
|
|
98
|
+
yogaValues: LayoutAnimationsValues,
|
|
99
|
+
config: LayoutAnimationFunction
|
|
100
|
+
);
|
|
101
|
+
};
|
|
143
102
|
}
|
|
@@ -32,8 +32,8 @@ export function useAnimatedReaction<T>(
|
|
|
32
32
|
|
|
33
33
|
if (dependencies === undefined) {
|
|
34
34
|
dependencies = [
|
|
35
|
-
Object.values(prepare._closure ?? {}),
|
|
36
|
-
Object.values(react._closure ?? {}),
|
|
35
|
+
...Object.values(prepare._closure ?? {}),
|
|
36
|
+
...Object.values(react._closure ?? {}),
|
|
37
37
|
prepare.__workletHash,
|
|
38
38
|
react.__workletHash,
|
|
39
39
|
];
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
ValueRotation,
|
|
8
8
|
IOSReferenceFrame,
|
|
9
9
|
} from '../commonTypes';
|
|
10
|
-
import {
|
|
10
|
+
import { callMicrotasks } from '../threads';
|
|
11
11
|
|
|
12
12
|
export type SensorConfig = {
|
|
13
13
|
interval: number | 'auto';
|
|
@@ -145,7 +145,7 @@ export function useAnimatedSensor(
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
sensorData.value = data;
|
|
148
|
-
|
|
148
|
+
callMicrotasks();
|
|
149
149
|
}
|
|
150
150
|
);
|
|
151
151
|
|
|
@@ -3,8 +3,8 @@ import NativeReanimatedModule from './NativeReanimated';
|
|
|
3
3
|
import { isJest } from './PlatformChecker';
|
|
4
4
|
import {
|
|
5
5
|
runOnJS,
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
setupMicrotasks,
|
|
7
|
+
callMicrotasks,
|
|
8
8
|
runOnUIImmediately,
|
|
9
9
|
} from './threads';
|
|
10
10
|
|
|
@@ -17,8 +17,8 @@ function callGuardDEV<T extends Array<any>, U>(
|
|
|
17
17
|
try {
|
|
18
18
|
fn(...args);
|
|
19
19
|
} catch (e) {
|
|
20
|
-
if (global.
|
|
21
|
-
global.
|
|
20
|
+
if (global.__ErrorUtils) {
|
|
21
|
+
global.__ErrorUtils.reportFatalError(e as Error);
|
|
22
22
|
} else {
|
|
23
23
|
throw e;
|
|
24
24
|
}
|
|
@@ -106,7 +106,7 @@ function setupRequestAnimationFrame() {
|
|
|
106
106
|
const currentCallbacks = animationFrameCallbacks;
|
|
107
107
|
animationFrameCallbacks = [];
|
|
108
108
|
currentCallbacks.forEach((f) => f(frameTimestamp));
|
|
109
|
-
|
|
109
|
+
callMicrotasks();
|
|
110
110
|
};
|
|
111
111
|
|
|
112
112
|
global.requestAnimationFrame = (
|
|
@@ -153,11 +153,13 @@ export function initializeUIRuntime() {
|
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
// We really have to create a copy of console here. Function runOnJS we use on elements inside
|
|
157
|
+
// this object makes it not configurable
|
|
158
|
+
const capturableConsole = { ...console };
|
|
157
159
|
runOnUIImmediately(() => {
|
|
158
160
|
'worklet';
|
|
159
161
|
// setup error handler
|
|
160
|
-
global.
|
|
162
|
+
global.__ErrorUtils = {
|
|
161
163
|
reportFatalError: (error: Error) => {
|
|
162
164
|
runOnJS(reportFatalErrorOnJS)({
|
|
163
165
|
message: error.message,
|
|
@@ -169,6 +171,7 @@ export function initializeUIRuntime() {
|
|
|
169
171
|
// setup console
|
|
170
172
|
// @ts-ignore TypeScript doesn't like that there are missing methods in console object, but we don't provide all the methods for the UI runtime console version
|
|
171
173
|
global.console = {
|
|
174
|
+
assert: runOnJS(capturableConsole.assert),
|
|
172
175
|
debug: runOnJS(capturableConsole.debug),
|
|
173
176
|
log: runOnJS(capturableConsole.log),
|
|
174
177
|
warn: runOnJS(capturableConsole.warn),
|
|
@@ -177,7 +180,7 @@ export function initializeUIRuntime() {
|
|
|
177
180
|
};
|
|
178
181
|
|
|
179
182
|
if (!IS_JEST) {
|
|
180
|
-
|
|
183
|
+
setupMicrotasks();
|
|
181
184
|
setupRequestAnimationFrame();
|
|
182
185
|
}
|
|
183
186
|
})();
|
|
@@ -48,10 +48,14 @@ export default class JSReanimated extends NativeReanimated {
|
|
|
48
48
|
|
|
49
49
|
enableLayoutAnimations() {
|
|
50
50
|
console.warn(
|
|
51
|
-
'[Reanimated]
|
|
51
|
+
'[Reanimated] Layout Animations are not supported on web yet.'
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
configureLayoutAnimation() {
|
|
56
|
+
// no-op
|
|
57
|
+
}
|
|
58
|
+
|
|
55
59
|
registerSensor(
|
|
56
60
|
sensorType: SensorType,
|
|
57
61
|
interval: number,
|
|
@@ -4,7 +4,7 @@ import { AnimatedStyle, StyleProps } from '../commonTypes';
|
|
|
4
4
|
const reanimatedJS = new JSReanimated();
|
|
5
5
|
|
|
6
6
|
global._makeShareableClone = (c) => c;
|
|
7
|
-
global._scheduleOnJS =
|
|
7
|
+
global._scheduleOnJS = queueMicrotask;
|
|
8
8
|
|
|
9
9
|
interface JSReanimatedComponent {
|
|
10
10
|
previousStyle: StyleProps;
|