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.
Files changed (328) hide show
  1. package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +15 -8
  2. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +170 -166
  3. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +36 -34
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +13 -6
  5. package/Common/cpp/Registries/MapperRegistry.cpp +19 -15
  6. package/Common/cpp/Registries/WorkletsCache.cpp +19 -9
  7. package/Common/cpp/SharedItems/FrozenObject.cpp +19 -8
  8. package/Common/cpp/SharedItems/MutableValue.cpp +38 -25
  9. package/Common/cpp/SharedItems/MutableValueSetterProxy.cpp +11 -7
  10. package/Common/cpp/SharedItems/RemoteObject.cpp +9 -5
  11. package/Common/cpp/SharedItems/ShareableValue.cpp +216 -143
  12. package/Common/cpp/Tools/JSIStoreValueUser.cpp +36 -24
  13. package/Common/cpp/Tools/Mapper.cpp +41 -29
  14. package/Common/cpp/Tools/RuntimeDecorator.cpp +103 -84
  15. package/Common/cpp/Tools/Scheduler.cpp +14 -6
  16. package/Common/cpp/Tools/WorkletEventHandler.cpp +1 -1
  17. package/Common/cpp/headers/LayoutAnimations/LayoutAnimationsProxy.h +12 -11
  18. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +45 -34
  19. package/Common/cpp/headers/NativeModules/NativeReanimatedModuleSpec.h +28 -16
  20. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +14 -8
  21. package/Common/cpp/headers/Registries/MapperRegistry.h +4 -4
  22. package/Common/cpp/headers/Registries/WorkletsCache.h +9 -7
  23. package/Common/cpp/headers/SharedItems/FrozenObject.h +15 -11
  24. package/Common/cpp/headers/SharedItems/HostFunctionHandler.h +6 -4
  25. package/Common/cpp/headers/SharedItems/MutableValue.h +21 -12
  26. package/Common/cpp/headers/SharedItems/MutableValueSetterProxy.h +10 -7
  27. package/Common/cpp/headers/SharedItems/RemoteObject.h +16 -8
  28. package/Common/cpp/headers/SharedItems/RuntimeManager.h +39 -21
  29. package/Common/cpp/headers/SharedItems/ShareableValue.h +31 -27
  30. package/Common/cpp/headers/SharedItems/SharedParent.h +7 -4
  31. package/Common/cpp/headers/SharedItems/ValueWrapper.h +80 -61
  32. package/Common/cpp/headers/SpecTools/ErrorHandler.h +17 -19
  33. package/Common/cpp/headers/Tools/JSIStoreValueUser.h +18 -13
  34. package/Common/cpp/headers/Tools/Mapper.h +24 -18
  35. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +12 -7
  36. package/Common/cpp/headers/Tools/ReanimatedHiddenHeaders.h +7 -7
  37. package/Common/cpp/headers/Tools/RuntimeDecorator.h +29 -23
  38. package/Common/cpp/headers/Tools/Scheduler.h +28 -33
  39. package/Common/cpp/headers/Tools/WorkletEventHandler.h +9 -7
  40. package/Common/cpp/hidden_headers/Logger.h +14 -14
  41. package/Common/cpp/hidden_headers/LoggerInterface.h +8 -9
  42. package/Common/cpp/hidden_headers/SpeedChecker.h +7 -8
  43. package/README.md +1 -1
  44. package/RNReanimated.podspec +4 -4
  45. package/android/build.gradle +80 -3
  46. package/android/react-native-reanimated-63-hermes.aar +0 -0
  47. package/android/react-native-reanimated-63-jsc.aar +0 -0
  48. package/android/react-native-reanimated-64-hermes.aar +0 -0
  49. package/android/react-native-reanimated-64-jsc.aar +0 -0
  50. package/android/react-native-reanimated-65-hermes.aar +0 -0
  51. package/android/react-native-reanimated-65-jsc.aar +0 -0
  52. package/android/react-native-reanimated-66-hermes.aar +0 -0
  53. package/android/react-native-reanimated-66-jsc.aar +0 -0
  54. package/ios/LayoutReanimation/REAAnimationsManager.h +19 -10
  55. package/ios/LayoutReanimation/REAAnimationsManager.m +195 -200
  56. package/ios/LayoutReanimation/REASnapshot.h +13 -0
  57. package/ios/LayoutReanimation/REASnapshot.m +29 -0
  58. package/ios/LayoutReanimation/REAUIManager.h +16 -0
  59. package/ios/LayoutReanimation/REAUIManager.mm +348 -0
  60. package/ios/Nodes/REAAlwaysNode.m +14 -15
  61. package/ios/Nodes/REABezierNode.m +8 -7
  62. package/ios/Nodes/REABlockNode.m +1 -1
  63. package/ios/Nodes/REACallFuncNode.h +0 -1
  64. package/ios/Nodes/REACallFuncNode.m +10 -8
  65. package/ios/Nodes/REAClockNodes.m +22 -20
  66. package/ios/Nodes/REAConcatNode.h +0 -1
  67. package/ios/Nodes/REAConcatNode.m +2 -2
  68. package/ios/Nodes/REACondNode.m +7 -5
  69. package/ios/Nodes/READebugNode.m +5 -4
  70. package/ios/Nodes/REAEventNode.m +1 -1
  71. package/ios/Nodes/REAFunctionNode.h +0 -1
  72. package/ios/Nodes/REAFunctionNode.m +2 -2
  73. package/ios/Nodes/REAJSCallNode.m +4 -5
  74. package/ios/Nodes/REANode.h +3 -4
  75. package/ios/Nodes/REANode.m +9 -11
  76. package/ios/Nodes/REAOperatorNode.m +68 -67
  77. package/ios/Nodes/REAParamNode.h +1 -3
  78. package/ios/Nodes/REAParamNode.m +15 -17
  79. package/ios/Nodes/REAPropsNode.h +1 -3
  80. package/ios/Nodes/REAPropsNode.m +19 -22
  81. package/ios/Nodes/REASetNode.h +0 -1
  82. package/ios/Nodes/REASetNode.m +7 -5
  83. package/ios/Nodes/REAStyleNode.h +0 -1
  84. package/ios/Nodes/REAStyleNode.m +2 -4
  85. package/ios/Nodes/REATransformNode.h +0 -1
  86. package/ios/Nodes/REATransformNode.m +3 -5
  87. package/ios/Nodes/REAValueNode.m +5 -7
  88. package/ios/REAEventDispatcher.m +3 -3
  89. package/ios/REAModule.h +0 -2
  90. package/ios/REAModule.m +29 -40
  91. package/ios/REANodesManager.h +11 -19
  92. package/ios/REANodesManager.m +105 -130
  93. package/ios/REAUtils.h +5 -3
  94. package/ios/Transitioning/RCTConvert+REATransition.m +45 -29
  95. package/ios/Transitioning/REAAllTransitions.h +2 -2
  96. package/ios/Transitioning/REAAllTransitions.m +14 -25
  97. package/ios/Transitioning/REATransition.h +8 -7
  98. package/ios/Transitioning/REATransition.m +19 -16
  99. package/ios/Transitioning/REATransitionAnimation.h +1 -1
  100. package/ios/Transitioning/REATransitionAnimation.m +2 -3
  101. package/ios/Transitioning/REATransitionManager.m +3 -3
  102. package/ios/native/NativeMethods.h +15 -5
  103. package/ios/native/NativeProxy.h +4 -3
  104. package/ios/native/NativeProxy.mm +19 -5
  105. package/ios/native/REAIOSErrorHandler.h +13 -10
  106. package/ios/native/REAIOSLogger.h +8 -8
  107. package/ios/native/REAIOSScheduler.h +5 -5
  108. package/ios/native/REAIOSScheduler.mm +7 -5
  109. package/ios/native/REAInitializer.h +37 -0
  110. package/ios/native/REAInitializer.mm +63 -0
  111. package/ios/native/UIResponder+Reanimated.mm +9 -48
  112. package/lib/ConfigHelper.js +1 -0
  113. package/lib/ReanimatedModule.native.js +10 -2
  114. package/lib/createAnimatedComponent.js +64 -30
  115. package/lib/reanimated1/core/AnimatedAlways.js +1 -1
  116. package/lib/reanimated1/core/AnimatedBezier.js +1 -1
  117. package/lib/reanimated1/core/AnimatedBlock.js +1 -1
  118. package/lib/reanimated1/core/AnimatedCall.js +1 -1
  119. package/lib/reanimated1/core/AnimatedCallFunc.js +1 -1
  120. package/lib/reanimated1/core/AnimatedConcat.js +1 -1
  121. package/lib/reanimated1/core/AnimatedCond.js +1 -1
  122. package/lib/reanimated1/core/AnimatedDebug.js +1 -1
  123. package/lib/reanimated1/core/AnimatedEvent.js +1 -1
  124. package/lib/reanimated1/core/AnimatedFunction.js +1 -1
  125. package/lib/reanimated1/core/AnimatedOperator.js +1 -1
  126. package/lib/reanimated1/core/AnimatedParam.js +1 -1
  127. package/lib/reanimated1/core/AnimatedProps.js +2 -2
  128. package/lib/reanimated1/core/AnimatedSet.js +1 -1
  129. package/lib/reanimated1/core/AnimatedStartClock.js +1 -1
  130. package/lib/reanimated1/core/AnimatedStopClock.js +1 -1
  131. package/lib/reanimated1/core/AnimatedStyle.js +1 -1
  132. package/lib/reanimated1/core/AnimatedTransform.js +1 -1
  133. package/lib/reanimated1/core/Core.test.js +30 -0
  134. package/lib/reanimated1/core/InternalAnimatedValue.js +1 -1
  135. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
  136. package/lib/reanimated1/derived/interpolate.js +1 -1
  137. package/lib/reanimated2/Colors.js +16 -12
  138. package/lib/reanimated2/NativeMethods.js +3 -14
  139. package/lib/reanimated2/{NativeReanimated.native.js → NativeReanimated/NativeReanimated.js} +19 -24
  140. package/lib/reanimated2/NativeReanimated/index.js +15 -0
  141. package/lib/reanimated2/PlatformChecker.js +16 -0
  142. package/lib/reanimated2/PropAdapters.js +14 -4
  143. package/lib/reanimated2/UpdateProps.js +14 -11
  144. package/lib/reanimated2/ViewDescriptorsSet.js +73 -0
  145. package/lib/reanimated2/WorkletEventHandler.js +15 -13
  146. package/lib/reanimated2/animation/commonTypes.js +1 -0
  147. package/lib/reanimated2/animation/decay.js +71 -0
  148. package/lib/reanimated2/animation/delay.js +64 -0
  149. package/lib/reanimated2/animation/index.js +8 -0
  150. package/lib/reanimated2/animation/repeat.js +69 -0
  151. package/lib/reanimated2/animation/sequence.js +72 -0
  152. package/lib/reanimated2/animation/spring.js +101 -0
  153. package/lib/reanimated2/animation/styleAnimation.js +166 -0
  154. package/lib/reanimated2/animation/timing.js +64 -0
  155. package/lib/reanimated2/animation/util.js +157 -0
  156. package/lib/reanimated2/commonTypes.js +1 -0
  157. package/lib/reanimated2/core.js +35 -39
  158. package/lib/reanimated2/globals.d.ts +47 -1
  159. package/lib/reanimated2/hook/Hooks.js +9 -0
  160. package/lib/reanimated2/hook/commonTypes.js +1 -0
  161. package/lib/reanimated2/hook/index.js +8 -0
  162. package/lib/reanimated2/hook/useAnimatedGestureHandler.js +50 -0
  163. package/lib/reanimated2/hook/useAnimatedReaction.js +37 -0
  164. package/lib/reanimated2/hook/useAnimatedRef.js +25 -0
  165. package/lib/reanimated2/hook/useAnimatedScrollHandler.js +41 -0
  166. package/lib/reanimated2/hook/useAnimatedStyle.js +376 -0
  167. package/lib/reanimated2/hook/useDerivedValue.js +36 -0
  168. package/lib/reanimated2/hook/useSharedValue.js +17 -0
  169. package/lib/reanimated2/hook/utils.js +175 -0
  170. package/lib/reanimated2/index.js +3 -2
  171. package/lib/reanimated2/interpolation.js +95 -86
  172. package/lib/reanimated2/jestUtils.js +0 -12
  173. package/lib/reanimated2/js-reanimated/JSReanimated.js +9 -10
  174. package/lib/reanimated2/js-reanimated/index.js +57 -1
  175. package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +58 -0
  176. package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +69 -0
  177. package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +125 -0
  178. package/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +193 -0
  179. package/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +1 -0
  180. package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +3 -0
  181. package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +325 -207
  182. package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +36 -0
  183. package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +235 -187
  184. package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +327 -269
  185. package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +146 -0
  186. package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +85 -0
  187. package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +119 -0
  188. package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +289 -0
  189. package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +159 -121
  190. package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +83 -65
  191. package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +371 -277
  192. package/lib/reanimated2/layoutReanimation/defaultAnimations/index.js +4 -0
  193. package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +78 -0
  194. package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +128 -0
  195. package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
  196. package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
  197. package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
  198. package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
  199. package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
  200. package/lib/reanimated2/layoutReanimation/index.js +3 -2
  201. package/lib/reanimated2/platform-specific/RNRenderer.web.js +2 -0
  202. package/lib/reanimated2/utils.js +9 -0
  203. package/libSo/fbjni/jni/arm64-v8a/libfbjni.so +0 -0
  204. package/libSo/fbjni/jni/armeabi-v7a/libfbjni.so +0 -0
  205. package/libSo/fbjni/jni/x86/libfbjni.so +0 -0
  206. package/libSo/fbjni/jni/x86_64/libfbjni.so +0 -0
  207. package/package.json +21 -10
  208. package/plugin.js +244 -85
  209. package/react-native-reanimated.d.ts +531 -453
  210. package/src/ConfigHelper.js +1 -0
  211. package/src/ReanimatedModule.native.js +10 -2
  212. package/src/createAnimatedComponent.js +64 -30
  213. package/src/reanimated1/core/AnimatedAlways.js +1 -1
  214. package/src/reanimated1/core/AnimatedBezier.js +1 -1
  215. package/src/reanimated1/core/AnimatedBlock.js +1 -1
  216. package/src/reanimated1/core/AnimatedCall.js +1 -1
  217. package/src/reanimated1/core/AnimatedCallFunc.js +1 -1
  218. package/src/reanimated1/core/AnimatedConcat.js +1 -1
  219. package/src/reanimated1/core/AnimatedCond.js +1 -1
  220. package/src/reanimated1/core/AnimatedDebug.js +1 -1
  221. package/src/reanimated1/core/AnimatedEvent.js +1 -1
  222. package/src/reanimated1/core/AnimatedFunction.js +1 -1
  223. package/src/reanimated1/core/AnimatedOperator.js +1 -1
  224. package/src/reanimated1/core/AnimatedParam.js +1 -1
  225. package/src/reanimated1/core/AnimatedProps.js +2 -2
  226. package/src/reanimated1/core/AnimatedSet.js +1 -1
  227. package/src/reanimated1/core/AnimatedStartClock.js +1 -1
  228. package/src/reanimated1/core/AnimatedStopClock.js +1 -1
  229. package/src/reanimated1/core/AnimatedStyle.js +1 -1
  230. package/src/reanimated1/core/AnimatedTransform.js +1 -1
  231. package/src/reanimated1/core/Core.test.js +30 -0
  232. package/src/reanimated1/core/InternalAnimatedValue.js +1 -1
  233. package/src/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
  234. package/src/reanimated1/derived/interpolate.js +1 -1
  235. package/src/reanimated2/Colors.ts +30 -27
  236. package/src/reanimated2/Easing.ts +3 -1
  237. package/src/reanimated2/NativeMethods.ts +26 -16
  238. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +78 -0
  239. package/src/reanimated2/NativeReanimated/index.ts +18 -0
  240. package/src/reanimated2/PlatformChecker.ts +21 -0
  241. package/src/reanimated2/PropAdapters.ts +52 -34
  242. package/src/reanimated2/UpdateProps.ts +40 -20
  243. package/src/reanimated2/ViewDescriptorsSet.ts +108 -0
  244. package/src/reanimated2/WorkletEventHandler.ts +41 -23
  245. package/src/reanimated2/animation/commonTypes.ts +48 -0
  246. package/src/reanimated2/animation/decay.ts +141 -0
  247. package/src/reanimated2/animation/delay.ts +103 -0
  248. package/src/reanimated2/animation/index.ts +16 -0
  249. package/src/reanimated2/animation/repeat.ts +128 -0
  250. package/src/reanimated2/animation/sequence.ts +110 -0
  251. package/src/reanimated2/animation/spring.ts +165 -0
  252. package/src/reanimated2/animation/styleAnimation.ts +253 -0
  253. package/src/reanimated2/animation/timing.ts +109 -0
  254. package/src/reanimated2/animation/util.ts +242 -0
  255. package/src/reanimated2/commonTypes.ts +81 -0
  256. package/src/reanimated2/core.ts +128 -82
  257. package/src/reanimated2/globals.d.ts +47 -1
  258. package/src/reanimated2/hook/Hooks.ts +16 -0
  259. package/src/reanimated2/hook/commonTypes.ts +12 -0
  260. package/src/reanimated2/hook/index.ts +25 -0
  261. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +110 -0
  262. package/src/reanimated2/hook/useAnimatedReaction.ts +49 -0
  263. package/src/reanimated2/hook/useAnimatedRef.ts +34 -0
  264. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +83 -0
  265. package/src/reanimated2/hook/useAnimatedStyle.ts +538 -0
  266. package/src/reanimated2/hook/useDerivedValue.ts +48 -0
  267. package/src/reanimated2/hook/useSharedValue.ts +22 -0
  268. package/src/reanimated2/hook/utils.ts +259 -0
  269. package/src/reanimated2/index.ts +3 -2
  270. package/src/reanimated2/interpolation.ts +170 -101
  271. package/src/reanimated2/jestUtils.ts +0 -12
  272. package/src/reanimated2/js-reanimated/JSReanimated.ts +47 -22
  273. package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
  274. package/src/reanimated2/js-reanimated/index.ts +71 -0
  275. package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.tsx +62 -0
  276. package/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts +91 -0
  277. package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +169 -0
  278. package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +263 -0
  279. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +78 -0
  280. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +16 -0
  281. package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +243 -121
  282. package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +43 -0
  283. package/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts +95 -53
  284. package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +114 -64
  285. package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +179 -0
  286. package/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts +93 -0
  287. package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +132 -0
  288. package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +333 -0
  289. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +84 -50
  290. package/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts +41 -23
  291. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +234 -154
  292. package/src/reanimated2/layoutReanimation/defaultAnimations/index.ts +4 -0
  293. package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +104 -0
  294. package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +213 -0
  295. package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +60 -0
  296. package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +58 -0
  297. package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +41 -0
  298. package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +78 -0
  299. package/src/reanimated2/layoutReanimation/defaultTransitions/index.ts +6 -0
  300. package/src/reanimated2/layoutReanimation/index.ts +3 -2
  301. package/src/reanimated2/platform-specific/RNRenderer.web.ts +2 -0
  302. package/src/reanimated2/utils.ts +21 -0
  303. package/android/react-native-reanimated-62-hermes.aar +0 -0
  304. package/android/react-native-reanimated-62-jsc.aar +0 -0
  305. package/ios/LayoutReanimation/REAAnimationRootView.h +0 -12
  306. package/ios/LayoutReanimation/REAAnimationRootView.m +0 -16
  307. package/ios/LayoutReanimation/REAAnimationRootViewManager.h +0 -9
  308. package/ios/LayoutReanimation/REAAnimationRootViewManager.m +0 -49
  309. package/ios/LayoutReanimation/REAReactBatchObserver.h +0 -20
  310. package/ios/LayoutReanimation/REAReactBatchObserver.m +0 -125
  311. package/ios/LayoutReanimation/REASnapshooter.h +0 -19
  312. package/ios/LayoutReanimation/REASnapshooter.m +0 -64
  313. package/ios/LayoutReanimation/REAViewTraverser.h +0 -13
  314. package/ios/LayoutReanimation/REAViewTraverser.m +0 -40
  315. package/lib/reanimated2/Hooks.js +0 -732
  316. package/lib/reanimated2/NativeReanimated.js +0 -4
  317. package/lib/reanimated2/animations.js +0 -713
  318. package/lib/reanimated2/js-reanimated/index.web.js +0 -20
  319. package/lib/reanimated2/layoutReanimation/AnimatedRoot.js +0 -55
  320. package/lib/reanimated2/layoutReanimation/defaultAnimationsBuilder.js +0 -374
  321. package/src/reanimated2/Hooks.ts +0 -918
  322. package/src/reanimated2/NativeReanimated.native.ts +0 -61
  323. package/src/reanimated2/NativeReanimated.ts +0 -5
  324. package/src/reanimated2/animations.ts +0 -868
  325. package/src/reanimated2/js-reanimated/index.js +0 -0
  326. package/src/reanimated2/js-reanimated/index.web.ts +0 -29
  327. package/src/reanimated2/layoutReanimation/AnimatedRoot.tsx +0 -68
  328. package/src/reanimated2/layoutReanimation/defaultAnimationsBuilder.ts +0 -440
