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
|
@@ -8,6 +8,7 @@ import com.facebook.proguard.annotations.DoNotStrip;
|
|
|
8
8
|
import com.facebook.react.ReactApplication;
|
|
9
9
|
import com.facebook.react.bridge.NativeModule;
|
|
10
10
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
11
12
|
import com.facebook.react.bridge.ReadableNativeArray;
|
|
12
13
|
import com.facebook.react.bridge.WritableArray;
|
|
13
14
|
import com.facebook.react.bridge.WritableMap;
|
|
@@ -15,6 +16,7 @@ import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
|
15
16
|
import com.facebook.react.turbomodule.core.CallInvokerHolderImpl;
|
|
16
17
|
import com.facebook.react.uimanager.UIManagerModule;
|
|
17
18
|
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
19
|
+
import com.facebook.soloader.SoLoader;
|
|
18
20
|
import com.swmansion.common.GestureHandlerStateManager;
|
|
19
21
|
import com.swmansion.reanimated.layoutReanimation.AnimationsManager;
|
|
20
22
|
import com.swmansion.reanimated.layoutReanimation.LayoutAnimations;
|
|
@@ -31,7 +33,7 @@ import java.util.Set;
|
|
|
31
33
|
public class NativeProxy {
|
|
32
34
|
|
|
33
35
|
static {
|
|
34
|
-
|
|
36
|
+
SoLoader.loadLibrary("reanimated");
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
@DoNotStrip
|
|
@@ -104,9 +106,13 @@ public class NativeProxy {
|
|
|
104
106
|
(CallInvokerHolderImpl) context.getCatalystInstance().getJSCallInvokerHolder();
|
|
105
107
|
LayoutAnimations LayoutAnimations = new LayoutAnimations(context);
|
|
106
108
|
mScheduler = new Scheduler(context);
|
|
109
|
+
|
|
107
110
|
mHybridData =
|
|
108
111
|
initHybrid(
|
|
109
|
-
context.getJavaScriptContextHolder().get(),
|
|
112
|
+
context.getJavaScriptContextHolder().get(),
|
|
113
|
+
holder,
|
|
114
|
+
mScheduler,
|
|
115
|
+
LayoutAnimations);
|
|
110
116
|
mContext = new WeakReference<>(context);
|
|
111
117
|
prepare(LayoutAnimations);
|
|
112
118
|
reanimatedSensorContainer = new ReanimatedSensorContainer(mContext);
|
|
@@ -135,6 +141,8 @@ public class NativeProxy {
|
|
|
135
141
|
|
|
136
142
|
public native boolean isAnyHandlerWaitingForEvent(String eventName);
|
|
137
143
|
|
|
144
|
+
public native void performOperations();
|
|
145
|
+
|
|
138
146
|
public Scheduler getScheduler() {
|
|
139
147
|
return mScheduler;
|
|
140
148
|
}
|
|
@@ -170,6 +178,11 @@ public class NativeProxy {
|
|
|
170
178
|
mNodesManager.updateProps(viewTag, props);
|
|
171
179
|
}
|
|
172
180
|
|
|
181
|
+
@DoNotStrip
|
|
182
|
+
private void synchronouslyUpdateUIProps(int viewTag, ReadableMap uiProps) {
|
|
183
|
+
mNodesManager.synchronouslyUpdateUIProps(viewTag, uiProps);
|
|
184
|
+
}
|
|
185
|
+
|
|
173
186
|
@DoNotStrip
|
|
174
187
|
private String obtainProp(int viewTag, String propName) {
|
|
175
188
|
return mNodesManager.obtainProp(viewTag, propName);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package com.swmansion.reanimated;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
5
|
+
import com.swmansion.reanimated.NodesManager;
|
|
6
|
+
|
|
7
|
+
class ReaCompatibility {
|
|
8
|
+
public ReaCompatibility(ReactApplicationContext reactApplicationContext) {
|
|
9
|
+
|
|
10
|
+
}
|
|
11
|
+
public void registerFabricEventListener(NodesManager nodeManager) {
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
public void synchronouslyUpdateUIProps(int viewTag, ReadableMap uiProps) {
|
|
15
|
+
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <React/RCTSurface.h>
|
|
4
|
+
#import <React/RCTSurfaceView.h>
|
|
5
|
+
#import <memory>
|
|
6
|
+
|
|
7
|
+
#import <RNReanimated/REAInitializerRCTFabricSurface.h>
|
|
8
|
+
#import <RNReanimated/REAModule.h>
|
|
9
|
+
|
|
10
|
+
@implementation REAInitializerRCTFabricSurface {
|
|
11
|
+
std::shared_ptr<facebook::react::SurfaceHandler> _surfaceHandler;
|
|
12
|
+
int _tag;
|
|
13
|
+
RCTSurface *_surface;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
- (instancetype)init
|
|
17
|
+
{
|
|
18
|
+
if (self = [super init]) {
|
|
19
|
+
_tag = -1;
|
|
20
|
+
_surface = [[RCTSurface alloc] init];
|
|
21
|
+
_surfaceHandler = std::make_shared<facebook::react::SurfaceHandler>("REASurface", _tag);
|
|
22
|
+
}
|
|
23
|
+
return self;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
- (NSNumber *)rootViewTag
|
|
27
|
+
{
|
|
28
|
+
return @(_tag);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (NSInteger)rootTag
|
|
32
|
+
{
|
|
33
|
+
return (NSInteger)_tag;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (void)start
|
|
37
|
+
{
|
|
38
|
+
// this is only needed method, the rest of them is just for prevent null pointer exceptions
|
|
39
|
+
[_reaModule installReanimatedUIManagerBindingAfterReload];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- (facebook::react::SurfaceHandler const &)surfaceHandler
|
|
43
|
+
{
|
|
44
|
+
return *_surfaceHandler.get();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
- (void)setMinimumSize:(CGSize)minimumSize maximumSize:(CGSize)maximumSize
|
|
48
|
+
{
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (void)setMinimumSize:(CGSize)minimumSize maximumSize:(CGSize)maximumSize viewportOffset:(CGPoint)viewportOffset
|
|
52
|
+
{
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
- (void)stop
|
|
56
|
+
{
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
- (CGSize)sizeThatFitsMinimumSize:(CGSize)minimumSize maximumSize:(CGSize)maximumSize
|
|
60
|
+
{
|
|
61
|
+
CGSize size{0, 0};
|
|
62
|
+
return size;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
- (nonnull RCTSurfaceView *)view
|
|
66
|
+
{
|
|
67
|
+
// This method should never be called.
|
|
68
|
+
react_native_assert(false);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@end
|
|
72
|
+
|
|
73
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
package/ios/REAEventDispatcher.m
CHANGED
package/ios/REAModule.h
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
#import <RNReanimated/NewestShadowNodesRegistry.h>
|
|
3
|
+
#import <RNReanimated/ReanimatedUIManagerBinding.h>
|
|
4
|
+
#endif
|
|
5
|
+
|
|
1
6
|
#import <React/RCTBridgeModule.h>
|
|
2
7
|
#import <React/RCTEventDispatcher.h>
|
|
3
8
|
#import <React/RCTEventEmitter.h>
|
|
@@ -5,10 +10,14 @@
|
|
|
5
10
|
#import <React/RCTUIManagerObserverCoordinator.h>
|
|
6
11
|
#import <React/RCTUIManagerUtils.h>
|
|
7
12
|
|
|
8
|
-
#import <RNReanimated/
|
|
13
|
+
#import <RNReanimated/REANodesManager.h>
|
|
9
14
|
|
|
10
15
|
@interface REAModule : RCTEventEmitter <RCTBridgeModule, RCTEventDispatcherObserver, RCTUIManagerObserver>
|
|
11
16
|
|
|
12
17
|
@property (nonatomic, readonly) REANodesManager *nodesManager;
|
|
13
18
|
|
|
19
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
20
|
+
- (void)installReanimatedUIManagerBindingAfterReload;
|
|
21
|
+
#endif
|
|
22
|
+
|
|
14
23
|
@end
|
package/ios/REAModule.mm
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
#import <React/RCTBridge+Private.h>
|
|
2
|
+
|
|
3
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
4
|
+
#import <React/RCTFabricSurface.h>
|
|
5
|
+
#import <React/RCTScheduler.h>
|
|
6
|
+
#import <React/RCTSurface.h>
|
|
7
|
+
#import <React/RCTSurfacePresenter.h>
|
|
8
|
+
#import <React/RCTSurfacePresenterBridgeAdapter.h>
|
|
9
|
+
#import <React/RCTSurfaceView.h>
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#import <RNReanimated/NativeProxy.h>
|
|
13
|
+
|
|
14
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
15
|
+
#import <RNReanimated/NewestShadowNodesRegistry.h>
|
|
16
|
+
#import <RNReanimated/REAInitializerRCTFabricSurface.h>
|
|
17
|
+
#import <RNReanimated/ReanimatedUIManagerBinding.h>
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
#import <RNReanimated/REAModule.h>
|
|
21
|
+
#import <RNReanimated/REANodesManager.h>
|
|
22
|
+
|
|
23
|
+
using namespace facebook::react;
|
|
24
|
+
using namespace reanimated;
|
|
25
|
+
|
|
26
|
+
@interface RCTBridge (JSIRuntime)
|
|
27
|
+
- (void *)runtime;
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
@interface RCTBridge (RCTTurboModule)
|
|
31
|
+
- (std::shared_ptr<facebook::react::CallInvoker>)jsCallInvoker;
|
|
32
|
+
- (void)_tryAndHandleError:(dispatch_block_t)block;
|
|
33
|
+
@end
|
|
34
|
+
|
|
35
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
36
|
+
static __strong REAInitializerRCTFabricSurface *reaSurface;
|
|
37
|
+
#else
|
|
38
|
+
typedef void (^AnimatedOperation)(REANodesManager *nodesManager);
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
@implementation REAModule {
|
|
42
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
43
|
+
__weak RCTSurfacePresenter *_surfacePresenter;
|
|
44
|
+
std::shared_ptr<NewestShadowNodesRegistry> newestShadowNodesRegistry;
|
|
45
|
+
std::weak_ptr<NativeReanimatedModule> reanimatedModule_;
|
|
46
|
+
std::shared_ptr<EventListener> eventListener_;
|
|
47
|
+
#else
|
|
48
|
+
NSMutableArray<AnimatedOperation> *_operations;
|
|
49
|
+
#endif
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
RCT_EXPORT_MODULE(ReanimatedModule);
|
|
53
|
+
|
|
54
|
+
- (void)invalidate
|
|
55
|
+
{
|
|
56
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
57
|
+
RCTScheduler *scheduler = [_surfacePresenter scheduler];
|
|
58
|
+
[scheduler removeEventListener:eventListener_];
|
|
59
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
60
|
+
#endif
|
|
61
|
+
[_nodesManager invalidate];
|
|
62
|
+
[super invalidate];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
- (dispatch_queue_t)methodQueue
|
|
66
|
+
{
|
|
67
|
+
// This module needs to be on the same queue as the UIManager to avoid
|
|
68
|
+
// having to lock `_operations` and `_preOperations` since `uiManagerWillPerformMounting`
|
|
69
|
+
// will be called from that queue.
|
|
70
|
+
return RCTGetUIManagerQueue();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
74
|
+
|
|
75
|
+
- (std::shared_ptr<UIManager>)getUIManager
|
|
76
|
+
{
|
|
77
|
+
RCTScheduler *scheduler = [_surfacePresenter scheduler];
|
|
78
|
+
return scheduler.uiManager;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
- (void)injectReanimatedUIManagerBinding:(jsi::Runtime &)runtime uiManager:(std::shared_ptr<UIManager>)uiManager
|
|
82
|
+
{
|
|
83
|
+
RuntimeExecutor syncRuntimeExecutor = [&](std::function<void(jsi::Runtime & runtime_)> &&callback) {
|
|
84
|
+
callback(runtime);
|
|
85
|
+
};
|
|
86
|
+
ReanimatedUIManagerBinding::createAndInstallIfNeeded(
|
|
87
|
+
runtime, syncRuntimeExecutor, uiManager, newestShadowNodesRegistry);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
- (void)setUpNativeReanimatedModule:(std::shared_ptr<UIManager>)uiManager
|
|
91
|
+
{
|
|
92
|
+
if (auto reanimatedModule = reanimatedModule_.lock()) {
|
|
93
|
+
reanimatedModule->setUIManager(uiManager);
|
|
94
|
+
reanimatedModule->setNewestShadowNodesRegistry(newestShadowNodesRegistry);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
- (void)injectDependencies:(jsi::Runtime &)runtime
|
|
99
|
+
{
|
|
100
|
+
auto uiManager = [self getUIManager];
|
|
101
|
+
react_native_assert(uiManager.get() != nil);
|
|
102
|
+
newestShadowNodesRegistry = std::make_shared<NewestShadowNodesRegistry>();
|
|
103
|
+
[self injectReanimatedUIManagerBinding:runtime uiManager:uiManager];
|
|
104
|
+
[self setUpNativeReanimatedModule:uiManager];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
#pragma mark-- Initialize
|
|
108
|
+
|
|
109
|
+
- (void)installReanimatedUIManagerBindingAfterReload
|
|
110
|
+
{
|
|
111
|
+
// called from REAInitializerRCTFabricSurface::start
|
|
112
|
+
__weak __typeof__(self) weakSelf = self;
|
|
113
|
+
_surfacePresenter = self.bridge.surfacePresenter;
|
|
114
|
+
[_nodesManager setSurfacePresenter:_surfacePresenter];
|
|
115
|
+
|
|
116
|
+
// to avoid deadlock we can't use Executor from React Native
|
|
117
|
+
// but we can create own and use it because initialization is already synchronized
|
|
118
|
+
react_native_assert(self.bridge != nil);
|
|
119
|
+
RCTRuntimeExecutorFromBridge(self.bridge)(^(jsi::Runtime &runtime) {
|
|
120
|
+
if (__typeof__(self) strongSelf = weakSelf) {
|
|
121
|
+
[strongSelf injectDependencies:runtime];
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
- (void)handleJavaScriptDidLoadNotification:(NSNotification *)notification
|
|
127
|
+
{
|
|
128
|
+
_surfacePresenter = self.bridge.surfacePresenter;
|
|
129
|
+
RCTScheduler *scheduler = [_surfacePresenter scheduler];
|
|
130
|
+
__weak __typeof__(self) weakSelf = self;
|
|
131
|
+
_surfacePresenter.runtimeExecutor(^(jsi::Runtime &runtime) {
|
|
132
|
+
__typeof__(self) strongSelf = weakSelf;
|
|
133
|
+
if (strongSelf == nil) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (auto reanimatedModule = strongSelf->reanimatedModule_.lock()) {
|
|
137
|
+
self->eventListener_ =
|
|
138
|
+
std::make_shared<facebook::react::EventListener>([reanimatedModule](const RawEvent &rawEvent) {
|
|
139
|
+
if (!RCTIsMainQueue()) {
|
|
140
|
+
// event listener called on the JS thread, let's ignore this event
|
|
141
|
+
// as we cannot safely access worklet runtime here
|
|
142
|
+
// and also we don't care about topLayout events
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
return reanimatedModule->handleRawEvent(rawEvent, CACurrentMediaTime() * 1000);
|
|
146
|
+
});
|
|
147
|
+
[scheduler addEventListener:self->eventListener_];
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
- (void)setBridge:(RCTBridge *)bridge
|
|
153
|
+
{
|
|
154
|
+
[super setBridge:bridge];
|
|
155
|
+
|
|
156
|
+
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
157
|
+
selector:@selector(handleJavaScriptDidLoadNotification:)
|
|
158
|
+
name:RCTJavaScriptDidLoadNotification
|
|
159
|
+
object:nil];
|
|
160
|
+
|
|
161
|
+
[[self.moduleRegistry moduleForName:"EventDispatcher"] addDispatchObserver:self];
|
|
162
|
+
[bridge.uiManager.observerCoordinator addObserver:self];
|
|
163
|
+
|
|
164
|
+
// only within the first loading `self.bridge.surfacePresenter` exists
|
|
165
|
+
// during the reload `self.bridge.surfacePresenter` is null
|
|
166
|
+
_surfacePresenter = self.bridge.surfacePresenter;
|
|
167
|
+
#ifdef DEBUG
|
|
168
|
+
if (reaSurface == nil) {
|
|
169
|
+
// we need only one instance because SurfacePresenter is the same during the application lifetime
|
|
170
|
+
reaSurface = [[REAInitializerRCTFabricSurface alloc] init];
|
|
171
|
+
[_surfacePresenter registerSurface:reaSurface];
|
|
172
|
+
}
|
|
173
|
+
reaSurface.reaModule = self;
|
|
174
|
+
#endif
|
|
175
|
+
|
|
176
|
+
if (_surfacePresenter == nil) {
|
|
177
|
+
// _surfacePresenter will be set in installReanimatedUIManagerBindingAfterReload
|
|
178
|
+
_nodesManager = [[REANodesManager alloc] initWithModule:self bridge:self.bridge surfacePresenter:nil];
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
_nodesManager = [[REANodesManager alloc] initWithModule:self bridge:self.bridge surfacePresenter:_surfacePresenter];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(installTurboModule)
|
|
186
|
+
{
|
|
187
|
+
facebook::jsi::Runtime *jsiRuntime = [self.bridge respondsToSelector:@selector(runtime)]
|
|
188
|
+
? reinterpret_cast<facebook::jsi::Runtime *>(self.bridge.runtime)
|
|
189
|
+
: nullptr;
|
|
190
|
+
|
|
191
|
+
if (jsiRuntime) {
|
|
192
|
+
// Reanimated
|
|
193
|
+
jsi::Runtime &runtime = *jsiRuntime;
|
|
194
|
+
|
|
195
|
+
auto reanimatedModule = reanimated::createReanimatedModule(self.bridge, self.bridge.jsCallInvoker);
|
|
196
|
+
|
|
197
|
+
auto workletRuntimeValue = runtime.global()
|
|
198
|
+
.getProperty(runtime, "ArrayBuffer")
|
|
199
|
+
.asObject(runtime)
|
|
200
|
+
.asFunction(runtime)
|
|
201
|
+
.callAsConstructor(runtime, {static_cast<double>(sizeof(void *))});
|
|
202
|
+
uintptr_t *workletRuntimeData =
|
|
203
|
+
reinterpret_cast<uintptr_t *>(workletRuntimeValue.getObject(runtime).getArrayBuffer(runtime).data(runtime));
|
|
204
|
+
workletRuntimeData[0] = reinterpret_cast<uintptr_t>(reanimatedModule->runtime.get());
|
|
205
|
+
|
|
206
|
+
runtime.global().setProperty(runtime, "_WORKLET_RUNTIME", workletRuntimeValue);
|
|
207
|
+
|
|
208
|
+
runtime.global().setProperty(runtime, "_IS_FABRIC", true);
|
|
209
|
+
|
|
210
|
+
runtime.global().setProperty(
|
|
211
|
+
runtime,
|
|
212
|
+
jsi::PropNameID::forAscii(runtime, "__reanimatedModuleProxy"),
|
|
213
|
+
jsi::Object::createFromHostObject(runtime, reanimatedModule));
|
|
214
|
+
reanimatedModule_ = reanimatedModule;
|
|
215
|
+
if (_surfacePresenter != nil) {
|
|
216
|
+
// reload, uiManager is null right now, we need to wait for `installReanimatedUIManagerBindingAfterReload`
|
|
217
|
+
[self injectDependencies:runtime];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return nil;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
#else
|
|
224
|
+
|
|
225
|
+
RCT_EXPORT_METHOD(installTurboModule)
|
|
226
|
+
{
|
|
227
|
+
// TODO: Move initialization from UIResponder+Reanimated to here
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
- (void)setBridge:(RCTBridge *)bridge
|
|
231
|
+
{
|
|
232
|
+
[super setBridge:bridge];
|
|
233
|
+
|
|
234
|
+
_nodesManager = [[REANodesManager alloc] initWithModule:self uiManager:self.bridge.uiManager];
|
|
235
|
+
_operations = [NSMutableArray new];
|
|
236
|
+
|
|
237
|
+
[bridge.uiManager.observerCoordinator addObserver:self];
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
#pragma mark-- Batch handling
|
|
241
|
+
|
|
242
|
+
- (void)addOperationBlock:(AnimatedOperation)operation
|
|
243
|
+
{
|
|
244
|
+
[_operations addObject:operation];
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
#pragma mark - RCTUIManagerObserver
|
|
248
|
+
|
|
249
|
+
- (void)uiManagerWillPerformMounting:(RCTUIManager *)uiManager
|
|
250
|
+
{
|
|
251
|
+
[_nodesManager maybeFlushUpdateBuffer];
|
|
252
|
+
if (_operations.count == 0) {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
NSArray<AnimatedOperation> *operations = _operations;
|
|
257
|
+
_operations = [NSMutableArray new];
|
|
258
|
+
|
|
259
|
+
REANodesManager *nodesManager = _nodesManager;
|
|
260
|
+
|
|
261
|
+
[uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
262
|
+
for (AnimatedOperation operation in operations) {
|
|
263
|
+
operation(nodesManager);
|
|
264
|
+
}
|
|
265
|
+
[nodesManager operationsBatchDidComplete];
|
|
266
|
+
}];
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
270
|
+
|
|
271
|
+
#pragma mark-- Events
|
|
272
|
+
|
|
273
|
+
- (NSArray<NSString *> *)supportedEvents
|
|
274
|
+
{
|
|
275
|
+
return @[];
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
- (void)eventDispatcherWillDispatchEvent:(id<RCTEvent>)event
|
|
279
|
+
{
|
|
280
|
+
// Events can be dispatched from any queue
|
|
281
|
+
[_nodesManager dispatchEvent:event];
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
@end
|
package/ios/REANodesManager.h
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
#import <Foundation/Foundation.h>
|
|
2
|
-
#import <RNReanimated/REANode.h>
|
|
3
1
|
#import <React/RCTBridgeModule.h>
|
|
4
2
|
#import <React/RCTUIManager.h>
|
|
5
3
|
|
|
4
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
|
+
#import <React/RCTSurfacePresenterStub.h>
|
|
6
|
+
#endif
|
|
7
|
+
|
|
6
8
|
@class REAModule;
|
|
7
9
|
|
|
8
10
|
typedef void (^REAOnAnimationCallback)(CADisplayLink *displayLink);
|
|
9
11
|
typedef void (^REANativeAnimationOp)(RCTUIManager *uiManager);
|
|
10
12
|
typedef void (^REAEventHandler)(NSString *eventName, id<RCTEvent> event);
|
|
11
13
|
|
|
14
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
15
|
+
typedef void (^REAPerformOperations)();
|
|
16
|
+
#endif
|
|
17
|
+
|
|
12
18
|
@interface REANodesManager : NSObject
|
|
13
19
|
|
|
14
20
|
@property (nonatomic, weak, nullable) RCTUIManager *uiManager;
|
|
@@ -18,66 +24,36 @@ typedef void (^REAEventHandler)(NSString *eventName, id<RCTEvent> event);
|
|
|
18
24
|
@property (nonatomic, nullable) NSSet<NSString *> *uiProps;
|
|
19
25
|
@property (nonatomic, nullable) NSSet<NSString *> *nativeProps;
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
28
|
+
- (nonnull instancetype)initWithModule:(REAModule *)reanimatedModule
|
|
29
|
+
bridge:(RCTBridge *)bridge
|
|
30
|
+
surfacePresenter:(id<RCTSurfacePresenterStub>)surfacePresenter;
|
|
31
|
+
#else
|
|
32
|
+
- (instancetype)initWithModule:(REAModule *)reanimatedModule uiManager:(RCTUIManager *)uiManager;
|
|
33
|
+
#endif
|
|
25
34
|
- (void)invalidate;
|
|
26
|
-
|
|
27
35
|
- (void)operationsBatchDidComplete;
|
|
28
36
|
|
|
29
|
-
//
|
|
30
|
-
|
|
31
37
|
- (void)postOnAnimation:(REAOnAnimationCallback)clb;
|
|
32
|
-
- (void)postRunUpdatesAfterAnimation;
|
|
33
38
|
- (void)registerEventHandler:(REAEventHandler)eventHandler;
|
|
34
|
-
- (void)
|
|
35
|
-
viewName:(NSString *)viewName
|
|
36
|
-
nativeProps:(NSMutableDictionary *)nativeProps
|
|
37
|
-
trySynchronously:(BOOL)trySync;
|
|
38
|
-
- (void)getValue:(REANodeID)nodeID callback:(RCTResponseSenderBlock)callback;
|
|
39
|
-
|
|
40
|
-
// graph
|
|
41
|
-
|
|
42
|
-
- (void)createNode:(nonnull REANodeID)tag config:(NSDictionary<NSString *, id> *__nonnull)config;
|
|
43
|
-
|
|
44
|
-
- (void)dropNode:(nonnull REANodeID)tag;
|
|
45
|
-
|
|
46
|
-
- (void)connectNodes:(nonnull REANodeID)parentID childID:(nonnull REANodeID)childID;
|
|
47
|
-
|
|
48
|
-
- (void)disconnectNodes:(nonnull REANodeID)parentID childID:(nonnull REANodeID)childID;
|
|
49
|
-
|
|
50
|
-
- (void)connectNodeToView:(nonnull REANodeID)nodeID
|
|
51
|
-
viewTag:(nonnull NSNumber *)viewTag
|
|
52
|
-
viewName:(nonnull NSString *)viewName;
|
|
53
|
-
|
|
54
|
-
- (void)disconnectNodeFromView:(nonnull REANodeID)nodeID viewTag:(nonnull NSNumber *)viewTag;
|
|
55
|
-
|
|
56
|
-
- (void)attachEvent:(nonnull NSNumber *)viewTag
|
|
57
|
-
eventName:(nonnull NSString *)eventName
|
|
58
|
-
eventNodeID:(nonnull REANodeID)eventNodeID;
|
|
59
|
-
|
|
60
|
-
- (void)detachEvent:(nonnull NSNumber *)viewTag
|
|
61
|
-
eventName:(nonnull NSString *)eventName
|
|
62
|
-
eventNodeID:(nonnull REANodeID)eventNodeID;
|
|
63
|
-
|
|
64
|
-
// configuration
|
|
39
|
+
- (void)dispatchEvent:(id<RCTEvent>)event;
|
|
65
40
|
|
|
41
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
42
|
+
- (void)setSurfacePresenter:(id<RCTSurfacePresenterStub>)surfacePresenter;
|
|
43
|
+
- (void)registerPerformOperations:(REAPerformOperations)performOperations;
|
|
44
|
+
- (void)synchronouslyUpdateViewOnUIThread:(nonnull NSNumber *)viewTag props:(nonnull NSDictionary *)uiProps;
|
|
45
|
+
#else
|
|
66
46
|
- (void)configureUiProps:(nonnull NSSet<NSString *> *)uiPropsSet
|
|
67
47
|
andNativeProps:(nonnull NSSet<NSString *> *)nativePropsSet;
|
|
68
|
-
|
|
69
48
|
- (void)updateProps:(nonnull NSDictionary *)props
|
|
70
49
|
ofViewWithTag:(nonnull NSNumber *)viewTag
|
|
71
50
|
withName:(nonnull NSString *)viewName;
|
|
72
|
-
|
|
73
|
-
- (NSString *)obtainProp:(nonnull NSNumber *)viewTag propName:(nonnull NSString *)propName;
|
|
74
|
-
|
|
75
|
-
// events
|
|
76
|
-
|
|
77
|
-
- (void)dispatchEvent:(id<RCTEvent>)event;
|
|
78
|
-
|
|
79
|
-
- (void)setValueForNodeID:(nonnull NSNumber *)nodeID value:(nonnull NSNumber *)newValue;
|
|
80
|
-
|
|
81
51
|
- (void)maybeFlushUpdateBuffer;
|
|
52
|
+
- (void)enqueueUpdateViewOnNativeThread:(nonnull NSNumber *)reactTag
|
|
53
|
+
viewName:(NSString *)viewName
|
|
54
|
+
nativeProps:(NSMutableDictionary *)nativeProps
|
|
55
|
+
trySynchronously:(BOOL)trySync;
|
|
56
|
+
- (NSString *)obtainProp:(nonnull NSNumber *)viewTag propName:(nonnull NSString *)propName;
|
|
57
|
+
#endif
|
|
82
58
|
|
|
83
59
|
@end
|