react-native-reanimated 2.8.0 → 3.0.0-rc.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.cpp +128 -0
- package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +197 -0
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +311 -6
- package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -1
- package/Common/cpp/Registries/NewestShadowNodesRegistry.cpp +68 -0
- package/Common/cpp/SharedItems/ShareableValue.cpp +18 -0
- package/Common/cpp/Tools/Mapper.cpp +23 -4
- package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -32
- package/Common/cpp/Tools/Scheduler.cpp +4 -0
- package/Common/cpp/headers/Fabric/FabricUtils.h +78 -0
- package/Common/cpp/headers/Fabric/ReanimatedUIManagerBinding.h +46 -0
- package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +72 -2
- package/Common/cpp/headers/Registries/EventHandlerRegistry.h +8 -0
- package/Common/cpp/headers/Registries/NewestShadowNodesRegistry.h +41 -0
- package/Common/cpp/headers/SharedItems/SharedParent.h +3 -0
- package/Common/cpp/headers/SharedItems/ValueWrapper.h +25 -0
- package/Common/cpp/headers/SpecTools/ErrorHandler.h +5 -0
- package/Common/cpp/headers/Tools/Mapper.h +1 -1
- package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +43 -8
- package/Common/cpp/headers/Tools/RuntimeDecorator.h +8 -3
- package/README.md +4 -0
- package/RNReanimated.podspec +22 -11
- package/android/CMakeLists.txt +139 -27
- package/android/build.gradle +86 -209
- package/android/local.properties +1 -0
- package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +310 -0
- package/android/src/fabric/java/com/swmansion/reanimated/ReaCompatibility.java +25 -0
- package/android/src/main/cpp/NativeProxy.cpp +178 -33
- package/android/src/main/cpp/headers/NativeProxy.h +43 -7
- package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +13 -245
- package/android/src/main/java/com/swmansion/reanimated/ReanimatedModule.java +0 -125
- package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
- package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +15 -2
- package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
- package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
- package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
- package/ios/REAEventDispatcher.m +0 -1
- package/ios/REAModule.h +10 -1
- package/ios/REAModule.mm +284 -0
- package/ios/REANodesManager.h +27 -51
- package/ios/{REANodesManager.m → REANodesManager.mm} +91 -223
- package/ios/native/NativeProxy.mm +144 -17
- package/ios/native/REAInitializer.mm +12 -4
- package/ios/native/UIResponder+Reanimated.h +3 -1
- package/ios/native/UIResponder+Reanimated.mm +3 -1
- package/lib/Animated.js +0 -4
- package/lib/createAnimatedComponent.js +30 -169
- package/lib/index.js +0 -4
- package/lib/reanimated2/Easing.js +0 -42
- package/lib/reanimated2/NativeMethods.js +20 -3
- package/lib/reanimated2/UpdateProps.js +25 -10
- package/lib/reanimated2/core.js +4 -1
- package/lib/reanimated2/fabricUtils.js +18 -0
- package/lib/reanimated2/globals.d.ts +17 -1
- package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
- package/lib/reanimated2/hook/utils.js +0 -5
- package/lib/reanimated2/interpolateColor.js +5 -2
- package/lib/reanimated2/interpolation.js +0 -15
- package/lib/reanimated2/js-reanimated/index.js +3 -0
- package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
- package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
- package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
- package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
- package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
- package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
- package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
- package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
- package/package.json +7 -5
- package/plugin.js +4 -1
- package/src/Animated.js +0 -4
- package/src/createAnimatedComponent.tsx +37 -197
- package/src/reanimated2/Easing.ts +0 -53
- package/src/reanimated2/NativeMethods.ts +39 -7
- package/src/reanimated2/UpdateProps.ts +38 -19
- package/src/reanimated2/commonTypes.ts +4 -1
- package/src/reanimated2/component/FlatList.tsx +8 -5
- package/src/reanimated2/core.ts +7 -1
- package/src/reanimated2/fabricUtils.ts +27 -0
- package/src/reanimated2/globals.d.ts +17 -1
- package/src/reanimated2/hook/commonTypes.ts +4 -2
- package/src/reanimated2/hook/index.ts +1 -1
- package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
- package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
- package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
- package/src/reanimated2/hook/utils.ts +2 -11
- package/src/reanimated2/interpolateColor.ts +6 -2
- package/src/reanimated2/interpolation.ts +1 -26
- package/src/reanimated2/js-reanimated/index.ts +5 -0
- package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/7.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/react-native-reanimated-64-hermes.aar +0 -0
- package/android/react-native-reanimated-64-jsc.aar +0 -0
- package/android/react-native-reanimated-65-hermes.aar +0 -0
- package/android/react-native-reanimated-65-jsc.aar +0 -0
- package/android/react-native-reanimated-66-hermes.aar +0 -0
- package/android/react-native-reanimated-66-jsc.aar +0 -0
- package/android/react-native-reanimated-67-hermes.aar +0 -0
- package/android/react-native-reanimated-67-jsc.aar +0 -0
- package/android/react-native-reanimated-68-hermes.aar +0 -0
- package/android/react-native-reanimated-68-jsc.aar +0 -0
- package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
- package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
- package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
- package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
- package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
- package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
- package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
- package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
- package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
- package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
- package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
- package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
- package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
- package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
- package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
- package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
- package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
- package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
- package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
- package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
- package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
- package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
- package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
- package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
- package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
- package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
- package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
- package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
- package/ios/Nodes/REAAlwaysNode.h +0 -4
- package/ios/Nodes/REAAlwaysNode.m +0 -35
- package/ios/Nodes/REABezierNode.h +0 -5
- package/ios/Nodes/REABezierNode.m +0 -103
- package/ios/Nodes/REABlockNode.h +0 -5
- package/ios/Nodes/REABlockNode.m +0 -25
- package/ios/Nodes/REACallFuncNode.h +0 -6
- package/ios/Nodes/REACallFuncNode.m +0 -69
- package/ios/Nodes/REAClockNodes.h +0 -19
- package/ios/Nodes/REAClockNodes.m +0 -118
- package/ios/Nodes/REAConcatNode.h +0 -5
- package/ios/Nodes/REAConcatNode.m +0 -32
- package/ios/Nodes/REACondNode.h +0 -5
- package/ios/Nodes/REACondNode.m +0 -36
- package/ios/Nodes/READebugNode.h +0 -5
- package/ios/Nodes/READebugNode.m +0 -30
- package/ios/Nodes/REAEventNode.h +0 -8
- package/ios/Nodes/REAEventNode.m +0 -35
- package/ios/Nodes/REAFunctionNode.h +0 -6
- package/ios/Nodes/REAFunctionNode.m +0 -24
- package/ios/Nodes/REAJSCallNode.h +0 -5
- package/ios/Nodes/REAJSCallNode.m +0 -30
- package/ios/Nodes/REANode.h +0 -40
- package/ios/Nodes/REANode.m +0 -155
- package/ios/Nodes/REAOperatorNode.h +0 -5
- package/ios/Nodes/REAOperatorNode.m +0 -114
- package/ios/Nodes/REAParamNode.h +0 -10
- package/ios/Nodes/REAParamNode.m +0 -79
- package/ios/Nodes/REAPropsNode.h +0 -9
- package/ios/Nodes/REAPropsNode.m +0 -96
- package/ios/Nodes/REASetNode.h +0 -5
- package/ios/Nodes/REASetNode.m +0 -34
- package/ios/Nodes/REAStyleNode.h +0 -5
- package/ios/Nodes/REAStyleNode.m +0 -27
- package/ios/Nodes/REATransformNode.h +0 -5
- package/ios/Nodes/REATransformNode.m +0 -36
- package/ios/Nodes/REAValueNode.h +0 -9
- package/ios/Nodes/REAValueNode.m +0 -26
- package/ios/REAModule.m +0 -184
- package/ios/Transitioning/RCTConvert+REATransition.h +0 -11
- package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
- package/ios/Transitioning/REAAllTransitions.h +0 -26
- package/ios/Transitioning/REAAllTransitions.m +0 -296
- package/ios/Transitioning/REATransition.h +0 -64
- package/ios/Transitioning/REATransition.m +0 -210
- package/ios/Transitioning/REATransitionAnimation.h +0 -17
- package/ios/Transitioning/REATransitionAnimation.m +0 -79
- package/ios/Transitioning/REATransitionManager.h +0 -9
- package/ios/Transitioning/REATransitionManager.m +0 -60
- package/ios/Transitioning/REATransitionValues.h +0 -15
- package/ios/Transitioning/REATransitionValues.m +0 -25
- package/lib/reanimated1/Easing.js +0 -231
- package/lib/reanimated1/SpringConfig.js +0 -79
- package/lib/reanimated1/Transitioning.js +0 -158
- package/lib/reanimated1/animations/Animation.js +0 -32
- package/lib/reanimated1/animations/SpringUtils.js +0 -199
- package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
- package/lib/reanimated1/animations/decay.js +0 -54
- package/lib/reanimated1/animations/spring.js +0 -198
- package/lib/reanimated1/animations/timing.js +0 -74
- package/lib/reanimated1/base.js +0 -13
- package/lib/reanimated1/core/AnimatedAlways.js +0 -33
- package/lib/reanimated1/core/AnimatedBezier.js +0 -150
- package/lib/reanimated1/core/AnimatedBlock.js +0 -52
- package/lib/reanimated1/core/AnimatedCall.js +0 -55
- package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
- package/lib/reanimated1/core/AnimatedClock.js +0 -90
- package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
- package/lib/reanimated1/core/AnimatedCode.js +0 -32
- package/lib/reanimated1/core/AnimatedConcat.js +0 -32
- package/lib/reanimated1/core/AnimatedCond.js +0 -57
- package/lib/reanimated1/core/AnimatedDebug.js +0 -62
- package/lib/reanimated1/core/AnimatedEvent.js +0 -126
- package/lib/reanimated1/core/AnimatedFunction.js +0 -55
- package/lib/reanimated1/core/AnimatedNode.js +0 -223
- package/lib/reanimated1/core/AnimatedOperator.js +0 -103
- package/lib/reanimated1/core/AnimatedParam.js +0 -88
- package/lib/reanimated1/core/AnimatedProps.js +0 -108
- package/lib/reanimated1/core/AnimatedSet.js +0 -38
- package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
- package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
- package/lib/reanimated1/core/AnimatedStyle.js +0 -78
- package/lib/reanimated1/core/AnimatedTransform.js +0 -78
- package/lib/reanimated1/core/AnimatedValue.js +0 -38
- package/lib/reanimated1/core/Core.test.js +0 -30
- package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
- package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
- package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
- package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
- package/lib/reanimated1/derived/acc.js +0 -11
- package/lib/reanimated1/derived/color.js +0 -47
- package/lib/reanimated1/derived/diff.js +0 -16
- package/lib/reanimated1/derived/diffClamp.js +0 -11
- package/lib/reanimated1/derived/evaluateOnce.js +0 -35
- package/lib/reanimated1/derived/index.js +0 -8
- package/lib/reanimated1/derived/interpolate.js +0 -152
- package/lib/reanimated1/derived/interpolateColors.js +0 -62
- package/lib/reanimated1/derived/onChange.js +0 -14
- package/lib/reanimated1/derived/useCode.js +0 -41
- package/lib/reanimated1/index.js +0 -53
- package/lib/reanimated1/operators.js +0 -35
- package/lib/reanimated1/useValue.js +0 -10
- package/lib/reanimated1/val.js +0 -3
- package/lib/types/react-native-reanimated-tests.d.ts +0 -1
- package/src/reanimated1/Easing.js +0 -231
- package/src/reanimated1/SpringConfig.js +0 -79
- package/src/reanimated1/Transitioning.js +0 -158
- package/src/reanimated1/animations/Animation.js +0 -32
- package/src/reanimated1/animations/SpringUtils.js +0 -199
- package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
- package/src/reanimated1/animations/decay.js +0 -54
- package/src/reanimated1/animations/spring.js +0 -198
- package/src/reanimated1/animations/timing.js +0 -74
- package/src/reanimated1/base.js +0 -13
- package/src/reanimated1/core/AnimatedAlways.js +0 -33
- package/src/reanimated1/core/AnimatedBezier.js +0 -150
- package/src/reanimated1/core/AnimatedBlock.js +0 -52
- package/src/reanimated1/core/AnimatedCall.js +0 -55
- package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
- package/src/reanimated1/core/AnimatedClock.js +0 -90
- package/src/reanimated1/core/AnimatedClockTest.js +0 -22
- package/src/reanimated1/core/AnimatedCode.js +0 -32
- package/src/reanimated1/core/AnimatedConcat.js +0 -32
- package/src/reanimated1/core/AnimatedCond.js +0 -57
- package/src/reanimated1/core/AnimatedDebug.js +0 -62
- package/src/reanimated1/core/AnimatedEvent.js +0 -126
- package/src/reanimated1/core/AnimatedFunction.js +0 -55
- package/src/reanimated1/core/AnimatedNode.js +0 -223
- package/src/reanimated1/core/AnimatedOperator.js +0 -103
- package/src/reanimated1/core/AnimatedParam.js +0 -88
- package/src/reanimated1/core/AnimatedProps.js +0 -108
- package/src/reanimated1/core/AnimatedSet.js +0 -38
- package/src/reanimated1/core/AnimatedStartClock.js +0 -30
- package/src/reanimated1/core/AnimatedStopClock.js +0 -30
- package/src/reanimated1/core/AnimatedStyle.js +0 -78
- package/src/reanimated1/core/AnimatedTransform.js +0 -78
- package/src/reanimated1/core/AnimatedValue.js +0 -38
- package/src/reanimated1/core/Core.test.js +0 -30
- package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
- package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
- package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
- package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
- package/src/reanimated1/derived/acc.js +0 -11
- package/src/reanimated1/derived/color.js +0 -47
- package/src/reanimated1/derived/diff.js +0 -16
- package/src/reanimated1/derived/diffClamp.js +0 -11
- package/src/reanimated1/derived/evaluateOnce.js +0 -35
- package/src/reanimated1/derived/index.js +0 -8
- package/src/reanimated1/derived/interpolate.js +0 -152
- package/src/reanimated1/derived/interpolateColors.js +0 -62
- package/src/reanimated1/derived/onChange.js +0 -14
- package/src/reanimated1/derived/useCode.js +0 -41
- package/src/reanimated1/index.js +0 -53
- package/src/reanimated1/operators.js +0 -35
- package/src/reanimated1/useValue.js +0 -10
- package/src/reanimated1/val.js +0 -3
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { findNodeHandle, Platform, StyleSheet } from 'react-native';
|
|
3
|
-
import ReanimatedEventEmitter from './ReanimatedEventEmitter';
|
|
4
|
-
// @ts-ignore JS file
|
|
5
|
-
import AnimatedEvent from './reanimated1/core/AnimatedEvent';
|
|
6
|
-
// @ts-ignore JS file
|
|
7
|
-
import AnimatedNode from './reanimated1/core/AnimatedNode';
|
|
8
|
-
// @ts-ignore JS file
|
|
9
|
-
import AnimatedValue from './reanimated1/core/AnimatedValue';
|
|
10
|
-
// @ts-ignore JS file
|
|
11
|
-
import { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';
|
|
12
3
|
import WorkletEventHandler from './reanimated2/WorkletEventHandler';
|
|
13
4
|
import setAndForwardRef from './setAndForwardRef';
|
|
14
5
|
import './reanimated2/layoutReanimation/LayoutAnimationRepository';
|
|
@@ -19,27 +10,11 @@ import { makeMutable, runOnUI, enableLayoutAnimations, } from './reanimated2/cor
|
|
|
19
10
|
import { DefaultEntering, DefaultExiting, DefaultLayout, } from './reanimated2/layoutReanimation/defaultAnimations/Default';
|
|
20
11
|
import { isJest, isChromeDebugger, shouldBeUseWeb, } from './reanimated2/PlatformChecker';
|
|
21
12
|
import { initialUpdaterRun } from './reanimated2/animation';
|
|
22
|
-
|
|
23
|
-
function listener(data) {
|
|
24
|
-
const component = NODE_MAPPING.get(data.viewTag);
|
|
25
|
-
component && component._updateFromNative(data.props);
|
|
26
|
-
}
|
|
13
|
+
import { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';
|
|
27
14
|
function dummyListener() {
|
|
28
15
|
// empty listener we use to assign to listener properties for which animated
|
|
29
16
|
// event is used.
|
|
30
17
|
}
|
|
31
|
-
function hasAnimatedNodes(value) {
|
|
32
|
-
if (value instanceof AnimatedNode) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
if (Array.isArray(value)) {
|
|
36
|
-
return value.some((item) => hasAnimatedNodes(item));
|
|
37
|
-
}
|
|
38
|
-
if (value && typeof value === 'object') {
|
|
39
|
-
return Object.keys(value).some((key) => hasAnimatedNodes(value[key]));
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
18
|
function flattenArray(array) {
|
|
44
19
|
if (!Array.isArray(array)) {
|
|
45
20
|
return [array];
|
|
@@ -85,35 +60,12 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
85
60
|
class AnimatedComponent extends React.Component {
|
|
86
61
|
constructor(props) {
|
|
87
62
|
super(props);
|
|
88
|
-
this._invokeAnimatedPropsCallbackOnMount = false;
|
|
89
63
|
this._styles = null;
|
|
90
64
|
this._viewTag = -1;
|
|
91
65
|
this._isFirstRender = true;
|
|
92
66
|
this.animatedStyle = { value: {} };
|
|
93
67
|
this.initialStyle = {};
|
|
94
68
|
this._component = null;
|
|
95
|
-
// The system is best designed when setNativeProps is implemented. It is
|
|
96
|
-
// able to avoid re-rendering and directly set the attributes that changed.
|
|
97
|
-
// However, setNativeProps can only be implemented on native components
|
|
98
|
-
// If you want to animate a composite component, you need to re-render it.
|
|
99
|
-
// In this case, we have a fallback that uses forceUpdate.
|
|
100
|
-
this._animatedPropsCallback = () => {
|
|
101
|
-
if (this._component == null) {
|
|
102
|
-
// AnimatedProps is created in will-mount because it's used in render.
|
|
103
|
-
// But this callback may be invoked before mount in async mode,
|
|
104
|
-
// In which case we should defer the setNativeProps() call.
|
|
105
|
-
// React may throw away uncommitted work in async mode,
|
|
106
|
-
// So a deferred call won't always be invoked.
|
|
107
|
-
this._invokeAnimatedPropsCallbackOnMount = true;
|
|
108
|
-
}
|
|
109
|
-
else if (typeof this._component.setNativeProps !== 'function') {
|
|
110
|
-
this.forceUpdate();
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
114
|
-
this._component.setNativeProps(this._propsAnimated.__getValue());
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
69
|
this._setComponentRef = setAndForwardRef({
|
|
118
70
|
getForwardedRef: () => this.props.forwardedRef,
|
|
119
71
|
setLocalRef: (ref) => {
|
|
@@ -156,60 +108,34 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
156
108
|
}
|
|
157
109
|
},
|
|
158
110
|
});
|
|
159
|
-
this._attachProps(this.props);
|
|
160
111
|
if (isJest()) {
|
|
161
112
|
this.animatedStyle = { value: {} };
|
|
162
113
|
}
|
|
163
114
|
this.sv = makeMutable({});
|
|
164
115
|
}
|
|
165
116
|
componentWillUnmount() {
|
|
166
|
-
this._detachPropUpdater();
|
|
167
|
-
this._propsAnimated && this._propsAnimated.__detach();
|
|
168
117
|
this._detachNativeEvents();
|
|
169
118
|
this._detachStyles();
|
|
170
119
|
this.sv = null;
|
|
171
120
|
}
|
|
172
121
|
componentDidMount() {
|
|
173
|
-
if (this._invokeAnimatedPropsCallbackOnMount) {
|
|
174
|
-
this._invokeAnimatedPropsCallbackOnMount = false;
|
|
175
|
-
this._animatedPropsCallback();
|
|
176
|
-
}
|
|
177
|
-
this._propsAnimated &&
|
|
178
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
179
|
-
this._propsAnimated.setNativeView(this._component);
|
|
180
122
|
this._attachNativeEvents();
|
|
181
|
-
this._attachPropUpdater();
|
|
182
123
|
this._attachAnimatedStyles();
|
|
183
124
|
}
|
|
184
|
-
_getEventViewRef() {
|
|
185
|
-
var _a;
|
|
186
|
-
// Make sure to get the scrollable node for components that implement
|
|
187
|
-
// `ScrollResponder.Mixin`.
|
|
188
|
-
return ((_a = this._component) === null || _a === void 0 ? void 0 : _a.getScrollableNode) ? this._component.getScrollableNode()
|
|
189
|
-
: this._component;
|
|
190
|
-
}
|
|
191
125
|
_attachNativeEvents() {
|
|
192
|
-
const
|
|
193
|
-
const viewTag = findNodeHandle((options === null || options === void 0 ? void 0 : options.setNativeProps) ? this : node);
|
|
126
|
+
const viewTag = findNodeHandle(this);
|
|
194
127
|
for (const key in this.props) {
|
|
195
128
|
const prop = this.props[key];
|
|
196
|
-
if (prop
|
|
197
|
-
prop.attachEvent(node, key);
|
|
198
|
-
}
|
|
199
|
-
else if (has('current', prop) &&
|
|
129
|
+
if (has('current', prop) &&
|
|
200
130
|
prop.current instanceof WorkletEventHandler) {
|
|
201
131
|
prop.current.registerForEvents(viewTag, key);
|
|
202
132
|
}
|
|
203
133
|
}
|
|
204
134
|
}
|
|
205
135
|
_detachNativeEvents() {
|
|
206
|
-
const node = this._getEventViewRef();
|
|
207
136
|
for (const key in this.props) {
|
|
208
137
|
const prop = this.props[key];
|
|
209
|
-
if (prop
|
|
210
|
-
prop.detachEvent(node, key);
|
|
211
|
-
}
|
|
212
|
-
else if (has('current', prop) &&
|
|
138
|
+
if (has('current', prop) &&
|
|
213
139
|
prop.current instanceof WorkletEventHandler) {
|
|
214
140
|
prop.current.unregisterFromEvents();
|
|
215
141
|
}
|
|
@@ -231,19 +157,20 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
231
157
|
if ((_a = this.props.animatedProps) === null || _a === void 0 ? void 0 : _a.viewDescriptors) {
|
|
232
158
|
this.props.animatedProps.viewDescriptors.remove(this._viewTag);
|
|
233
159
|
}
|
|
160
|
+
if (global._IS_FABRIC) {
|
|
161
|
+
const shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
|
|
162
|
+
runOnUI(() => {
|
|
163
|
+
'worklet';
|
|
164
|
+
_removeShadowNodeFromRegistry(shadowNodeWrapper);
|
|
165
|
+
})();
|
|
166
|
+
}
|
|
234
167
|
}
|
|
235
168
|
}
|
|
236
169
|
_reattachNativeEvents(prevProps) {
|
|
237
|
-
const node = this._getEventViewRef();
|
|
238
|
-
const attached = new Set();
|
|
239
|
-
const nextEvts = new Set();
|
|
240
170
|
let viewTag;
|
|
241
171
|
for (const key in this.props) {
|
|
242
172
|
const prop = this.props[key];
|
|
243
|
-
if (prop
|
|
244
|
-
nextEvts.add(prop.__nodeID);
|
|
245
|
-
}
|
|
246
|
-
else if (has('current', prop) &&
|
|
173
|
+
if (has('current', prop) &&
|
|
247
174
|
prop.current instanceof WorkletEventHandler) {
|
|
248
175
|
if (viewTag === undefined) {
|
|
249
176
|
viewTag = prop.current.viewTag;
|
|
@@ -252,17 +179,7 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
252
179
|
}
|
|
253
180
|
for (const key in prevProps) {
|
|
254
181
|
const prop = this.props[key];
|
|
255
|
-
if (prop
|
|
256
|
-
if (!nextEvts.has(prop.__nodeID)) {
|
|
257
|
-
// event was in prev props but not in current props, we detach
|
|
258
|
-
prop.detachEvent(node, key);
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
// event was in prev and is still in current props
|
|
262
|
-
attached.add(prop.__nodeID);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
else if (has('current', prop) &&
|
|
182
|
+
if (has('current', prop) &&
|
|
266
183
|
prop.current instanceof WorkletEventHandler &&
|
|
267
184
|
prop.current.reattachNeeded) {
|
|
268
185
|
prop.current.unregisterFromEvents();
|
|
@@ -270,12 +187,7 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
270
187
|
}
|
|
271
188
|
for (const key in this.props) {
|
|
272
189
|
const prop = this.props[key];
|
|
273
|
-
if (prop
|
|
274
|
-
!attached.has(prop.__nodeID)) {
|
|
275
|
-
// not yet attached
|
|
276
|
-
prop.attachEvent(node, key);
|
|
277
|
-
}
|
|
278
|
-
else if (has('current', prop) &&
|
|
190
|
+
if (has('current', prop) &&
|
|
279
191
|
prop.current instanceof WorkletEventHandler &&
|
|
280
192
|
prop.current.reattachNeeded) {
|
|
281
193
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -284,22 +196,6 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
284
196
|
}
|
|
285
197
|
}
|
|
286
198
|
}
|
|
287
|
-
_attachProps(nextProps) {
|
|
288
|
-
const oldPropsAnimated = this._propsAnimated;
|
|
289
|
-
this._propsAnimated = createOrReusePropsNode(nextProps, this._animatedPropsCallback, oldPropsAnimated);
|
|
290
|
-
// If prop node has been reused we don't need to call into "__detach"
|
|
291
|
-
if (oldPropsAnimated !== this._propsAnimated) {
|
|
292
|
-
// When you call detach, it removes the element from the parent list
|
|
293
|
-
// of children. If it goes to 0, then the parent also detaches itself
|
|
294
|
-
// and so on.
|
|
295
|
-
// An optimization is to attach the new elements and THEN detach the old
|
|
296
|
-
// ones instead of detaching and THEN attaching.
|
|
297
|
-
// This way the intermediate state isn't to go to 0 and trigger
|
|
298
|
-
// this expensive recursive detaching to then re-attach everything on
|
|
299
|
-
// the very next operation.
|
|
300
|
-
oldPropsAnimated && oldPropsAnimated.__detach();
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
199
|
_updateFromNative(props) {
|
|
304
200
|
var _a, _b;
|
|
305
201
|
if (options === null || options === void 0 ? void 0 : options.setNativeProps) {
|
|
@@ -311,13 +207,6 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
311
207
|
(_b = (_a = this._component) === null || _a === void 0 ? void 0 : _a.setNativeProps) === null || _b === void 0 ? void 0 : _b.call(_a, props);
|
|
312
208
|
}
|
|
313
209
|
}
|
|
314
|
-
_attachPropUpdater() {
|
|
315
|
-
const viewTag = findNodeHandle(this);
|
|
316
|
-
NODE_MAPPING.set(viewTag, this);
|
|
317
|
-
if (NODE_MAPPING.size === 1) {
|
|
318
|
-
ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
210
|
_attachAnimatedStyles() {
|
|
322
211
|
var _a, _b, _c;
|
|
323
212
|
const styles = this.props.style
|
|
@@ -329,9 +218,11 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
329
218
|
this._animatedProps = this.props.animatedProps;
|
|
330
219
|
let viewTag;
|
|
331
220
|
let viewName;
|
|
221
|
+
let shadowNodeWrapper = null;
|
|
332
222
|
if (Platform.OS === 'web') {
|
|
333
223
|
viewTag = findNodeHandle(this);
|
|
334
224
|
viewName = null;
|
|
225
|
+
shadowNodeWrapper = null;
|
|
335
226
|
}
|
|
336
227
|
else {
|
|
337
228
|
// hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx
|
|
@@ -351,6 +242,9 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
351
242
|
if (hasReanimated2Props && (hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance.viewConfig)) {
|
|
352
243
|
adaptViewConfig(hostInstance.viewConfig);
|
|
353
244
|
}
|
|
245
|
+
if (global._IS_FABRIC) {
|
|
246
|
+
shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
|
|
247
|
+
}
|
|
354
248
|
}
|
|
355
249
|
this._viewTag = viewTag;
|
|
356
250
|
// remove old styles
|
|
@@ -370,7 +264,11 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
370
264
|
}
|
|
371
265
|
}
|
|
372
266
|
styles.forEach((style) => {
|
|
373
|
-
style.viewDescriptors.add({
|
|
267
|
+
style.viewDescriptors.add({
|
|
268
|
+
tag: viewTag,
|
|
269
|
+
name: viewName,
|
|
270
|
+
shadowNodeWrapper,
|
|
271
|
+
});
|
|
374
272
|
if (isJest()) {
|
|
375
273
|
/**
|
|
376
274
|
* We need to connect Jest's TestObject instance whose contains just props object
|
|
@@ -394,39 +292,15 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
394
292
|
tag: viewTag,
|
|
395
293
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
396
294
|
name: viewName,
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
296
|
+
shadowNodeWrapper: shadowNodeWrapper,
|
|
397
297
|
});
|
|
398
298
|
}
|
|
399
299
|
}
|
|
400
|
-
_detachPropUpdater() {
|
|
401
|
-
const viewTag = findNodeHandle(this);
|
|
402
|
-
NODE_MAPPING.delete(viewTag);
|
|
403
|
-
if (NODE_MAPPING.size === 0) {
|
|
404
|
-
ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
300
|
componentDidUpdate(prevProps) {
|
|
408
|
-
this._attachProps(this.props);
|
|
409
301
|
this._reattachNativeEvents(prevProps);
|
|
410
|
-
this._propsAnimated &&
|
|
411
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
412
|
-
this._propsAnimated.setNativeView(this._component);
|
|
413
302
|
this._attachAnimatedStyles();
|
|
414
303
|
}
|
|
415
|
-
_filterNonAnimatedStyle(inputStyle) {
|
|
416
|
-
const style = {};
|
|
417
|
-
for (const key in inputStyle) {
|
|
418
|
-
const value = inputStyle[key];
|
|
419
|
-
if (!hasAnimatedNodes(value)) {
|
|
420
|
-
style[key] = value;
|
|
421
|
-
}
|
|
422
|
-
else if (value instanceof AnimatedValue) {
|
|
423
|
-
// if any style in animated component is set directly to the `Value` we set those styles to the first value of `Value` node in order
|
|
424
|
-
// to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.
|
|
425
|
-
style[key] = value._startingValue;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
return style;
|
|
429
|
-
}
|
|
430
304
|
_filterNonAnimatedProps(inputProps) {
|
|
431
305
|
const props = {};
|
|
432
306
|
for (const key in inputProps) {
|
|
@@ -447,7 +321,7 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
447
321
|
return style;
|
|
448
322
|
}
|
|
449
323
|
});
|
|
450
|
-
props[key] =
|
|
324
|
+
props[key] = StyleSheet.flatten(processedStyle);
|
|
451
325
|
}
|
|
452
326
|
else if (key === 'animatedProps') {
|
|
453
327
|
const animatedProp = inputProps.animatedProps;
|
|
@@ -459,13 +333,6 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
459
333
|
});
|
|
460
334
|
}
|
|
461
335
|
}
|
|
462
|
-
else if (value instanceof AnimatedEvent) {
|
|
463
|
-
// we cannot filter out event listeners completely as some components
|
|
464
|
-
// rely on having a callback registered in order to generate events
|
|
465
|
-
// alltogether. Therefore we provide a dummy callback here to allow
|
|
466
|
-
// native event dispatcher to hijack events.
|
|
467
|
-
props[key] = dummyListener;
|
|
468
|
-
}
|
|
469
336
|
else if (has('current', value) &&
|
|
470
337
|
value.current instanceof WorkletEventHandler) {
|
|
471
338
|
if (value.current.eventNames.length > 0) {
|
|
@@ -479,15 +346,9 @@ export default function createAnimatedComponent(Component, options) {
|
|
|
479
346
|
props[key] = dummyListener;
|
|
480
347
|
}
|
|
481
348
|
}
|
|
482
|
-
else if (
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
else if (value instanceof AnimatedValue) {
|
|
488
|
-
// if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order
|
|
489
|
-
// to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.
|
|
490
|
-
props[key] = value._startingValue;
|
|
349
|
+
else if (key !== 'onGestureHandlerStateChange' ||
|
|
350
|
+
!isChromeDebugger()) {
|
|
351
|
+
props[key] = value;
|
|
491
352
|
}
|
|
492
353
|
}
|
|
493
354
|
return props;
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,6 @@ import {
|
|
|
3
3
|
addWhitelistedNativeProps,
|
|
4
4
|
addWhitelistedUIProps,
|
|
5
5
|
} from './ConfigHelper';
|
|
6
|
-
import * as reanimated1 from './reanimated1';
|
|
7
6
|
import ReanimatedComponents from './reanimated2/component';
|
|
8
7
|
|
|
9
8
|
const Animated = {
|
|
@@ -13,10 +12,7 @@ const Animated = {
|
|
|
13
12
|
// configuration
|
|
14
13
|
addWhitelistedNativeProps,
|
|
15
14
|
addWhitelistedUIProps,
|
|
16
|
-
// reanimated 1
|
|
17
|
-
...reanimated1,
|
|
18
15
|
};
|
|
19
16
|
|
|
20
17
|
export * from './reanimated2';
|
|
21
|
-
export * from './reanimated1';
|
|
22
18
|
export default Animated;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
// spread and rest parameters can't be used in worklets right now
|
|
2
|
-
/* eslint-disable prefer-rest-params */
|
|
3
|
-
/* eslint-disable prefer-spread */
|
|
4
|
-
/* global _WORKLET */
|
|
5
|
-
// @ts-ignore reanimated1/Easing is JS file
|
|
6
|
-
import EasingNode from '../reanimated1/Easing';
|
|
7
1
|
import { Bezier } from './Bezier';
|
|
8
2
|
/**
|
|
9
3
|
* A linear function, `f(t) = t`. Position correlates to elapsed time one to
|
|
@@ -209,40 +203,4 @@ const EasingObject = {
|
|
|
209
203
|
out,
|
|
210
204
|
inOut,
|
|
211
205
|
};
|
|
212
|
-
// TODO type worklets
|
|
213
|
-
function createChecker(worklet, workletName, prevArgs) {
|
|
214
|
-
/* should return Animated.Value or worklet */
|
|
215
|
-
function checkIfReaOne() {
|
|
216
|
-
'worklet';
|
|
217
|
-
if (arguments && !_WORKLET) {
|
|
218
|
-
for (let i = 0; i < arguments.length; i++) {
|
|
219
|
-
const arg = arguments[i];
|
|
220
|
-
if (arg && arg.__nodeID) {
|
|
221
|
-
console.warn(`Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`);
|
|
222
|
-
if (prevArgs) {
|
|
223
|
-
return EasingNode[workletName]
|
|
224
|
-
.apply(undefined, prevArgs)
|
|
225
|
-
.apply(undefined, arguments);
|
|
226
|
-
}
|
|
227
|
-
return EasingNode[workletName].apply(undefined, arguments);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
// @ts-ignore this is implicitly any - TODO
|
|
232
|
-
const res = worklet.apply(this, arguments);
|
|
233
|
-
if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {
|
|
234
|
-
return createChecker(res, workletName, arguments);
|
|
235
|
-
}
|
|
236
|
-
return res;
|
|
237
|
-
}
|
|
238
|
-
// use original worklet on UI side
|
|
239
|
-
checkIfReaOne._closure = worklet._closure;
|
|
240
|
-
checkIfReaOne.asString = worklet.asString;
|
|
241
|
-
checkIfReaOne.__workletHash = worklet.__workletHash;
|
|
242
|
-
checkIfReaOne.__location = worklet.__location;
|
|
243
|
-
return checkIfReaOne;
|
|
244
|
-
}
|
|
245
|
-
Object.keys(EasingObject).forEach((key) => {
|
|
246
|
-
EasingObject[key] = createChecker(EasingObject[key], key);
|
|
247
|
-
});
|
|
248
206
|
export const Easing = EasingObject;
|
|
@@ -24,13 +24,30 @@ export function measure(animatedRef) {
|
|
|
24
24
|
}
|
|
25
25
|
return result;
|
|
26
26
|
}
|
|
27
|
-
export function
|
|
27
|
+
export function dispatchCommand(animatedRef, commandName, args) {
|
|
28
28
|
'worklet';
|
|
29
29
|
if (!_WORKLET || isNativeIndefined) {
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
|
-
const
|
|
33
|
-
|
|
32
|
+
const shadowNodeWrapper = animatedRef();
|
|
33
|
+
_dispatchCommand(shadowNodeWrapper, commandName, args);
|
|
34
|
+
}
|
|
35
|
+
export let scrollTo;
|
|
36
|
+
if (global._IS_FABRIC) {
|
|
37
|
+
scrollTo = (animatedRef, x, y, animated) => {
|
|
38
|
+
'worklet';
|
|
39
|
+
dispatchCommand(animatedRef, 'scrollTo', [x, y, animated]);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
scrollTo = (animatedRef, x, y, animated) => {
|
|
44
|
+
'worklet';
|
|
45
|
+
if (!_WORKLET || isNativeIndefined) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const viewTag = animatedRef();
|
|
49
|
+
_scrollTo(viewTag, x, y, animated);
|
|
50
|
+
};
|
|
34
51
|
}
|
|
35
52
|
export function setGestureState(handlerTag, newState) {
|
|
36
53
|
'worklet';
|
|
@@ -32,17 +32,32 @@ if (shouldBeUseWeb()) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
if (global._IS_FABRIC) {
|
|
36
|
+
updatePropsByPlatform = (viewDescriptors, updates, _) => {
|
|
37
|
+
'worklet';
|
|
38
|
+
for (const key in updates) {
|
|
39
|
+
if (ColorProperties.indexOf(key) !== -1) {
|
|
40
|
+
updates[key] = processColor(updates[key]);
|
|
41
|
+
}
|
|
40
42
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
}
|
|
43
|
+
viewDescriptors.value.forEach((viewDescriptor) => {
|
|
44
|
+
_updatePropsFabric(viewDescriptor.shadowNodeWrapper, updates);
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
updatePropsByPlatform = (viewDescriptors, updates, _) => {
|
|
50
|
+
'worklet';
|
|
51
|
+
for (const key in updates) {
|
|
52
|
+
if (ColorProperties.indexOf(key) !== -1) {
|
|
53
|
+
updates[key] = processColor(updates[key]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
viewDescriptors.value.forEach((viewDescriptor) => {
|
|
57
|
+
_updatePropsPaper(viewDescriptor.tag, viewDescriptor.name || 'RCTView', updates);
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
}
|
|
46
61
|
}
|
|
47
62
|
export const updateProps = updatePropsByPlatform;
|
|
48
63
|
export const updatePropsJestWrapper = (viewDescriptors, updates, maybeViewRef, animatedStyle, adapters) => {
|
package/lib/reanimated2/core.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp
|
|
1
|
+
/* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp _setGlobalConsole */
|
|
2
2
|
import NativeReanimatedModule from './NativeReanimated';
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';
|
|
@@ -52,6 +52,9 @@ export function makeShareable(value) {
|
|
|
52
52
|
return NativeReanimatedModule.makeShareable(value);
|
|
53
53
|
}
|
|
54
54
|
export function getViewProp(viewTag, propName) {
|
|
55
|
+
if (global._IS_FABRIC) {
|
|
56
|
+
throw new Error('[react-native-reanimated] `getViewProp` is not supported on Fabric yet');
|
|
57
|
+
}
|
|
55
58
|
return new Promise((resolve, reject) => {
|
|
56
59
|
return NativeReanimatedModule.getViewProp(viewTag, propName, (result) => {
|
|
57
60
|
if (typeof result === 'string' && result.substr(0, 6) === 'error:') {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3
|
+
let findHostInstance_DEPRECATED = (_ref) => null;
|
|
4
|
+
try {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
6
|
+
findHostInstance_DEPRECATED =
|
|
7
|
+
require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
|
|
8
|
+
}
|
|
9
|
+
catch (e) {
|
|
10
|
+
// do nothing
|
|
11
|
+
}
|
|
12
|
+
export function getShadowNodeWrapperFromHostInstance(hostInstance) {
|
|
13
|
+
// @ts-ignore Fabric
|
|
14
|
+
return hostInstance._internalInstanceHandle.stateNode.node;
|
|
15
|
+
}
|
|
16
|
+
export function getShadowNodeWrapperFromRef(ref) {
|
|
17
|
+
return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));
|
|
18
|
+
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AnimatedStyle, StyleProps } from './commonTypes';
|
|
2
2
|
import { ReanimatedConsole } from './core';
|
|
3
|
+
import { ShadowNodeWrapper } from './hook/commonTypes';
|
|
3
4
|
import { MeasuredDimensions } from './NativeMethods';
|
|
4
5
|
import { NativeReanimated } from './NativeReanimated/NativeReanimated';
|
|
5
6
|
declare global {
|
|
6
7
|
const _WORKLET: boolean;
|
|
8
|
+
const _IS_FABRIC: boolean;
|
|
7
9
|
const _frameTimestamp: number;
|
|
8
10
|
const _eventTimestamp: number;
|
|
9
11
|
const _setGlobalConsole: (console?: ReanimatedConsole) => void;
|
|
@@ -14,11 +16,18 @@ declare global {
|
|
|
14
16
|
flag: { value: boolean; _value: boolean }
|
|
15
17
|
) => void;
|
|
16
18
|
const _setGestureState: (handlerTag: number, newState: number) => void;
|
|
17
|
-
const
|
|
19
|
+
const _updatePropsPaper: (
|
|
18
20
|
tag: number,
|
|
19
21
|
name: string,
|
|
20
22
|
updates: StyleProps | AnimatedStyle
|
|
21
23
|
) => void;
|
|
24
|
+
const _updatePropsFabric: (
|
|
25
|
+
shadowNodeWrapper: ShadowNodeWrapper,
|
|
26
|
+
props: StyleProps | AnimatedStyle
|
|
27
|
+
) => void;
|
|
28
|
+
const _removeShadowNodeFromRegistry: (
|
|
29
|
+
shadowNodeWrapper: ShadowNodeWrapper
|
|
30
|
+
) => void;
|
|
22
31
|
const _measure: (viewTag: number) => MeasuredDimensions;
|
|
23
32
|
const _scrollTo: (
|
|
24
33
|
viewTag: number,
|
|
@@ -26,6 +35,11 @@ declare global {
|
|
|
26
35
|
y: number,
|
|
27
36
|
animated: boolean
|
|
28
37
|
) => void;
|
|
38
|
+
const _dispatchCommand: (
|
|
39
|
+
shadowNodeWrapper: ShadowNodeWrapper,
|
|
40
|
+
commandName: string,
|
|
41
|
+
args: Array<unknown>
|
|
42
|
+
) => void;
|
|
29
43
|
const _chronoNow: () => number;
|
|
30
44
|
const ReanimatedDataMock: {
|
|
31
45
|
now: () => number;
|
|
@@ -36,10 +50,12 @@ declare global {
|
|
|
36
50
|
_log: (s: string) => void;
|
|
37
51
|
_setGestureState: () => void;
|
|
38
52
|
_WORKLET: boolean;
|
|
53
|
+
_IS_FABRIC: boolean;
|
|
39
54
|
__reanimatedModuleProxy: NativeReanimated;
|
|
40
55
|
_frameTimestamp: number | null;
|
|
41
56
|
_measure: () => MeasuredDimensions;
|
|
42
57
|
_scrollTo: () => void;
|
|
58
|
+
_dispatchCommand: () => void;
|
|
43
59
|
_chronoNow: () => number;
|
|
44
60
|
performance: { now: () => number };
|
|
45
61
|
LayoutAnimationRepository: {
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
|
-
import { getTag } from '../NativeMethods';
|
|
3
2
|
import { useSharedValue } from './useSharedValue';
|
|
3
|
+
import { getTag } from '../NativeMethods';
|
|
4
|
+
import { getShadowNodeWrapperFromHostInstance } from '../fabricUtils';
|
|
4
5
|
export function useAnimatedRef() {
|
|
5
6
|
const tag = useSharedValue(-1);
|
|
6
7
|
const ref = useRef();
|
|
8
|
+
const isFabric = global._IS_FABRIC;
|
|
7
9
|
if (!ref.current) {
|
|
8
10
|
const fun = ((component) => {
|
|
9
11
|
'worklet';
|
|
10
12
|
// enters when ref is set by attaching to a component
|
|
11
13
|
if (component) {
|
|
12
|
-
tag.value =
|
|
14
|
+
tag.value = isFabric
|
|
15
|
+
? getShadowNodeWrapperFromHostInstance(component)
|
|
16
|
+
: getTag(component);
|
|
13
17
|
fun.current = component;
|
|
14
18
|
}
|
|
15
19
|
return tag.value;
|
|
@@ -12,11 +12,6 @@ export function useEvent(handler, eventNames = [], rebuild = false) {
|
|
|
12
12
|
else if (rebuild) {
|
|
13
13
|
initRef.current.updateWorklet(handler);
|
|
14
14
|
}
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
return () => {
|
|
17
|
-
initRef.current = null;
|
|
18
|
-
};
|
|
19
|
-
}, []);
|
|
20
15
|
return initRef;
|
|
21
16
|
}
|
|
22
17
|
export function useHandler(handlers, dependencies) {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { hsvToColor, RGBtoHSV, rgbaColor, processColor, red, green, blue, opacity, } from './Colors';
|
|
2
2
|
import { makeMutable } from './core';
|
|
3
3
|
import { interpolate } from './interpolation';
|
|
4
|
-
// @ts-ignore JS file
|
|
5
|
-
import { Extrapolate } from '../reanimated1/derived';
|
|
6
4
|
import { useSharedValue } from './hook/useSharedValue';
|
|
5
|
+
export const Extrapolate = {
|
|
6
|
+
EXTEND: 'extend',
|
|
7
|
+
CLAMP: 'clamp',
|
|
8
|
+
IDENTITY: 'identity',
|
|
9
|
+
};
|
|
7
10
|
const interpolateColorsHSV = (value, inputRange, colors) => {
|
|
8
11
|
'worklet';
|
|
9
12
|
const h = interpolate(value, inputRange, colors.h, Extrapolate.CLAMP);
|