@@ -1,43 +1,55 @@
1
1
  #include "JSIStoreValueUser.h"
2
+ #include "RuntimeManager.h"
3
+ #ifdef ONANDROID
4
+ #include <AndroidScheduler.h>
5
+ #endif
2
6
 
3
7
  namespace reanimated {
4
8
 
5
- std::atomic<int> StoreUser::ctr;
6
- std::recursive_mutex StoreUser::storeMutex;
7
- std::unordered_map<int, std::vector<std::shared_ptr<jsi::Value>>> StoreUser::store;
8
-
9
9
  std::weak_ptr<jsi::Value> StoreUser::getWeakRef(jsi::Runtime &rt) {
10
- const std::lock_guard<std::recursive_mutex> lock(storeMutex);
11
- if (StoreUser::store.count(identifier) == 0) {
12
- StoreUser::store[identifier] = std::vector<std::shared_ptr<jsi::Value>>();
10
+ const std::lock_guard<std::recursive_mutex> lock(storeUserData->storeMutex);
11
+ if (storeUserData->store.count(identifier) == 0) {
12
+ storeUserData->store[identifier] =
13
+ std::vector<std::shared_ptr<jsi::Value>>();
13
14
  }
14
- std::shared_ptr<jsi::Value> sv = std::make_shared<jsi::Value>(rt, jsi::Value::undefined());
15
- StoreUser::store[identifier].push_back(sv);
16
-
15
+ std::shared_ptr<jsi::Value> sv =
16
+ std::make_shared<jsi::Value>(rt, jsi::Value::undefined());
17
+ storeUserData->store[identifier].push_back(sv);
18
+
17
19
  return sv;
18
20
  }
19
21
 
20
- StoreUser::StoreUser(std::shared_ptr<Scheduler> s): scheduler(s) {
21
- identifier = StoreUser::ctr++;
22
+ StoreUser::StoreUser(
23
+ std::shared_ptr<Scheduler> s,
24
+ RuntimeManager &runtimeManager)
25
+ : scheduler(s) {
26
+ storeUserData = runtimeManager.storeUserData;
27
+ identifier = storeUserData->ctr++;
22
28
  }
23
29
 
24
30
  StoreUser::~StoreUser() {
25
31
  int id = identifier;
26
32
  std::shared_ptr<Scheduler> strongScheduler = scheduler.lock();
27
33
  if (strongScheduler != nullptr) {
28
- strongScheduler->scheduleOnUI([id]() {
29
- const std::lock_guard<std::recursive_mutex> lock(storeMutex);
30
- if (StoreUser::store.count(id) > 0) {
31
- StoreUser::store.erase(id);
32
- }
34
+ std::shared_ptr<StaticStoreUser> sud = storeUserData;
35
+ #ifdef ONANDROID
36
+ jni::ThreadScope::WithClassLoader([&] {
37
+ strongScheduler->scheduleOnUI([id, sud]() {
38
+ const std::lock_guard<std::recursive_mutex> lock(sud->storeMutex);
39
+ if (sud->store.count(id) > 0) {
40
+ sud->store.erase(id);
41
+ }
42
+ });
33
43
  });
44
+ #else
45
+ strongScheduler->scheduleOnUI([id, sud]() {
46
+ const std::lock_guard<std::recursive_mutex> lock(sud->storeMutex);
47
+ if (sud->store.count(id) > 0) {
48
+ sud->store.erase(id);
49
+ }
50
+ });
51
+ #endif
34
52
  }
35
53
  }
36
54
 
37
-
38
- void StoreUser::clearStore() {
39
- const std::lock_guard<std::recursive_mutex> lock(storeMutex);
40
- StoreUser::store.clear();
41
- }
42
-
43
- }
55
+ } // namespace reanimated
@@ -1,32 +1,16 @@
1
1
  #include "Mapper.h"
2
- #include "SharedParent.h"
3
2
  #include "MutableValue.h"
3
+ #include "SharedParent.h"
4
4
 
5
5
  namespace reanimated {
6
6
 
7
- Mapper::Mapper(NativeReanimatedModule *module,
8
- unsigned long id,
9
- std::shared_ptr<jsi::Function> mapper,
10
- std::vector<std::shared_ptr<MutableValue>> inputs,
11
- std::vector<std::shared_ptr<MutableValue>> outputs,
12
- std::shared_ptr<ShareableValue> updater,
13
- const int viewTag,
14
- const std::string& viewName,
15
- const int optimalizationLvl):
16
- id(id),
17
- module(module),
18
- mapper(mapper),
19
- inputs(inputs),
20
- outputs(outputs),
21
- viewTag(viewTag),
22
- optimalizationLvl(optimalizationLvl)
23
- {
24
- jsi::Runtime* rt = module->runtime.get();
25
- this->viewName = jsi::Value(*rt, jsi::String::createFromUtf8(*rt, viewName));
26
- updateProps = &module->updaterFunction;
27
- userUpdater = std::make_shared<jsi::Function>(updater->getValue(*rt).asObject(*rt).asFunction(*rt));
28
-
29
-
7
+ Mapper::Mapper(
8
+ NativeReanimatedModule *module,
9
+ unsigned long id,
10
+ std::shared_ptr<jsi::Function> mapper,
11
+ std::vector<std::shared_ptr<MutableValue>> inputs,
12
+ std::vector<std::shared_ptr<MutableValue>> outputs)
13
+ : id(id), module(module), mapper(mapper), inputs(inputs), outputs(outputs) {
30
14
  auto markDirty = [this, module]() {
31
15
  this->dirty = true;
32
16
  module->maybeRequestRender();
@@ -38,12 +22,40 @@ optimalizationLvl(optimalizationLvl)
38
22
 
39
23
  void Mapper::execute(jsi::Runtime &rt) {
40
24
  dirty = false;
41
- if(optimalizationLvl == 0) {
42
- mapper->callWithThis(rt, *mapper);// call styleUpdater
25
+ if (optimalizationLvl == 0) {
26
+ mapper->callWithThis(rt, *mapper); // call styleUpdater
27
+ } else {
28
+ jsi::Object newStyle = userUpdater->call(rt).asObject(rt);
29
+ auto jsViewDescriptorArray = viewDescriptors->getValue(rt)
30
+ .getObject(rt)
31
+ .getProperty(rt, "value")
32
+ .asObject(rt)
33
+ .getArray(rt);
34
+ for (int i = 0; i < jsViewDescriptorArray.length(rt); ++i) {
35
+ auto jsViewDescriptor =
36
+ jsViewDescriptorArray.getValueAtIndex(rt, i).getObject(rt);
37
+ (*updateProps)(
38
+ rt,
39
+ (int)jsViewDescriptor.getProperty(rt, "tag").asNumber(),
40
+ jsViewDescriptor.getProperty(rt, "name"),
41
+ newStyle);
42
+ }
43
43
  }
44
- else {
45
- (*updateProps)(rt, viewTag, viewName, userUpdater->call(rt).asObject(rt));
44
+ }
45
+
46
+ void Mapper::enableFastMode(
47
+ const int optimalizationLvl,
48
+ const std::shared_ptr<ShareableValue> &updater,
49
+ const std::shared_ptr<ShareableValue> &jsViewDescriptors) {
50
+ if (optimalizationLvl == 0) {
51
+ return;
46
52
  }
53
+ viewDescriptors = jsViewDescriptors;
54
+ this->optimalizationLvl = optimalizationLvl;
55
+ updateProps = &module->updaterFunction;
56
+ jsi::Runtime *rt = module->runtime.get();
57
+ userUpdater = std::make_shared<jsi::Function>(
58
+ updater->getValue(*rt).asObject(*rt).asFunction(*rt));
47
59
  }
48
60
 
49
61
  Mapper::~Mapper() {
@@ -52,4 +64,4 @@ Mapper::~Mapper() {
52
64
  }
53
65
  }
54
66
 
55
- }
67
+ } // namespace reanimated
@@ -1,45 +1,53 @@
1
1
  #include "RuntimeDecorator.h"
2
- #include "ReanimatedHiddenHeaders.h"
3
- #include <unordered_map>
4
2
  #include <memory>
5
- #include "MutableValue.h"
3
+ #include <unordered_map>
6
4
  #include "LayoutAnimationsProxy.h"
5
+ #include "MutableValue.h"
6
+ #include "ReanimatedHiddenHeaders.h"
7
7
 
8
8
  namespace reanimated {
9
9
 
10
- std::unordered_map<RuntimePointer, RuntimeType> RuntimeDecorator::runtimeRegistry;
11
- void RuntimeDecorator::registerRuntime(jsi::Runtime *runtime, RuntimeType runtimeType) {
12
- runtimeRegistry.insert({ runtime, runtimeType });
10
+ std::unordered_map<RuntimePointer, RuntimeType>
11
+ RuntimeDecorator::runtimeRegistry;
12
+ void RuntimeDecorator::registerRuntime(
13
+ jsi::Runtime *runtime,
14
+ RuntimeType runtimeType) {
15
+ runtimeRegistry.insert({runtime, runtimeType});
13
16
  }
14
17
 
15
- void RuntimeDecorator::decorateRuntime(jsi::Runtime &rt, const std::string &label) {
16
- // This property will be used to find out if a runtime is a custom worklet runtime (e.g. UI, VisionCamera frame processor, ...)
18
+ void RuntimeDecorator::decorateRuntime(
19
+ jsi::Runtime &rt,
20
+ const std::string &label) {
21
+ // This property will be used to find out if a runtime is a custom worklet
22
+ // runtime (e.g. UI, VisionCamera frame processor, ...)
17
23
  rt.global().setProperty(rt, "_WORKLET", jsi::Value(true));
18
24
  // This property will be used for debugging
19
- rt.global().setProperty(rt, "_LABEL", jsi::String::createFromAscii(rt, label));
25
+ rt.global().setProperty(
26
+ rt, "_LABEL", jsi::String::createFromAscii(rt, label));
20
27
 
21
28
  jsi::Object dummyGlobal(rt);
22
- auto dummyFunction = [](
23
- jsi::Runtime &rt,
29
+ auto dummyFunction = [](jsi::Runtime &rt,
24
30
  const jsi::Value &thisValue,
25
31
  const jsi::Value *args,
26
- size_t count
27
- ) -> jsi::Value {
32
+ size_t count) -> jsi::Value {
28
33
  return jsi::Value::undefined();
29
34
  };
30
- jsi::Function __reanimatedWorkletInit = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "__reanimatedWorkletInit"), 1, dummyFunction);
31
-
32
- dummyGlobal.setProperty(rt, "__reanimatedWorkletInit", __reanimatedWorkletInit);
35
+ jsi::Function __reanimatedWorkletInit = jsi::Function::createFromHostFunction(
36
+ rt,
37
+ jsi::PropNameID::forAscii(rt, "__reanimatedWorkletInit"),
38
+ 1,
39
+ dummyFunction);
40
+
41
+ dummyGlobal.setProperty(
42
+ rt, "__reanimatedWorkletInit", __reanimatedWorkletInit);
33
43
  rt.global().setProperty(rt, "global", dummyGlobal);
34
44
 
35
45
  rt.global().setProperty(rt, "jsThis", jsi::Value::undefined());
36
46
 
37
- auto callback = [](
38
- jsi::Runtime &rt,
47
+ auto callback = [](jsi::Runtime &rt,
39
48
  const jsi::Value &thisValue,
40
49
  const jsi::Value *args,
41
- size_t count
42
- ) -> jsi::Value {
50
+ size_t count) -> jsi::Value {
43
51
  const jsi::Value *value = &args[0];
44
52
  if (value->isString()) {
45
53
  Logger::log(value->getString(rt).utf8(rt).c_str());
@@ -52,68 +60,74 @@ void RuntimeDecorator::decorateRuntime(jsi::Runtime &rt, const std::string &labe
52
60
  }
53
61
  return jsi::Value::undefined();
54
62
  };
55
- jsi::Value log = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_log"), 1, callback);
63
+ jsi::Value log = jsi::Function::createFromHostFunction(
64
+ rt, jsi::PropNameID::forAscii(rt, "_log"), 1, callback);
56
65
  rt.global().setProperty(rt, "_log", log);
57
66
 
58
- auto setGlobalConsole = [](
59
- jsi::Runtime &rt,
67
+ auto setGlobalConsole = [](jsi::Runtime &rt,
60
68
  const jsi::Value &thisValue,
61
69
  const jsi::Value *args,
62
- size_t count
63
- ) -> jsi::Value {
70
+ size_t count) -> jsi::Value {
64
71
  rt.global().setProperty(rt, "console", args[0]);
65
72
  return jsi::Value::undefined();
66
73
  };
67
- rt.global().setProperty(rt, "_setGlobalConsole", jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_setGlobalConsole"), 1, setGlobalConsole));
74
+ rt.global().setProperty(
75
+ rt,
76
+ "_setGlobalConsole",
77
+ jsi::Function::createFromHostFunction(
78
+ rt,
79
+ jsi::PropNameID::forAscii(rt, "_setGlobalConsole"),
80
+ 1,
81
+ setGlobalConsole));
68
82
  }
69
83
 
70
- void RuntimeDecorator::decorateUIRuntime(jsi::Runtime &rt,
71
- const UpdaterFunction updater,
72
- const RequestFrameFunction requestFrame,
73
- const ScrollToFunction scrollTo,
74
- const MeasuringFunction measure,
75
- const TimeProviderFunction getCurrentTime,
76
- std::shared_ptr<LayoutAnimationsProxy> layoutAnimationsProxy) {
84
+ void RuntimeDecorator::decorateUIRuntime(
85
+ jsi::Runtime &rt,
86
+ const UpdaterFunction updater,
87
+ const RequestFrameFunction requestFrame,
88
+ const ScrollToFunction scrollTo,
89
+ const MeasuringFunction measure,
90
+ const TimeProviderFunction getCurrentTime,
91
+ std::shared_ptr<LayoutAnimationsProxy> layoutAnimationsProxy) {
77
92
  RuntimeDecorator::decorateRuntime(rt, "UI");
78
93
  rt.global().setProperty(rt, "_UI", jsi::Value(true));
79
94
 
80
95
  auto clb = [updater](
81
- jsi::Runtime &rt,
82
- const jsi::Value &thisValue,
83
- const jsi::Value *args,
84
- const size_t count
85
- ) -> jsi::Value {
96
+ jsi::Runtime &rt,
97
+ const jsi::Value &thisValue,
98
+ const jsi::Value *args,
99
+ const size_t count) -> jsi::Value {
86
100
  const auto viewTag = args[0].asNumber();
87
- const jsi::Value* viewName = &args[1];
101
+ const jsi::Value *viewName = &args[1];
88
102
  const auto params = args[2].asObject(rt);
89
103
  updater(rt, viewTag, *viewName, params);
90
104
  return jsi::Value::undefined();
91
105
  };
92
- jsi::Value updateProps = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_updateProps"), 2, clb);
106
+ jsi::Value updateProps = jsi::Function::createFromHostFunction(
107
+ rt, jsi::PropNameID::forAscii(rt, "_updateProps"), 2, clb);
93
108
  rt.global().setProperty(rt, "_updateProps", updateProps);
94
109
 
95
-
96
110
  auto clb2 = [requestFrame](
97
- jsi::Runtime &rt,
98
- const jsi::Value &thisValue,
99
- const jsi::Value *args,
100
- const size_t count
101
- ) -> jsi::Value {
102
- auto fun = std::make_shared<jsi::Function>(args[0].asObject(rt).asFunction(rt));
111
+ jsi::Runtime &rt,
112
+ const jsi::Value &thisValue,
113
+ const jsi::Value *args,
114
+ const size_t count) -> jsi::Value {
115
+ auto fun =
116
+ std::make_shared<jsi::Function>(args[0].asObject(rt).asFunction(rt));
103
117
  requestFrame([&rt, fun](double timestampMs) {
104
118
  fun->call(rt, jsi::Value(timestampMs));
105
119
  });
106
120
  return jsi::Value::undefined();
107
121
  };
108
- jsi::Value requestAnimationFrame = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "requestAnimationFrame"), 1, clb2);
122
+ jsi::Value requestAnimationFrame = jsi::Function::createFromHostFunction(
123
+ rt, jsi::PropNameID::forAscii(rt, "requestAnimationFrame"), 1, clb2);
109
124
  rt.global().setProperty(rt, "requestAnimationFrame", requestAnimationFrame);
110
125
 
111
126
  auto clb3 = [scrollTo](
112
- jsi::Runtime &rt,
113
- const jsi::Value &thisValue,
114
- const jsi::Value *args,
115
- const size_t count
116
- ) -> jsi::Value {
127
+ jsi::Runtime &rt,
128
+ const jsi::Value &thisValue,
129
+ const jsi::Value *args,
130
+ const size_t count) -> jsi::Value {
117
131
  int viewTag = (int)args[0].asNumber();
118
132
  double x = args[1].asNumber();
119
133
  double y = args[2].asNumber();
@@ -121,64 +135,68 @@ void RuntimeDecorator::decorateUIRuntime(jsi::Runtime &rt,
121
135
  scrollTo(viewTag, x, y, animated);
122
136
  return jsi::Value::undefined();
123
137
  };
124
- jsi::Value scrollToFunction = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_scrollTo"), 4, clb3);
138
+ jsi::Value scrollToFunction = jsi::Function::createFromHostFunction(
139
+ rt, jsi::PropNameID::forAscii(rt, "_scrollTo"), 4, clb3);
125
140
  rt.global().setProperty(rt, "_scrollTo", scrollToFunction);
126
141
 
127
142
  auto clb4 = [measure](
128
- jsi::Runtime &rt,
129
- const jsi::Value &thisValue,
130
- const jsi::Value *args,
131
- const size_t count
132
- ) -> jsi::Value {
143
+ jsi::Runtime &rt,
144
+ const jsi::Value &thisValue,
145
+ const jsi::Value *args,
146
+ const size_t count) -> jsi::Value {
133
147
  int viewTag = (int)args[0].asNumber();
134
148
  auto result = measure(viewTag);
135
149
  jsi::Object resultObject(rt);
136
- for (auto &i:result) {
150
+ for (auto &i : result) {
137
151
  resultObject.setProperty(rt, i.first.c_str(), i.second);
138
152
  }
139
153
  return resultObject;
140
154
  };
141
- jsi::Value measureFunction = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_measure"), 1, clb4);
155
+ jsi::Value measureFunction = jsi::Function::createFromHostFunction(
156
+ rt, jsi::PropNameID::forAscii(rt, "_measure"), 1, clb4);
142
157
  rt.global().setProperty(rt, "_measure", measureFunction);
143
158
 
144
159
  auto clb6 = [getCurrentTime](
145
- jsi::Runtime &rt,
146
- const jsi::Value &thisValue,
147
- const jsi::Value *args,
148
- const size_t count
149
- ) -> jsi::Value {
160
+ jsi::Runtime &rt,
161
+ const jsi::Value &thisValue,
162
+ const jsi::Value *args,
163
+ const size_t count) -> jsi::Value {
150
164
  return getCurrentTime();
151
165
  };
152
- jsi::Value timeFun = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_getCurrentTime"), 0, clb6);
166
+ jsi::Value timeFun = jsi::Function::createFromHostFunction(
167
+ rt, jsi::PropNameID::forAscii(rt, "_getCurrentTime"), 0, clb6);
153
168
  rt.global().setProperty(rt, "_getCurrentTime", timeFun);
154
169
 
155
170
  rt.global().setProperty(rt, "_frameTimestamp", jsi::Value::undefined());
156
171
  rt.global().setProperty(rt, "_eventTimestamp", jsi::Value::undefined());
157
-
172
+
158
173
  // layout animation
159
174
  std::weak_ptr<LayoutAnimationsProxy> layoutProxy = layoutAnimationsProxy;
160
175
  auto clb7 = [layoutProxy](
161
- jsi::Runtime &rt,
162
- const jsi::Value &thisValue,
163
- const jsi::Value *args,
164
- size_t count
165
- ) -> jsi::Value {
176
+ jsi::Runtime &rt,
177
+ const jsi::Value &thisValue,
178
+ const jsi::Value *args,
179
+ size_t count) -> jsi::Value {
166
180
  std::shared_ptr<LayoutAnimationsProxy> proxy = layoutProxy.lock();
167
181
  if (layoutProxy.expired()) {
168
182
  return jsi::Value::undefined();
169
183
  }
170
- proxy->startObserving(args[0].asNumber(), args[1].asObject(rt).getHostObject<MutableValue>(rt), rt);
184
+ proxy->startObserving(
185
+ args[0].asNumber(),
186
+ args[1].asObject(rt).getHostObject<MutableValue>(rt),
187
+ rt);
171
188
  return jsi::Value::undefined();
172
189
  };
173
- jsi::Value _startObservingProgress = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_startObservingProgress"), 0, clb7);
174
- rt.global().setProperty(rt, "_startObservingProgress", _startObservingProgress);
175
-
190
+ jsi::Value _startObservingProgress = jsi::Function::createFromHostFunction(
191
+ rt, jsi::PropNameID::forAscii(rt, "_startObservingProgress"), 0, clb7);
192
+ rt.global().setProperty(
193
+ rt, "_startObservingProgress", _startObservingProgress);
194
+
176
195
  auto clb8 = [layoutProxy](
177
- jsi::Runtime &rt,
178
- const jsi::Value &thisValue,
179
- const jsi::Value *args,
180
- size_t count
181
- ) -> jsi::Value {
196
+ jsi::Runtime &rt,
197
+ const jsi::Value &thisValue,
198
+ const jsi::Value *args,
199
+ size_t count) -> jsi::Value {
182
200
  std::shared_ptr<LayoutAnimationsProxy> proxy = layoutProxy.lock();
183
201
  if (layoutProxy.expired()) {
184
202
  return jsi::Value::undefined();
@@ -186,8 +204,9 @@ void RuntimeDecorator::decorateUIRuntime(jsi::Runtime &rt,
186
204
  proxy->stopObserving(args[0].asNumber(), args[1].getBool());
187
205
  return jsi::Value::undefined();
188
206
  };
189
- jsi::Value _stopObservingProgress = jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, "_stopObservingProgress"), 0, clb8);
207
+ jsi::Value _stopObservingProgress = jsi::Function::createFromHostFunction(
208
+ rt, jsi::PropNameID::forAscii(rt, "_stopObservingProgress"), 0, clb8);
190
209
  rt.global().setProperty(rt, "_stopObservingProgress", _stopObservingProgress);
191
210
  }
192
211
 
193
- }
212
+ } // namespace reanimated
@@ -1,7 +1,6 @@
1
1
  #include "Scheduler.h"
2
2
 
3
- namespace reanimated
4
- {
3
+ namespace reanimated {
5
4
 
6
5
  void Scheduler::scheduleOnUI(std::function<void()> job) {
7
6
  uiJobs.push(std::move(job));
@@ -12,18 +11,27 @@ void Scheduler::scheduleOnJS(std::function<void()> job) {
12
11
  }
13
12
 
14
13
  void Scheduler::triggerUI() {
15
- auto job = uiJobs.pop();
16
- job();
14
+ scheduledOnUI = false;
15
+ while (uiJobs.getSize()) {
16
+ auto job = uiJobs.pop();
17
+ job();
18
+ }
17
19
  }
18
20
 
19
- void Scheduler::setJSCallInvoker(std::shared_ptr<facebook::react::CallInvoker> jsCallInvoker) {
21
+ void Scheduler::setJSCallInvoker(
22
+ std::shared_ptr<facebook::react::CallInvoker> jsCallInvoker) {
20
23
  jsCallInvoker_ = jsCallInvoker;
21
24
  }
22
25
 
23
- void Scheduler::setRuntimeManager(std::shared_ptr<RuntimeManager> runtimeManager) {
26
+ void Scheduler::setRuntimeManager(
27
+ std::shared_ptr<RuntimeManager> runtimeManager) {
24
28
  this->runtimeManager = runtimeManager;
25
29
  }
26
30
 
27
31
  Scheduler::~Scheduler() {}
28
32
 
33
+ Scheduler::Scheduler() {
34
+ this->scheduledOnUI = false;
29
35
  }
36
+
37
+ } // namespace reanimated
@@ -6,4 +6,4 @@ void WorkletEventHandler::process(jsi::Runtime &rt, jsi::Value &eventValue) {
6
6
  handler.callWithThis(rt, handler, eventValue);
7
7
  }
8
8
 
9
- }
9
+ } // namespace reanimated
@@ -1,10 +1,10 @@
1
1
  #pragma once
2
2
 
3
+ #include <jsi/jsi.h>
3
4
  #include <stdio.h>
4
- #include <memory>
5
5
  #include <functional>
6
6
  #include <map>
7
- #include <jsi/jsi.h>
7
+ #include <memory>
8
8
 
9
9
  namespace reanimated {
10
10
 
@@ -13,19 +13,20 @@ using namespace facebook;
13
13
  class MutableValue;
14
14
 
15
15
  class LayoutAnimationsProxy {
16
-
17
- public:
18
- LayoutAnimationsProxy(std::function<void(int, jsi::Object newProps)> _notifyAboutProgress, std::function<void(int, bool)> _notifyAboutEnd);
19
-
20
- void startObserving(int tag, std::shared_ptr<MutableValue> sv, jsi::Runtime &rt);
16
+ public:
17
+ LayoutAnimationsProxy(
18
+ std::function<void(int, jsi::Object newProps)> _notifyAboutProgress,
19
+ std::function<void(int, bool)> _notifyAboutEnd);
20
+
21
+ void
22
+ startObserving(int tag, std::shared_ptr<MutableValue> sv, jsi::Runtime &rt);
21
23
  void stopObserving(int tag, bool finished);
22
24
  void notifyAboutCancellation(int tag);
23
-
24
- private:
25
+
26
+ private:
25
27
  std::function<void(int, jsi::Object newProps)> notifyAboutProgress;
26
28
  std::function<void(int, bool)> notifyAboutEnd;
27
29
  std::map<int, std::shared_ptr<MutableValue>> observedValues;
28
30
  };
29
31
 
30
- }
31
-
32
+ } // namespace reanimated