react-native-reanimated 2.3.0-alpha.1 → 2.3.0-beta.2
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/LayoutAnimations/LayoutAnimationsProxy.cpp +15 -8
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +170 -166
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +36 -34
- package/Common/cpp/Registries/EventHandlerRegistry.cpp +13 -6
- package/Common/cpp/Registries/MapperRegistry.cpp +19 -15
- package/Common/cpp/Registries/WorkletsCache.cpp +19 -9
- package/Common/cpp/SharedItems/FrozenObject.cpp +19 -8
- package/Common/cpp/SharedItems/MutableValue.cpp +38 -25
- package/Common/cpp/SharedItems/MutableValueSetterProxy.cpp +11 -7
- package/Common/cpp/SharedItems/RemoteObject.cpp +9 -5
- package/Common/cpp/SharedItems/ShareableValue.cpp +216 -143
- package/Common/cpp/Tools/JSIStoreValueUser.cpp +36 -24
- package/Common/cpp/Tools/Mapper.cpp +41 -29
- package/Common/cpp/Tools/RuntimeDecorator.cpp +103 -84
- package/Common/cpp/Tools/Scheduler.cpp +14 -6
- package/Common/cpp/Tools/WorkletEventHandler.cpp +1 -1
- package/Common/cpp/headers/LayoutAnimations/LayoutAnimationsProxy.h +12 -11
- package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +45 -34
- package/Common/cpp/headers/NativeModules/NativeReanimatedModuleSpec.h +28 -16
- package/Common/cpp/headers/Registries/EventHandlerRegistry.h +14 -8
- package/Common/cpp/headers/Registries/MapperRegistry.h +4 -4
- package/Common/cpp/headers/Registries/WorkletsCache.h +9 -7
- package/Common/cpp/headers/SharedItems/FrozenObject.h +15 -11
- package/Common/cpp/headers/SharedItems/HostFunctionHandler.h +6 -4
- package/Common/cpp/headers/SharedItems/MutableValue.h +21 -12
- package/Common/cpp/headers/SharedItems/MutableValueSetterProxy.h +10 -7
- package/Common/cpp/headers/SharedItems/RemoteObject.h +16 -8
- package/Common/cpp/headers/SharedItems/RuntimeManager.h +39 -21
- package/Common/cpp/headers/SharedItems/ShareableValue.h +31 -27
- package/Common/cpp/headers/SharedItems/SharedParent.h +7 -4
- package/Common/cpp/headers/SharedItems/ValueWrapper.h +80 -61
- package/Common/cpp/headers/SpecTools/ErrorHandler.h +17 -19
- package/Common/cpp/headers/Tools/JSIStoreValueUser.h +18 -13
- package/Common/cpp/headers/Tools/Mapper.h +24 -18
- package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +12 -7
- package/Common/cpp/headers/Tools/ReanimatedHiddenHeaders.h +7 -7
- package/Common/cpp/headers/Tools/RuntimeDecorator.h +29 -23
- package/Common/cpp/headers/Tools/Scheduler.h +28 -33
- package/Common/cpp/headers/Tools/WorkletEventHandler.h +9 -7
- package/Common/cpp/hidden_headers/Logger.h +14 -14
- package/Common/cpp/hidden_headers/LoggerInterface.h +8 -9
- package/Common/cpp/hidden_headers/SpeedChecker.h +7 -8
- package/README.md +1 -1
- package/RNReanimated.podspec +4 -4
- package/android/build.gradle +80 -3
- package/android/react-native-reanimated-63-hermes.aar +0 -0
- package/android/react-native-reanimated-63-jsc.aar +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/ios/LayoutReanimation/REAAnimationsManager.h +19 -10
- package/ios/LayoutReanimation/REAAnimationsManager.m +195 -200
- package/ios/LayoutReanimation/REASnapshot.h +13 -0
- package/ios/LayoutReanimation/REASnapshot.m +29 -0
- package/ios/LayoutReanimation/REAUIManager.h +16 -0
- package/ios/LayoutReanimation/REAUIManager.mm +348 -0
- package/ios/Nodes/REAAlwaysNode.m +14 -15
- package/ios/Nodes/REABezierNode.m +8 -7
- package/ios/Nodes/REABlockNode.m +1 -1
- package/ios/Nodes/REACallFuncNode.h +0 -1
- package/ios/Nodes/REACallFuncNode.m +10 -8
- package/ios/Nodes/REAClockNodes.m +22 -20
- package/ios/Nodes/REAConcatNode.h +0 -1
- package/ios/Nodes/REAConcatNode.m +2 -2
- package/ios/Nodes/REACondNode.m +7 -5
- package/ios/Nodes/READebugNode.m +5 -4
- package/ios/Nodes/REAEventNode.m +1 -1
- package/ios/Nodes/REAFunctionNode.h +0 -1
- package/ios/Nodes/REAFunctionNode.m +2 -2
- package/ios/Nodes/REAJSCallNode.m +4 -5
- package/ios/Nodes/REANode.h +3 -4
- package/ios/Nodes/REANode.m +9 -11
- package/ios/Nodes/REAOperatorNode.m +68 -67
- package/ios/Nodes/REAParamNode.h +1 -3
- package/ios/Nodes/REAParamNode.m +15 -17
- package/ios/Nodes/REAPropsNode.h +1 -3
- package/ios/Nodes/REAPropsNode.m +19 -22
- package/ios/Nodes/REASetNode.h +0 -1
- package/ios/Nodes/REASetNode.m +7 -5
- package/ios/Nodes/REAStyleNode.h +0 -1
- package/ios/Nodes/REAStyleNode.m +2 -4
- package/ios/Nodes/REATransformNode.h +0 -1
- package/ios/Nodes/REATransformNode.m +3 -5
- package/ios/Nodes/REAValueNode.m +5 -7
- package/ios/REAEventDispatcher.m +3 -3
- package/ios/REAModule.h +0 -2
- package/ios/REAModule.m +29 -40
- package/ios/REANodesManager.h +11 -19
- package/ios/REANodesManager.m +105 -130
- package/ios/REAUtils.h +5 -3
- package/ios/Transitioning/RCTConvert+REATransition.m +45 -29
- package/ios/Transitioning/REAAllTransitions.h +2 -2
- package/ios/Transitioning/REAAllTransitions.m +14 -25
- package/ios/Transitioning/REATransition.h +8 -7
- package/ios/Transitioning/REATransition.m +19 -16
- package/ios/Transitioning/REATransitionAnimation.h +1 -1
- package/ios/Transitioning/REATransitionAnimation.m +2 -3
- package/ios/Transitioning/REATransitionManager.m +3 -3
- package/ios/native/NativeMethods.h +15 -5
- package/ios/native/NativeProxy.h +4 -3
- package/ios/native/NativeProxy.mm +19 -5
- package/ios/native/REAIOSErrorHandler.h +13 -10
- package/ios/native/REAIOSLogger.h +8 -8
- package/ios/native/REAIOSScheduler.h +5 -5
- package/ios/native/REAIOSScheduler.mm +7 -5
- package/ios/native/REAInitializer.h +37 -0
- package/ios/native/REAInitializer.mm +63 -0
- package/ios/native/UIResponder+Reanimated.mm +9 -48
- package/lib/ConfigHelper.js +1 -0
- package/lib/ReanimatedModule.native.js +10 -2
- package/lib/createAnimatedComponent.js +64 -30
- package/lib/reanimated1/core/AnimatedAlways.js +1 -1
- package/lib/reanimated1/core/AnimatedBezier.js +1 -1
- package/lib/reanimated1/core/AnimatedBlock.js +1 -1
- package/lib/reanimated1/core/AnimatedCall.js +1 -1
- package/lib/reanimated1/core/AnimatedCallFunc.js +1 -1
- package/lib/reanimated1/core/AnimatedConcat.js +1 -1
- package/lib/reanimated1/core/AnimatedCond.js +1 -1
- package/lib/reanimated1/core/AnimatedDebug.js +1 -1
- package/lib/reanimated1/core/AnimatedEvent.js +1 -1
- package/lib/reanimated1/core/AnimatedFunction.js +1 -1
- package/lib/reanimated1/core/AnimatedOperator.js +1 -1
- package/lib/reanimated1/core/AnimatedParam.js +1 -1
- package/lib/reanimated1/core/AnimatedProps.js +2 -2
- package/lib/reanimated1/core/AnimatedSet.js +1 -1
- package/lib/reanimated1/core/AnimatedStartClock.js +1 -1
- package/lib/reanimated1/core/AnimatedStopClock.js +1 -1
- package/lib/reanimated1/core/AnimatedStyle.js +1 -1
- package/lib/reanimated1/core/AnimatedTransform.js +1 -1
- package/lib/reanimated1/core/Core.test.js +30 -0
- package/lib/reanimated1/core/InternalAnimatedValue.js +1 -1
- package/lib/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
- package/lib/reanimated1/derived/interpolate.js +1 -1
- package/lib/reanimated2/Colors.js +16 -12
- package/lib/reanimated2/NativeMethods.js +3 -14
- package/lib/reanimated2/{NativeReanimated.native.js → NativeReanimated/NativeReanimated.js} +19 -24
- package/lib/reanimated2/NativeReanimated/index.js +15 -0
- package/lib/reanimated2/PlatformChecker.js +16 -0
- package/lib/reanimated2/PropAdapters.js +14 -4
- package/lib/reanimated2/UpdateProps.js +14 -11
- package/lib/reanimated2/ViewDescriptorsSet.js +73 -0
- package/lib/reanimated2/WorkletEventHandler.js +15 -13
- package/lib/reanimated2/animation/commonTypes.js +1 -0
- package/lib/reanimated2/animation/decay.js +71 -0
- package/lib/reanimated2/animation/delay.js +64 -0
- package/lib/reanimated2/animation/index.js +8 -0
- package/lib/reanimated2/animation/repeat.js +69 -0
- package/lib/reanimated2/animation/sequence.js +72 -0
- package/lib/reanimated2/animation/spring.js +101 -0
- package/lib/reanimated2/animation/styleAnimation.js +166 -0
- package/lib/reanimated2/animation/timing.js +64 -0
- package/lib/reanimated2/animation/util.js +157 -0
- package/lib/reanimated2/commonTypes.js +1 -0
- package/lib/reanimated2/core.js +35 -39
- package/lib/reanimated2/globals.d.ts +47 -1
- package/lib/reanimated2/hook/Hooks.js +9 -0
- package/lib/reanimated2/hook/commonTypes.js +1 -0
- package/lib/reanimated2/hook/index.js +8 -0
- package/lib/reanimated2/hook/useAnimatedGestureHandler.js +50 -0
- package/lib/reanimated2/hook/useAnimatedReaction.js +37 -0
- package/lib/reanimated2/hook/useAnimatedRef.js +25 -0
- package/lib/reanimated2/hook/useAnimatedScrollHandler.js +41 -0
- package/lib/reanimated2/hook/useAnimatedStyle.js +376 -0
- package/lib/reanimated2/hook/useDerivedValue.js +36 -0
- package/lib/reanimated2/hook/useSharedValue.js +17 -0
- package/lib/reanimated2/hook/utils.js +175 -0
- package/lib/reanimated2/index.js +3 -2
- package/lib/reanimated2/interpolation.js +95 -86
- package/lib/reanimated2/jestUtils.js +0 -12
- package/lib/reanimated2/js-reanimated/JSReanimated.js +9 -10
- package/lib/reanimated2/js-reanimated/index.js +57 -1
- package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +58 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +69 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +125 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +193 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +1 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +3 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +325 -207
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +36 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +235 -187
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +327 -269
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +146 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +85 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +119 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +289 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +159 -121
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +83 -65
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +371 -277
- package/lib/reanimated2/layoutReanimation/defaultAnimations/index.js +4 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +78 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +128 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
- package/lib/reanimated2/layoutReanimation/index.js +3 -2
- package/lib/reanimated2/platform-specific/RNRenderer.web.js +2 -0
- package/lib/reanimated2/utils.js +9 -0
- package/libSo/fbjni/jni/arm64-v8a/libfbjni.so +0 -0
- package/libSo/fbjni/jni/armeabi-v7a/libfbjni.so +0 -0
- package/libSo/fbjni/jni/x86/libfbjni.so +0 -0
- package/libSo/fbjni/jni/x86_64/libfbjni.so +0 -0
- package/package.json +21 -10
- package/plugin.js +244 -85
- package/react-native-reanimated.d.ts +531 -453
- package/src/ConfigHelper.js +1 -0
- package/src/ReanimatedModule.native.js +10 -2
- package/src/createAnimatedComponent.js +64 -30
- package/src/reanimated1/core/AnimatedAlways.js +1 -1
- package/src/reanimated1/core/AnimatedBezier.js +1 -1
- package/src/reanimated1/core/AnimatedBlock.js +1 -1
- package/src/reanimated1/core/AnimatedCall.js +1 -1
- package/src/reanimated1/core/AnimatedCallFunc.js +1 -1
- package/src/reanimated1/core/AnimatedConcat.js +1 -1
- package/src/reanimated1/core/AnimatedCond.js +1 -1
- package/src/reanimated1/core/AnimatedDebug.js +1 -1
- package/src/reanimated1/core/AnimatedEvent.js +1 -1
- package/src/reanimated1/core/AnimatedFunction.js +1 -1
- package/src/reanimated1/core/AnimatedOperator.js +1 -1
- package/src/reanimated1/core/AnimatedParam.js +1 -1
- package/src/reanimated1/core/AnimatedProps.js +2 -2
- package/src/reanimated1/core/AnimatedSet.js +1 -1
- package/src/reanimated1/core/AnimatedStartClock.js +1 -1
- package/src/reanimated1/core/AnimatedStopClock.js +1 -1
- package/src/reanimated1/core/AnimatedStyle.js +1 -1
- package/src/reanimated1/core/AnimatedTransform.js +1 -1
- package/src/reanimated1/core/Core.test.js +30 -0
- package/src/reanimated1/core/InternalAnimatedValue.js +1 -1
- package/src/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
- package/src/reanimated1/derived/interpolate.js +1 -1
- package/src/reanimated2/Colors.ts +30 -27
- package/src/reanimated2/Easing.ts +3 -1
- package/src/reanimated2/NativeMethods.ts +26 -16
- package/src/reanimated2/NativeReanimated/NativeReanimated.ts +78 -0
- package/src/reanimated2/NativeReanimated/index.ts +18 -0
- package/src/reanimated2/PlatformChecker.ts +21 -0
- package/src/reanimated2/PropAdapters.ts +52 -34
- package/src/reanimated2/UpdateProps.ts +40 -20
- package/src/reanimated2/ViewDescriptorsSet.ts +108 -0
- package/src/reanimated2/WorkletEventHandler.ts +41 -23
- package/src/reanimated2/animation/commonTypes.ts +48 -0
- package/src/reanimated2/animation/decay.ts +141 -0
- package/src/reanimated2/animation/delay.ts +103 -0
- package/src/reanimated2/animation/index.ts +16 -0
- package/src/reanimated2/animation/repeat.ts +128 -0
- package/src/reanimated2/animation/sequence.ts +110 -0
- package/src/reanimated2/animation/spring.ts +165 -0
- package/src/reanimated2/animation/styleAnimation.ts +253 -0
- package/src/reanimated2/animation/timing.ts +109 -0
- package/src/reanimated2/animation/util.ts +242 -0
- package/src/reanimated2/commonTypes.ts +81 -0
- package/src/reanimated2/core.ts +128 -82
- package/src/reanimated2/globals.d.ts +47 -1
- package/src/reanimated2/hook/Hooks.ts +16 -0
- package/src/reanimated2/hook/commonTypes.ts +12 -0
- package/src/reanimated2/hook/index.ts +25 -0
- package/src/reanimated2/hook/useAnimatedGestureHandler.ts +110 -0
- package/src/reanimated2/hook/useAnimatedReaction.ts +49 -0
- package/src/reanimated2/hook/useAnimatedRef.ts +34 -0
- package/src/reanimated2/hook/useAnimatedScrollHandler.ts +83 -0
- package/src/reanimated2/hook/useAnimatedStyle.ts +538 -0
- package/src/reanimated2/hook/useDerivedValue.ts +48 -0
- package/src/reanimated2/hook/useSharedValue.ts +22 -0
- package/src/reanimated2/hook/utils.ts +259 -0
- package/src/reanimated2/index.ts +3 -2
- package/src/reanimated2/interpolation.ts +170 -101
- package/src/reanimated2/jestUtils.ts +0 -12
- package/src/reanimated2/js-reanimated/JSReanimated.ts +47 -22
- package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
- package/src/reanimated2/js-reanimated/index.ts +71 -0
- package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.tsx +62 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts +91 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +169 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +263 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +78 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +16 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +243 -121
- package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +43 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts +95 -53
- package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +114 -64
- package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +179 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts +93 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +132 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +333 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +84 -50
- package/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts +41 -23
- package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +234 -154
- package/src/reanimated2/layoutReanimation/defaultAnimations/index.ts +4 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +104 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +213 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +60 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +58 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +41 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +78 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/index.ts +6 -0
- package/src/reanimated2/layoutReanimation/index.ts +3 -2
- package/src/reanimated2/platform-specific/RNRenderer.web.ts +2 -0
- package/src/reanimated2/utils.ts +21 -0
- package/android/react-native-reanimated-62-hermes.aar +0 -0
- package/android/react-native-reanimated-62-jsc.aar +0 -0
- package/ios/LayoutReanimation/REAAnimationRootView.h +0 -12
- package/ios/LayoutReanimation/REAAnimationRootView.m +0 -16
- package/ios/LayoutReanimation/REAAnimationRootViewManager.h +0 -9
- package/ios/LayoutReanimation/REAAnimationRootViewManager.m +0 -49
- package/ios/LayoutReanimation/REAReactBatchObserver.h +0 -20
- package/ios/LayoutReanimation/REAReactBatchObserver.m +0 -125
- package/ios/LayoutReanimation/REASnapshooter.h +0 -19
- package/ios/LayoutReanimation/REASnapshooter.m +0 -64
- package/ios/LayoutReanimation/REAViewTraverser.h +0 -13
- package/ios/LayoutReanimation/REAViewTraverser.m +0 -40
- package/lib/reanimated2/Hooks.js +0 -732
- package/lib/reanimated2/NativeReanimated.js +0 -4
- package/lib/reanimated2/animations.js +0 -713
- package/lib/reanimated2/js-reanimated/index.web.js +0 -20
- package/lib/reanimated2/layoutReanimation/AnimatedRoot.js +0 -55
- package/lib/reanimated2/layoutReanimation/defaultAnimationsBuilder.js +0 -374
- package/src/reanimated2/Hooks.ts +0 -918
- package/src/reanimated2/NativeReanimated.native.ts +0 -61
- package/src/reanimated2/NativeReanimated.ts +0 -5
- package/src/reanimated2/animations.ts +0 -868
- package/src/reanimated2/js-reanimated/index.js +0 -0
- package/src/reanimated2/js-reanimated/index.web.ts +0 -29
- package/src/reanimated2/layoutReanimation/AnimatedRoot.tsx +0 -68
- package/src/reanimated2/layoutReanimation/defaultAnimationsBuilder.ts +0 -440
|
@@ -8,8 +8,9 @@ import AnimatedValue from './reanimated1/core/AnimatedValue';
|
|
|
8
8
|
import { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';
|
|
9
9
|
import WorkletEventHandler from './reanimated2/WorkletEventHandler';
|
|
10
10
|
import setAndForwardRef from './setAndForwardRef';
|
|
11
|
+
import './reanimated2/layoutReanimation/LayoutAnimationRepository';
|
|
11
12
|
|
|
12
|
-
import invariant from '
|
|
13
|
+
import invariant from 'invariant';
|
|
13
14
|
import { adaptViewConfig } from './ConfigHelper';
|
|
14
15
|
import { RNRenderer } from './reanimated2/platform-specific/RNRenderer';
|
|
15
16
|
import { makeMutable, runOnUI } from './reanimated2/core';
|
|
@@ -17,7 +18,9 @@ import {
|
|
|
17
18
|
DefaultEntering,
|
|
18
19
|
DefaultExiting,
|
|
19
20
|
DefaultLayout,
|
|
20
|
-
} from './reanimated2/layoutReanimation/
|
|
21
|
+
} from './reanimated2/layoutReanimation/defaultAnimations/Default';
|
|
22
|
+
import { isJest, isChromeDebugger } from './reanimated2/PlatformChecker';
|
|
23
|
+
import { initialUpdaterRun } from './reanimated2/animation';
|
|
21
24
|
|
|
22
25
|
const NODE_MAPPING = new Map();
|
|
23
26
|
|
|
@@ -46,7 +49,7 @@ function hasAnimatedNodes(value) {
|
|
|
46
49
|
|
|
47
50
|
function flattenArray(array) {
|
|
48
51
|
if (!Array.isArray(array)) {
|
|
49
|
-
return array;
|
|
52
|
+
return [array];
|
|
50
53
|
}
|
|
51
54
|
const resultArr = [];
|
|
52
55
|
|
|
@@ -73,11 +76,14 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
73
76
|
|
|
74
77
|
class AnimatedComponent extends React.Component {
|
|
75
78
|
_invokeAnimatedPropsCallbackOnMount = false;
|
|
79
|
+
_styles = null;
|
|
80
|
+
_viewTag = -1;
|
|
81
|
+
_isFirstRender = true;
|
|
76
82
|
|
|
77
83
|
constructor(props) {
|
|
78
84
|
super(props);
|
|
79
85
|
this._attachProps(this.props);
|
|
80
|
-
if (
|
|
86
|
+
if (isJest()) {
|
|
81
87
|
this.animatedStyle = { value: {} };
|
|
82
88
|
}
|
|
83
89
|
this.sv = makeMutable({});
|
|
@@ -87,6 +93,7 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
87
93
|
this._detachPropUpdater();
|
|
88
94
|
this._propsAnimated && this._propsAnimated.__detach();
|
|
89
95
|
this._detachNativeEvents();
|
|
96
|
+
this._detachStyles();
|
|
90
97
|
this.sv = null;
|
|
91
98
|
}
|
|
92
99
|
|
|
@@ -113,7 +120,6 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
113
120
|
_attachNativeEvents() {
|
|
114
121
|
const node = this._getEventViewRef();
|
|
115
122
|
const viewTag = findNodeHandle(options.setNativeProps ? this : node);
|
|
116
|
-
|
|
117
123
|
for (const key in this.props) {
|
|
118
124
|
const prop = this.props[key];
|
|
119
125
|
if (prop instanceof AnimatedEvent) {
|
|
@@ -143,6 +149,25 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
143
149
|
}
|
|
144
150
|
}
|
|
145
151
|
|
|
152
|
+
_detachStyles() {
|
|
153
|
+
if (Platform.OS === 'web') {
|
|
154
|
+
for (const style of this._styles) {
|
|
155
|
+
if (style?.viewsRef) {
|
|
156
|
+
style.viewsRef.remove(this);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
} else if (this._viewTag !== -1) {
|
|
160
|
+
for (const style of this._styles) {
|
|
161
|
+
if (style?.viewDescriptors) {
|
|
162
|
+
style.viewDescriptors.remove(this._viewTag);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (this.props.animatedProps?.viewDescriptors) {
|
|
166
|
+
this.props.animatedProps.viewDescriptors.remove(this._viewTag);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
146
171
|
_reattachNativeEvents(prevProps) {
|
|
147
172
|
const node = this._getEventViewRef();
|
|
148
173
|
const attached = new Set();
|
|
@@ -257,10 +282,8 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
257
282
|
}
|
|
258
283
|
|
|
259
284
|
_attachAnimatedStyles() {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
: [this.props.style];
|
|
263
|
-
styles = flattenArray(styles);
|
|
285
|
+
const styles = flattenArray(this.props.style);
|
|
286
|
+
this._styles = styles;
|
|
264
287
|
let viewTag, viewName;
|
|
265
288
|
if (Platform.OS === 'web') {
|
|
266
289
|
viewTag = findNodeHandle(this);
|
|
@@ -289,11 +312,12 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
289
312
|
adaptViewConfig(hostInstance.viewConfig);
|
|
290
313
|
}
|
|
291
314
|
}
|
|
315
|
+
this._viewTag = viewTag;
|
|
292
316
|
|
|
293
317
|
styles.forEach((style) => {
|
|
294
|
-
if (style?.
|
|
295
|
-
style.
|
|
296
|
-
if (
|
|
318
|
+
if (style?.viewDescriptors) {
|
|
319
|
+
style.viewDescriptors.add({ tag: viewTag, name: viewName });
|
|
320
|
+
if (isJest()) {
|
|
297
321
|
/**
|
|
298
322
|
* We need to connect Jest's TestObject instance whose contains just props object
|
|
299
323
|
* with the updateProps() function where we update the properties of the component.
|
|
@@ -302,29 +326,29 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
302
326
|
*/
|
|
303
327
|
this.animatedStyle.value = {
|
|
304
328
|
...this.animatedStyle.value,
|
|
305
|
-
...style.initial,
|
|
329
|
+
...style.initial.value,
|
|
306
330
|
};
|
|
307
331
|
style.animatedStyle.current = this.animatedStyle;
|
|
308
332
|
}
|
|
309
333
|
}
|
|
310
334
|
});
|
|
311
335
|
// attach animatedProps property
|
|
312
|
-
if (this.props.animatedProps?.
|
|
313
|
-
this.props.animatedProps.
|
|
336
|
+
if (this.props.animatedProps?.viewDescriptors) {
|
|
337
|
+
this.props.animatedProps.viewDescriptors.add({
|
|
314
338
|
tag: viewTag,
|
|
315
339
|
name: viewName,
|
|
316
|
-
};
|
|
340
|
+
});
|
|
317
341
|
}
|
|
318
342
|
}
|
|
319
343
|
|
|
320
344
|
_hasReanimated2Props(flattenStyles) {
|
|
321
|
-
if (this.props.animatedProps?.
|
|
345
|
+
if (this.props.animatedProps?.viewDescriptors) {
|
|
322
346
|
return true;
|
|
323
347
|
}
|
|
324
348
|
if (this.props.style) {
|
|
325
349
|
for (const style of flattenStyles) {
|
|
326
350
|
// eslint-disable-next-line no-prototype-builtins
|
|
327
|
-
if (style?.hasOwnProperty('
|
|
351
|
+
if (style?.hasOwnProperty('viewDescriptors')) {
|
|
328
352
|
return true;
|
|
329
353
|
}
|
|
330
354
|
}
|
|
@@ -345,6 +369,7 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
345
369
|
this._reattachNativeEvents(prevProps);
|
|
346
370
|
|
|
347
371
|
this._propsAnimated && this._propsAnimated.setNativeView(this._component);
|
|
372
|
+
this._attachAnimatedStyles();
|
|
348
373
|
}
|
|
349
374
|
|
|
350
375
|
_setComponentRef = setAndForwardRef({
|
|
@@ -428,14 +453,19 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
428
453
|
for (const key in inputProps) {
|
|
429
454
|
const value = inputProps[key];
|
|
430
455
|
if (key === 'style') {
|
|
431
|
-
const styles =
|
|
456
|
+
const styles = flattenArray(value);
|
|
432
457
|
const processedStyle = styles.map((style) => {
|
|
433
|
-
if (style && style.
|
|
458
|
+
if (style && style.viewDescriptors) {
|
|
434
459
|
// this is how we recognize styles returned by useAnimatedStyle
|
|
435
|
-
|
|
436
|
-
|
|
460
|
+
style.viewsRef.add(this);
|
|
461
|
+
if (this._isFirstRender) {
|
|
462
|
+
return {
|
|
463
|
+
...style.initial.value,
|
|
464
|
+
...initialUpdaterRun(style.initial.updater),
|
|
465
|
+
};
|
|
466
|
+
} else {
|
|
467
|
+
return style.initial.value;
|
|
437
468
|
}
|
|
438
|
-
return style.initial;
|
|
439
469
|
} else {
|
|
440
470
|
return style;
|
|
441
471
|
}
|
|
@@ -444,11 +474,9 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
444
474
|
StyleSheet.flatten(processedStyle)
|
|
445
475
|
);
|
|
446
476
|
} else if (key === 'animatedProps') {
|
|
447
|
-
Object.keys(value.initial).forEach((key) => {
|
|
448
|
-
props[key] = value.initial[key];
|
|
449
|
-
|
|
450
|
-
value.viewRef.current = this;
|
|
451
|
-
}
|
|
477
|
+
Object.keys(value.initial.value).forEach((key) => {
|
|
478
|
+
props[key] = value.initial.value[key];
|
|
479
|
+
value.viewsRef.add(this);
|
|
452
480
|
});
|
|
453
481
|
} else if (value instanceof AnimatedEvent) {
|
|
454
482
|
// we cannot filter out event listeners completely as some components
|
|
@@ -470,7 +498,9 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
470
498
|
props[key] = dummyListener;
|
|
471
499
|
}
|
|
472
500
|
} else if (!(value instanceof AnimatedNode)) {
|
|
473
|
-
|
|
501
|
+
if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {
|
|
502
|
+
props[key] = value;
|
|
503
|
+
}
|
|
474
504
|
} else if (value instanceof AnimatedValue) {
|
|
475
505
|
// 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
|
|
476
506
|
// to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.
|
|
@@ -482,10 +512,14 @@ export default function createAnimatedComponent(Component, options = {}) {
|
|
|
482
512
|
|
|
483
513
|
render() {
|
|
484
514
|
const props = this._filterNonAnimatedProps(this.props);
|
|
485
|
-
if (
|
|
515
|
+
if (isJest()) {
|
|
486
516
|
props.animatedStyle = this.animatedStyle;
|
|
487
517
|
}
|
|
488
518
|
|
|
519
|
+
if (this._isFirstRender) {
|
|
520
|
+
this._isFirstRender = false;
|
|
521
|
+
}
|
|
522
|
+
|
|
489
523
|
const platformProps = Platform.select({
|
|
490
524
|
web: {},
|
|
491
525
|
default: { collapsable: false },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { val } from '../val';
|
|
2
2
|
import AnimatedNode from './AnimatedNode';
|
|
3
|
-
import invariant from '
|
|
3
|
+
import invariant from 'invariant';
|
|
4
4
|
|
|
5
5
|
// These values are established by empiricism with tests (tradeoff: performance VS precision)
|
|
6
6
|
var NEWTON_ITERATIONS = 4;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';
|
|
2
2
|
import { adapt } from './AnimatedBlock';
|
|
3
3
|
import { val } from '../val';
|
|
4
|
-
import invariant from '
|
|
4
|
+
import invariant from 'invariant';
|
|
5
5
|
|
|
6
6
|
class AnimatedCallFunc extends AnimatedNode {
|
|
7
7
|
_previousCallID;
|
|
@@ -5,7 +5,7 @@ import AnimatedNode from './AnimatedNode';
|
|
|
5
5
|
import InternalAnimatedValue from './AnimatedValue';
|
|
6
6
|
import { createAnimatedAlways } from './AnimatedAlways';
|
|
7
7
|
|
|
8
|
-
import invariant from '
|
|
8
|
+
import invariant from 'invariant';
|
|
9
9
|
import createEventObjectProxyPolyfill from './createEventObjectProxyPolyfill';
|
|
10
10
|
|
|
11
11
|
function sanitizeArgMapping(argMapping) {
|
|
@@ -2,7 +2,7 @@ import AnimatedNode from './AnimatedNode';
|
|
|
2
2
|
import { createAnimatedCallFunc } from './AnimatedCallFunc';
|
|
3
3
|
import { createAnimatedParam } from './AnimatedParam';
|
|
4
4
|
import { val } from '../val';
|
|
5
|
-
import invariant from '
|
|
5
|
+
import invariant from 'invariant';
|
|
6
6
|
|
|
7
7
|
class AnimatedFunction extends AnimatedNode {
|
|
8
8
|
_what;
|
|
@@ -4,8 +4,8 @@ import AnimatedNode from './AnimatedNode';
|
|
|
4
4
|
import AnimatedEvent from './AnimatedEvent';
|
|
5
5
|
import { createOrReuseStyleNode } from './AnimatedStyle';
|
|
6
6
|
|
|
7
|
-
import invariant from '
|
|
8
|
-
import deepEqual from '
|
|
7
|
+
import invariant from 'invariant';
|
|
8
|
+
import deepEqual from 'lodash.isequal';
|
|
9
9
|
import { val } from '../val';
|
|
10
10
|
|
|
11
11
|
function sanitizeProps(inputProps) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import AnimatedNode from './AnimatedNode';
|
|
2
2
|
import AnimatedClock from './AnimatedClock';
|
|
3
3
|
import { AnimatedParam } from './AnimatedParam';
|
|
4
|
-
import invariant from '
|
|
4
|
+
import invariant from 'invariant';
|
|
5
5
|
|
|
6
6
|
class AnimatedStartClock extends AnimatedNode {
|
|
7
7
|
_clockNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import AnimatedNode from './AnimatedNode';
|
|
2
2
|
import AnimatedClock from './AnimatedClock';
|
|
3
3
|
import { AnimatedParam } from './AnimatedParam';
|
|
4
|
-
import invariant from '
|
|
4
|
+
import invariant from 'invariant';
|
|
5
5
|
|
|
6
6
|
class AnimatedStopClock extends AnimatedNode {
|
|
7
7
|
_clockNode;
|
|
@@ -3,7 +3,7 @@ import { StyleSheet } from 'react-native';
|
|
|
3
3
|
import AnimatedNode from './AnimatedNode';
|
|
4
4
|
import { createOrReuseTransformNode } from './AnimatedTransform';
|
|
5
5
|
|
|
6
|
-
import deepEqual from '
|
|
6
|
+
import deepEqual from 'lodash.isequal';
|
|
7
7
|
|
|
8
8
|
function sanitizeStyle(inputStyle) {
|
|
9
9
|
let style;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Animated from '../../Animated';
|
|
3
|
+
|
|
4
|
+
import renderer from 'react-test-renderer';
|
|
5
|
+
|
|
6
|
+
jest.mock('../../ReanimatedEventEmitter');
|
|
7
|
+
jest.mock('../../ReanimatedModule');
|
|
8
|
+
jest.mock('../../reanimated2/NativeReanimated');
|
|
9
|
+
|
|
10
|
+
describe('Core Animated components', () => {
|
|
11
|
+
xit('fails if something other then a node or function that returns a node is passed to Animated.Code exec prop', () => {
|
|
12
|
+
console.error = jest.fn();
|
|
13
|
+
|
|
14
|
+
expect(() =>
|
|
15
|
+
renderer.create(<Animated.Code exec="not a node" />)
|
|
16
|
+
).toThrowError(
|
|
17
|
+
"<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node."
|
|
18
|
+
);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
xit('fails if something other then a node or function that returns a node is passed to Animated.Code children', () => {
|
|
22
|
+
console.error = jest.fn();
|
|
23
|
+
|
|
24
|
+
expect(() =>
|
|
25
|
+
renderer.create(<Animated.Code>not a node</Animated.Code>)
|
|
26
|
+
).toThrowError(
|
|
27
|
+
"<Animated.Code /> expects the 'exec' prop or children to be an animated node or a function returning an animated node."
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import AnimatedNode from './AnimatedNode';
|
|
2
2
|
import { val } from '../val';
|
|
3
3
|
import ReanimatedModule from '../../ReanimatedModule';
|
|
4
|
-
import invariant from '
|
|
4
|
+
import invariant from 'invariant';
|
|
5
5
|
|
|
6
6
|
function sanitizeValue(value) {
|
|
7
7
|
return value === null || value === undefined || typeof value === 'string'
|
|
@@ -2,7 +2,7 @@ import AnimatedNode from '../AnimatedNode';
|
|
|
2
2
|
import AnimatedEvent from '../AnimatedEvent';
|
|
3
3
|
import AnimatedStyle, { createOrReuseStyleNode } from '../AnimatedStyle';
|
|
4
4
|
|
|
5
|
-
import deepEqual from '
|
|
5
|
+
import deepEqual from 'lodash.isequal';
|
|
6
6
|
|
|
7
7
|
// This file has been mocked as react-native's `findNodeHandle` is returning undefined value;
|
|
8
8
|
// and I became easier to mock whole this file instead of mocking RN
|
|
@@ -22,7 +22,7 @@ function call(...args) {
|
|
|
22
22
|
// the UI thread. We keep separate cache of Regexes for UI and JS using the below
|
|
23
23
|
// objects, then pick the right cache in getMatchers() method.
|
|
24
24
|
const jsCachedMatchers = {};
|
|
25
|
-
const uiCachedMatchers = !isConfigured() ?
|
|
25
|
+
const uiCachedMatchers = !isConfigured() ? {} : makeRemote({});
|
|
26
26
|
function getMatchers() {
|
|
27
27
|
'worklet';
|
|
28
28
|
const cachedMatchers = _WORKLET
|
|
@@ -270,6 +270,7 @@ const names = !isConfigured()
|
|
|
270
270
|
});
|
|
271
271
|
function normalizeColor(color) {
|
|
272
272
|
'worklet';
|
|
273
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
273
274
|
if (typeof color === 'number') {
|
|
274
275
|
if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {
|
|
275
276
|
return color;
|
|
@@ -282,13 +283,13 @@ function normalizeColor(color) {
|
|
|
282
283
|
const matchers = getMatchers();
|
|
283
284
|
let match;
|
|
284
285
|
// Ordered based on occurrences on Facebook codebase
|
|
285
|
-
if ((match = matchers.hex6.exec(color))) {
|
|
286
|
+
if ((match = (_a = matchers === null || matchers === void 0 ? void 0 : matchers.hex6) === null || _a === void 0 ? void 0 : _a.exec(color))) {
|
|
286
287
|
return Number.parseInt(match[1] + 'ff', 16) >>> 0;
|
|
287
288
|
}
|
|
288
289
|
if (names[color] !== undefined) {
|
|
289
290
|
return names[color];
|
|
290
291
|
}
|
|
291
|
-
if ((match = matchers.rgb.exec(color))) {
|
|
292
|
+
if ((match = (_b = matchers === null || matchers === void 0 ? void 0 : matchers.rgb) === null || _b === void 0 ? void 0 : _b.exec(color))) {
|
|
292
293
|
return (
|
|
293
294
|
// b
|
|
294
295
|
((parse255(match[1]) << 24) | // r
|
|
@@ -297,7 +298,7 @@ function normalizeColor(color) {
|
|
|
297
298
|
0x000000ff) >>> // a
|
|
298
299
|
0);
|
|
299
300
|
}
|
|
300
|
-
if ((match = matchers.rgba.exec(color))) {
|
|
301
|
+
if ((match = (_c = matchers === null || matchers === void 0 ? void 0 : matchers.rgba) === null || _c === void 0 ? void 0 : _c.exec(color))) {
|
|
301
302
|
return (
|
|
302
303
|
// b
|
|
303
304
|
((parse255(match[1]) << 24) | // r
|
|
@@ -306,7 +307,7 @@ function normalizeColor(color) {
|
|
|
306
307
|
parse1(match[4])) >>> // a
|
|
307
308
|
0);
|
|
308
309
|
}
|
|
309
|
-
if ((match = matchers.hex3.exec(color))) {
|
|
310
|
+
if ((match = (_d = matchers === null || matchers === void 0 ? void 0 : matchers.hex3) === null || _d === void 0 ? void 0 : _d.exec(color))) {
|
|
310
311
|
return (Number.parseInt(match[1] +
|
|
311
312
|
match[1] + // r
|
|
312
313
|
match[2] +
|
|
@@ -317,10 +318,10 @@ function normalizeColor(color) {
|
|
|
317
318
|
16) >>> 0);
|
|
318
319
|
}
|
|
319
320
|
// https://drafts.csswg.org/css-color-4/#hex-notation
|
|
320
|
-
if ((match = matchers.hex8.exec(color))) {
|
|
321
|
+
if ((match = (_e = matchers === null || matchers === void 0 ? void 0 : matchers.hex8) === null || _e === void 0 ? void 0 : _e.exec(color))) {
|
|
321
322
|
return Number.parseInt(match[1], 16) >>> 0;
|
|
322
323
|
}
|
|
323
|
-
if ((match = matchers.hex4.exec(color))) {
|
|
324
|
+
if ((match = (_f = matchers === null || matchers === void 0 ? void 0 : matchers.hex4) === null || _f === void 0 ? void 0 : _f.exec(color))) {
|
|
324
325
|
return (Number.parseInt(match[1] +
|
|
325
326
|
match[1] + // r
|
|
326
327
|
match[2] +
|
|
@@ -331,7 +332,7 @@ function normalizeColor(color) {
|
|
|
331
332
|
match[4], // a
|
|
332
333
|
16) >>> 0);
|
|
333
334
|
}
|
|
334
|
-
if ((match = matchers.hsl.exec(color))) {
|
|
335
|
+
if ((match = (_g = matchers === null || matchers === void 0 ? void 0 : matchers.hsl) === null || _g === void 0 ? void 0 : _g.exec(color))) {
|
|
335
336
|
return ((hslToRgb(parse360(match[1]), // h
|
|
336
337
|
parsePercentage(match[2]), // s
|
|
337
338
|
parsePercentage(match[3]) // l
|
|
@@ -339,7 +340,7 @@ function normalizeColor(color) {
|
|
|
339
340
|
0x000000ff) >>> // a
|
|
340
341
|
0);
|
|
341
342
|
}
|
|
342
|
-
if ((match = matchers.hsla.exec(color))) {
|
|
343
|
+
if ((match = (_h = matchers === null || matchers === void 0 ? void 0 : matchers.hsla) === null || _h === void 0 ? void 0 : _h.exec(color))) {
|
|
343
344
|
return ((hslToRgb(parse360(match[1]), // h
|
|
344
345
|
parsePercentage(match[2]), // s
|
|
345
346
|
parsePercentage(match[3]) // l
|
|
@@ -551,9 +552,11 @@ const getInterpolateCacheRGBA = (colors) => {
|
|
|
551
552
|
const g = [];
|
|
552
553
|
const b = [];
|
|
553
554
|
const a = [];
|
|
554
|
-
for (
|
|
555
|
+
for (let i = 0; i < colors.length; ++i) {
|
|
556
|
+
const color = colors[i];
|
|
555
557
|
const proocessedColor = processColor(color);
|
|
556
|
-
if
|
|
558
|
+
// explicit check in case if processedColor is 0
|
|
559
|
+
if (proocessedColor !== null && proocessedColor !== undefined) {
|
|
557
560
|
r.push(red(proocessedColor));
|
|
558
561
|
g.push(green(proocessedColor));
|
|
559
562
|
b.push(blue(proocessedColor));
|
|
@@ -583,7 +586,8 @@ const getInterpolateCacheHSV = (colors) => {
|
|
|
583
586
|
const h = [];
|
|
584
587
|
const s = [];
|
|
585
588
|
const v = [];
|
|
586
|
-
for (
|
|
589
|
+
for (let i = 0; i < colors.length; ++i) {
|
|
590
|
+
const color = colors[i];
|
|
587
591
|
const proocessedColor = RGBtoHSV(processColor(color));
|
|
588
592
|
if (proocessedColor) {
|
|
589
593
|
h.push(proocessedColor.h);
|
|
@@ -1,22 +1,11 @@
|
|
|
1
|
-
/* global _WORKLET _measure _scrollTo */
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3
|
-
// @ts-nocheck
|
|
4
1
|
import { findNodeHandle } from 'react-native';
|
|
2
|
+
import { isChromeDebugger } from './PlatformChecker';
|
|
5
3
|
export function getTag(view) {
|
|
6
4
|
return findNodeHandle(view);
|
|
7
5
|
}
|
|
8
|
-
/**
|
|
9
|
-
* fields that can be accessed:
|
|
10
|
-
* x
|
|
11
|
-
* y
|
|
12
|
-
* width
|
|
13
|
-
* height
|
|
14
|
-
* pageX
|
|
15
|
-
* pageY
|
|
16
|
-
*/
|
|
17
6
|
export function measure(animatedRef) {
|
|
18
7
|
'worklet';
|
|
19
|
-
if (!_WORKLET) {
|
|
8
|
+
if (!_WORKLET && !isChromeDebugger()) {
|
|
20
9
|
throw new Error('(measure) method cannot be used on RN side!');
|
|
21
10
|
}
|
|
22
11
|
const viewTag = animatedRef();
|
|
@@ -28,7 +17,7 @@ export function measure(animatedRef) {
|
|
|
28
17
|
}
|
|
29
18
|
export function scrollTo(animatedRef, x, y, animated) {
|
|
30
19
|
'worklet';
|
|
31
|
-
if (!_WORKLET) {
|
|
20
|
+
if (!_WORKLET && !isChromeDebugger()) {
|
|
32
21
|
return;
|
|
33
22
|
}
|
|
34
23
|
const viewTag = animatedRef();
|
|
@@ -1,39 +1,34 @@
|
|
|
1
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { Platform } from 'react-native';
|
|
4
1
|
const InnerNativeModule = global.__reanimatedModuleProxy;
|
|
5
|
-
|
|
6
|
-
native
|
|
7
|
-
|
|
2
|
+
export class NativeReanimated {
|
|
3
|
+
constructor(native = true) {
|
|
4
|
+
this.native = native;
|
|
5
|
+
this.useOnlyV1 = InnerNativeModule === null;
|
|
6
|
+
}
|
|
8
7
|
installCoreFunctions(valueSetter) {
|
|
9
8
|
return InnerNativeModule.installCoreFunctions(valueSetter);
|
|
10
|
-
}
|
|
9
|
+
}
|
|
11
10
|
makeShareable(value) {
|
|
12
11
|
return InnerNativeModule.makeShareable(value);
|
|
13
|
-
}
|
|
12
|
+
}
|
|
14
13
|
makeMutable(value) {
|
|
15
14
|
return InnerNativeModule.makeMutable(value);
|
|
16
|
-
}
|
|
17
|
-
makeRemote(object) {
|
|
15
|
+
}
|
|
16
|
+
makeRemote(object = {}) {
|
|
18
17
|
return InnerNativeModule.makeRemote(object);
|
|
19
|
-
}
|
|
20
|
-
startMapper(mapper, inputs = [], outputs = [], updater,
|
|
21
|
-
return InnerNativeModule.startMapper(mapper, inputs, outputs, updater,
|
|
22
|
-
}
|
|
18
|
+
}
|
|
19
|
+
startMapper(mapper, inputs = [], outputs = [], updater, viewDescriptors) {
|
|
20
|
+
return InnerNativeModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);
|
|
21
|
+
}
|
|
23
22
|
stopMapper(mapperId) {
|
|
24
23
|
return InnerNativeModule.stopMapper(mapperId);
|
|
25
|
-
}
|
|
24
|
+
}
|
|
26
25
|
registerEventHandler(eventHash, eventHandler) {
|
|
27
26
|
return InnerNativeModule.registerEventHandler(eventHash, eventHandler);
|
|
28
|
-
}
|
|
29
|
-
unregisterEventHandler(
|
|
30
|
-
return InnerNativeModule.unregisterEventHandler(
|
|
31
|
-
}
|
|
27
|
+
}
|
|
28
|
+
unregisterEventHandler(id) {
|
|
29
|
+
return InnerNativeModule.unregisterEventHandler(id);
|
|
30
|
+
}
|
|
32
31
|
getViewProp(viewTag, propName, callback) {
|
|
33
32
|
return InnerNativeModule.getViewProp(viewTag, propName, callback);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
if (NativeReanimated.useOnlyV1 && Platform.OS === 'android') {
|
|
37
|
-
console.warn(`If you want to use Reanimated 2 then go through our installation steps https://docs.swmansion.com/react-native-reanimated/docs/installation`);
|
|
33
|
+
}
|
|
38
34
|
}
|
|
39
|
-
export default NativeReanimated;
|